说明:因上传文章时不能复制上传图片,所以本文只有文字版实验报告提供实验思路参考,需要完整版和实验截图的同学可以下载完整实验报告资源获取
实验6:
一、实验目的
掌握嵌入式实时操作系统µC/OS中中断的使用情况。
二、实验环境
WindowsXP , LambdaPRO3
三、实验内容及实验原理
1.实验设计
在本实验中,设计了三个任务Task1、Task2、Task3,创建了一个信号量InterruptSem。
2.系统运行流程
- 系统初始化,在TaskStart任务中,创建并启动任务Task1、Task2、Task3,优先级分别为12,13,14。
- 在TaskStart任务中创建一个信号量InterruptSem(初值为1)。
- 任务在TaskStart任务中挂起自己,操作系统实施调度,进入Task1运行;
- 任务Task1睡眠100ticks;
- 任务Task2开始执行, 任务Task2获得信号量InterruptSem;
- 任务Task2睡眠500tick,任务Task3投入运行,打印输出语句后延时,任务Task1睡眠时间到继续投入运行,它申请信号量InterruptSem失败被阻塞;
- 任务Task3投入运行,循环地打印输出语句。期间时钟中断不断产生,在中断处理程序中对任务Task2的睡眠时间进行计数;
- Task2睡眠时间到后恢复运行,并释放信号量InterruptSem;
- Task1获得信号量InterruptSem后抢占Task2运行;
- Task1使用完信号量InterruptSem后释放该信号量;
- 系统从步骤4重复执行,一直运行下去……
四、实验结果及其分析
五、心得体会与建议
通过观察本实验的输出结果,熟悉并掌握了嵌入式实时操作系统µC/OS中中断的使用情况。