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