嵌入式系统软件-4.4

时间:2021-10-06 22:36:36

目标:理解μC/OS-Ⅱ操作系统内核的基本特征与任务结构。掌握μC/OS-Ⅱ的常用系统服务和应用程序框架。掌握基于μC/OS-Ⅱ系统的应用程序设计技术。
1.μC/OS-Ⅱ操作系统内核的基本特征
(1)公开源码的高质量实时内核
(2)可移植
(3)可裁剪,可固化
(4)时间确定性
(5)多任务
(6)抢占式内核
(7)多种系统服务
2.μC/OS-Ⅱ的任务结构
(1)任务的程序代码
(2)任务堆栈
(3)任务控制块
3.μC/OS-Ⅱ的任务状态
(1)休眠态
(2)就绪态
(3)运行态
(4)等待态
(5)被中断态
4.μC/OS-Ⅱ的任务调用
μC/OS-Ⅱ可以管理64个任务每个任务都被赋予一个不同于其他任务的优先级,共有64个优先级别。
μC/OS-Ⅱ预定义了两个系统任务为应用程序服务:
(1)空闲任务(idle task)
(2)统计任务
μC/OS-Ⅱ采用基于优先级的调度算法,任务调度时,内核总是选择当前所有就绪任务中最高优先级的任务转入运行态。
在当前程序进入临界区时,并不希望系统进行任务调度,也不希望处理器转入中断服务程序。在μC/OS-Ⅱ中有两种解决方法:
(1)利用宏OS_ENTER_CRITICAL和OS_EXIT_CRITICAL实现关中断和开中断。
(2)利用函数OSSchedLock()和OSSchedUnlock()给任务调度开锁和上锁。
5.μC/OS-Ⅱ的中断处理
在μC/OS-Ⅱ系统中,中断服务程序的执行步骤大致如下:
(1)保存全部CPU寄存器
(2)调用OSIntEnter()或OSIntNesting直接加1
(3)执行用户中断服务代码(调用中断处理函数)
(4)调用OSIntExit()
(5)恢复所有CPU寄存器
(6)执行中断返回指令
6.μC/OS-Ⅱ的任务管理服务
(1)任务创建:OSTaskCreate()或OSTaskCreateExt()
(2)任务删除:OSTaskDel()
(3)任务挂起和任务恢复:OSTaskSuspend()和OSTaskResume()
7.μC/OS-Ⅱ的时钟节拍与时间管理服务
OSTimeTick()检查啊等待超时或等待时间的任务是否超时
OSTimeSet()改变tick计数器的当时值
OSTimeDly()和OSTimeDlyHMSM()延时一段时间