⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 ucos嵌入式实时操作系统2.80版 ARM 移植
💻 C
字号:
/*
**********************************************************************************************************************
*Project: ARMTESTucos2.80
*Test File
**********************************************************************************************************************
*/
#include 	"ucos_ii.h"
#include    "Target/44blib.h"
#include    "Target/44b.h"

OS_STK TestTaskStk[100];

void TestTask (void *);

void ARMSYSinit(void);
void ARMSYS_int_init(void);
void ARMSYS_timer_init(void);

void ARMSYSstart(void);

int Main(int argc, char **argv)
{
	rSYSCFG=CACHECFG;// Using 8KB Cache//
	Port_Init();
	Uart_Init(0,115200);
	Led_Display(0xf);
	Uart_Select(0); //Select UART0//
	Beep(0x1);
	Uart_Printf("\n---------------------------------------------------------------");
	Beep(0x00);
	Uart_Printf("\nProject: ARMTESTucos2.80");
	Uart_Printf("\nTRY YOUR BEST!!!");
	Uart_Printf("\n---------------------------------------------------------------");
	Led_Display(0x0);
	ARMSYSinit();
	
	OSInit();
	OSTaskCreate(TestTask, (void *)0, &TestTaskStk[99],0);
	OSStart();
	return 0;
}

void TestTask (void *pdata)
{
	BOOLEAN led_state;
	
	pdata = pdata;
	ARMSYSstart();
	led_state = FALSE;
	Led_Display(0xf);
	while(1){
		OSTimeDly(1);
		if(led_state == FALSE){
			led_state = TRUE;
			Led_Display(0xf);
		}else{
			led_state = FALSE;
			Led_Display(0x0);
			}
		}	
		
}
/*
*************************************************************************************************************************
*void ARMSYSinit(void):关中断,中断控制器设置(子中断指针安装前),定时器初始化
*************************************************************************************************************************
*/
void ARMSYSinit(void)
{
	OS_CPU_SR_Save();//关中断
	ARMSYS_int_init();//中断控制器设置(子中断指针安装前)
	ARMSYS_timer_init();//定时器初始化
}

void ARMSYS_int_init(void)
{
	// Non-vectored,IRQ disable,FIQ disable    
    rINTCON=0x0;	  

	// All=IRQ mode
    rINTMOD=0x0;	  

	// All interrupt is masked.
    rINTMSK=BIT_GLOBAL;	  
}

void ARMSYS_timer_init(void)
{
	rTCFG0=0x00000004;		// prescaler0 = 4
	rTCFG1=0x00000003;		// mux0 = 1/16

	rTCNTB0= 100000;	//_CLOCK;
	rTCMPB0= 0x0;
	rTCON=0x2;		//update mode for TCNTB0 and TCMPB0.
	rTCON=0x9;		//timer0 = auto reload, start
}

/*
***************************************************************************************************************************
*void ARMSYSstart(void):子中断指针与子中断子程序连接(特别是Timer)中断再配置、屏蔽与使能(子中断指针安装后)
***************************************************************************************************************************
*/

void ARMSYSstart(void)
{

	pISR_TIMER0= (unsigned)OSTimeTick;
	
	//Non-vectored,IRQ enable,FIQ disable 
    rINTCON=0x5;

	//Non maksed TIMER0 .
	rINTMSK=~(BIT_TIMER0 | BIT_GLOBAL);	//Default value=0x7ffffff
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -