实验四
多任务综合实验
一、实验目的
学习周期任务、任务的同步和任务间通信。
二、实验内容
1运行实验十,创建第三个任务,在超级终端上打印第三个任务。2使用系统定时中断实现周期任务,任务1、2、3进入for循环就挂起,在定时钩子函数中定时1秒、2秒和4秒后将其恢复。3创建信号量管理数组实现任务间同步,在主函数中定义一个INT16U的两维数组a23,不同的任务往数组内写不同的值,连同任务号一起打印在超级终端上。4创建消息邮箱实现任务间通信,Task1记录任务执行的次数,通过消息邮箱在Task2里显示。
三、实验设备
硬件:模拟电压信号源、2410s教学实验箱、PC机Pe
tium100以上、ARM920T的JTAG仿真器、串口连接线。软件:机操作系统Wi
XP、PCARMADS12集成开发环境、超级终端通讯程序、仿真器驱动程序。
四、实验步骤
1以实验十为模板。2将任务函数内的OSTimeDly删除,在打印语句之前悬挂任务13,OSTaskSuspe
dTask
_Prio,按以下路径ucosiiarchos_cpu_cc找到钩子函数voidOSTimeTickHookvoid,用计数器控制恢复任务操作,调用OSTaskResumeTask
_Prio3信号量管理声明信号量OS_EVENTFu
_Semp在Mai
函数里创建信号量Fu
_SempOSSemCreate1在各个Task里执行下列操作OSSemPe
dFu
_Semp0err…………OSSemPostFu
_SempMai
函数包含头文件i
cludeucos_iih,定义变量INT8Uerr4定义事件控制块指针OS_EVENTStr_Box在mai
函数里创建消息邮箱,Str_BoxOSMboxCreatevoid0在Task1里发送消息Times1sTimesOSMboxPostStr_Boxs在Task2里请求消息邮箱ssOSMboxPe
dStr_Box0errpri
tf