【浙大 | 嵌入式系统】第七节

https://www.bilibili.com/video/BV18b411L7Zd

  • 操作系统概述
  • 实时操作系统 uC/OS简介
  • 实时操作系统 uC/OS-Ⅱ的内核结构
  • 实时操作系统 uC/OS-Ⅱ中的中断与任务通讯
  • 实时操作系统 uC/OS-Ⅱ在ARM7上的移植

实时操作系统追求目标:对外部请求在严格时间范围内作出反应,高可靠性、安全性和完整性。

操作系统的内核:
操作系统内核是指操作系统的核心部分

  • 设备中都出现的基本操作系统功能
  • 实时内核负责中断、任务、通讯、硬件接口(存储器、I/O管理)等管理
  • 扩展内核加入管理虚拟内存
  • 内核本身也是由任务(进程)构成
  • 文件管理、用户接口、外设和系统资源管理是建立在内核基础上进行的

内核管理各个任务

  • 决定什么任务、什么时候可以获得CPU使用权
  • 分配每个任务的CPU使用时间
  • 任务的上下文切换
  • 任务之间的通讯

代码临界区:
处理时不可分割的代码,一旦这部分代码开始执行,不允许任何中断打入。在进入临界区之前要关中断,临界区代码执行完毕后要立即开中断。

嵌入式中调度一般是基于优先级的,根据其重要不同被赋予任务不同的优先级。CPU 总是让处在就绪态的优先级最高的任务先运行。
何时让高优先级任务掌握 CPU 的使用权,有两种不同的情况,这要看用的是什么类型的内核:

  • 非抢占式内核
  • 抢占式内核

嵌入式操作系统

什么是嵌入式系统?

  • 在各种设备、装置或系统中,完成特定功能的软硬件管理系统;
  • 是设备、装置或系统中的一部分,这个设备、装置或系统可以不是“计算机”
  • 通常工作在反应式或对处理时间有较严格要求环境中;

典型嵌入式操作系统的特性:

  1. 完成某一项或有限项功能;不是通用型;
  2. 在性能和实时性方面有严格的限制;
  3. 能源、成本和可靠性通常是影响设计的重要因素;
  4. 占有资源少、易于连接;
  5. 系统功能可针对需求进行裁剪、调整和生成以便满足最终产品的设计要求

实时操作系统 uC/OS简介
性能特点:

  • 开源
  • 可移植性,uC/OS-Ⅱ源码主要用 ANSI C 写,移植性强,支持 8 位/16位/32位以及64位微处理器、微控制器和 DSP
  • 可固化,内核可以裁剪得很小
  • 可裁剪,通过条件编译,可以根据应用需要只使用uC/OS-Ⅱ中的部分系统服务
  • 抢占式实时结构
  • 多任务 uC/OS-Ⅱ可以管理64个任务,其中保留8个给系统,应用程序最多可以有56个任务
  • 可确定性:全部uC/OS-Ⅱ的函数调用与服务的执行时间是可确定的
  • 任务栈:每个任务都有自己单独的栈,允许每个任务有不同的栈空间,以便减少应用程序对RAM的需求
  • 中断管理:中断嵌套层数可达255层

实时操作系统 uC/OS-Ⅱ的内核结构

  • 任务管理
  • 中断处理
  • 时间管理
  • 任务之间通信与同步

uC/OS-Ⅱ中任何工作都是用任务来构成的,

// 典型的任务为一个无线循环
void mytask(void *pdata)
{
     
	for(;;){
     
		do something;
		waiting;
		do something;
	}
}

每个任务号与优先级相对应,数字越小优先级越高。
当任务完成以后,任务可以自行离开就绪队列,OSTaskDel();

中断任务:
运行的任务是可以被中断的,响应中断时,正在执行的任务被挂起,中断服务子程序控制了CPU的使用权,从中断服务子程序返回之前,uC/OS-Ⅱ要判定,被中断的任务是否还是就绪任务中优先级最高的。
中断服务程序太长会影响实时性。
空闲任务:
当所有的任务都在等待事件发生时uC/OS-Ⅱ执行OSTaskIdle() 函数。
【浙大 | 嵌入式系统】第七节_第1张图片
uC/OS中不支持时间片轮转法,每个任务的优先级要求不一样而且是唯一的,所以任务调度的工作就是:查找准备就绪的最高优先级的任务并进行上下文切换;
uC/OS任务调度所花的时间为常数,与应用程序中建立的任务数无关,利用查表法。

查表法具有确定的时间,增加了系统的可预测性,uC/OS中所有的系统调用时间都是确定的。

【浙大 | 嵌入式系统】第七节_第2张图片

任务级的任务切换 OS_TASK_SW()

  • 通过sc系统调用指令完成
  • 保护当前任务的现场
  • 恢复新任务的现场
  • 执行中断返回指令
  • 开始执行新任务

中断类型:

  • 硬件中断;
  • 外部中断;
  • 陷阱中断;
  • 现场控制量的中断;

uC/OS-Ⅱ中的中断:

  1. 保护现场
  2. 进入临界区标志;
  3. 执行中断服务程序;
  4. 退出临界区标志;
  5. 恢复现场,不一定是之前保护的现场,根据优先级;
  6. 执行恢复后的代码;

【浙大 | 嵌入式系统】第七节_第3张图片
响应中断在恢复现场阶段,会查询当前就绪的最高优先级任务,将最高优先级任务恢复。

【浙大 | 嵌入式系统】第七节_第4张图片
时钟节拍中断定时检查各个任务。

任务间通讯:信号量、邮箱、消息队列、事件标志。

可为任务进行延时。

你可能感兴趣的:(#,浙大,嵌入式系统,课程学习)