本人初学 ucos ,用了发烧友的
开发板提供的 实验54 作为 使用ucos 的 基础
我创建了 三个任务:
Task1 : 纯粹计数该任务执行次数;
void Task1(void *pdata){// OS_CPU_SR cpu_sr=0;pdata = pdata; while(1){cnt++;OS
timeDlyHMSM(0,0,1,0);}}Task2 : 发送AT指令;
void Task2(void *pdata){// OS_CPU_SR cpu_sr=0;pdata = pdata; while(1){OSSemPend(SIM900_Device, 0, &err);//请求占用SIM900SIM_TxStr("AT");//发送AT指令SIM_TxByte(CR);OSSemPend(SIM900_CMD_Ans, 0, &err);//等待Task3发出的结果OSSemPost(SIM900_Device);//释放对SIM900的占用}}Task3 : 处理SIM900的相应结果;
void Task3(void *pdata){// OS_CPU_SR cpu_sr=0;pdata = pdata;while(1){OSMboxPend(SIM900_Msg, 0, SIM900_err_msg);//等待SIM900响应//...... 处理响应结果OSSemPost(SIM900_CMD_Ans);//发送处理结果}}串口中断:
判断并提取 SIM900 响应字符,通过 邮箱 将该字符串 发送给 Task3 处理;
问题:
运行会死机,进入
HardFault_Handler PROC EXPORT HardFault_Handler [WEAK] B . ENDP
不知道什么情况,请求高手们指点!!
附件中做了详细注释
实验54 UCOSII实验2-信号量和邮箱.rar (1.62 MB )