基于mini2440的一个简单移植程序led.c
#include "config.h"
#define LED1 (0<<5) //定义LED,GPB5
#define TaskStkLength 64 //定义堆栈长度
OS_STK TaskLEDStk[TaskStkLength]; //定义任务LED的堆栈
void TaskLED(void *pdata); //声明任务LED
int Main(void) //ADS中不能写成main(void),一定大写
{
TargetInit(); //目标板初始化
OSInit(); //uC/OS-II初始化
OSTimeSet(0); //设置系统时基,建议予以保留
OSTaskCreate(TaskLED,(void *)0,&TaskLEDStk[TaskStkLength-1],3); //创建LED任务
OSStart();
return 0;
}
void TaskLED(void *pdata)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata; //防止报警
OS_ENTER_CRITICAL(); //close interrupt
Timer0Init(); //initial timer0 for ucos time tick //timer.c
ISRInit(); //initial interrupt prio or enable or disable //timer.c
OS_EXIT_CRITICAL(); //open interrupt
while(1)
{
rGPBCON&=(1<<10);
rGPBDAT=LED1; //LED亮
OSTimeDly(25); //延时20个节拍
rGPBDAT=~LED1; //LED灭
OSTimeDly(25); //延时20个节拍
}
}