2020-嵌入式系统导论-Homework for uC OS-II
Hw01-Homework for uC/OS-II
- uC/OS-II的多任务实验
1. 固定优先级调度
- uC/OS-II支持固定优先级调度
- 易于实施RM
2. 周期任务
2.1. 调用OSTaskCreate来创建任务
1 |
|
- 问题:如果[开始,结束]之间存在抢占,则任务未获得CPU时间的c个单位
- C =任务的时钟滴答花费
- delay = p-(end - start)
- 使用计时器来计时
1 |
|
2.2. OSInitExit
- 在OS_CORE.C中定义
- 该功能将在系统从ISR调用返回后管理调度
- 我们需要在此处打印"抢先"事件
2.3. OS_Sched
- 在OS_CORE.C中定义
- 当任务自愿放弃对CPU的占有时,调用OS_Sched()
- 我们需要在这里打印出"完整"事件
2.4. Printing messages
- Print messages
printf("\n%10d Preempt ",timestamp);
- 期望输出格式:
1 |
|
3. 定义
- 实施两组定期任务。
- TaskSet 1 = {t1(1,3), t2(3,6)}
- TaskSet 2 = {t1(1,3), t2(3,6), t3(4,9) }}
- 任务到达时间均为0
- 显示上下文切换行为
- 显示违反期限的情况
4. 课程
- 如何创建在每p单位时间中精确执行c单位时间的任务?(c,p)
- 我们可以在内核中的哪个位置添加用于观察上下文切换行为的代码?
5. 注意
- 在实时应用程序中,确定任务周期,并通过硬件中断调用任务调用
- 任务计算时间由最坏情况计算时间分析(WCET)确定
- 在此项目中,我们将模拟这种行为,更重要的是,获得有关如何将CPU时间分配给任务的见解
6. 测试任务集合
- 测试集1:{t1(1,3) , t2(3,5) }
- 测试集2:{t1(1,4) , t2(2,5) , t3(2,10)}
7. 实验内容
- ⽬标: 在ucOS-II上多任务实验。
- 要求:
- 在pc上的ucOS-II移植版本上实现,参⻅Moodle上Lecture Notes下的实验⽬录uCOSII下的源码。
- MISRA C 2004 Guidelines for the use of the C language in critical systems
- 提交
- 提交格式:学号_姓名.rar
- 完整的⽂档说明实现步骤,包括所增加的代码与注释,执⾏结果截图。
- 任务集,包含3个周期性任务,选择合理的参数ti(ci,pi),分别给出两种情况的输出:
- 任务之间没有相关性
- 任务之间有数据相关性(优先级最⾼与最低任务之间)
2020-嵌入式系统导论-Homework for uC OS-II
https://spricoder.github.io/2020/11/02/2020-Introduction-to-Embedded-Systems/2020-Introduction-to-Embedded-Systems-Homework%20for%20uC%20OS-II/