#define TaskStart_PRIO 10 #define TaskUart0_PRIO 11 #define TaskKey_PRIO 12 #define TaskTestMBox1_PRIO 13 #define TaskTestMBox2_PRIO 14 #define TaskEMCWR_PRIO 15 #define TaskEMCRD_PRIO 16
/**************************************************************************** * 名称:main() * 功能:主函数,启动多任务环境。 * 入口参数:无 * 出口参数:无 ****************************************************************************/ int main (void) { OSInit();
// 在系统启动前建立任务消息队列 task1_tmq = TMQ_Create(task1_tmq_buf, 30);
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], TaskStart_PRIO); OSStart(); return(0); }
/**************************************************************************** * 名称:Task1() * 功能:任务1,接收系统消息,并进行处理。 * 入口参数:pdata 任务初始化参数 * 出口参数:无 ****************************************************************************/ void TaskStart(void *pdata) { MSG *pMsg;
pdata = pdata; // 避免编译警告
TargetInit(); // 目标板初始化 PINSEL0 = (PINSEL0 & 0xcffff3ff); // 管脚选择模块初始化 IO0DIR |= BEEP; // 设置蜂鸣器为输出 IO0SET = BEEP; IO0DIR &= ~KEY1; // 设置KEY1为输入 OSTaskCreate(TaskUart0, (void *)0, &TaskUart0Stk[TASK_STK_SIZE - 1], TaskUart0_PRIO); OSTaskCreate(TaskKey, (void *)0, &TaskKeyStk[TASK_STK_SIZE - 1], TaskKey_PRIO); OSTaskCreate(TaskTestMBox1, (void *)0, &TaskTestMBox1Stk[TASK_STK_SIZE - 1], TaskTestMBox1_PRIO); OSTaskCreate(TaskTestMBox2, (void *)0, &TaskTestMBox2Stk[TASK_STK_SIZE - 1], TaskTestMBox2_PRIO); OSTaskCreate(TaskEMCWR, (void *)0, &TaskEMCWRStk[TASK_STK_SIZE - 1], TaskEMCWR_PRIO); OSTaskCreate(TaskEMCRD, (void *)0, &TaskEMCRDStk[TASK_STK_SIZE - 1], TaskEMCRD_PRIO); 。。。。 。。。。 |