1. 中断是对异步事件的响应……
函数调用是主动的,中断是被动的,中断发生时,调用中断服务子程序。
2. 空闲任务总是优先级最低的;之上是统计任务;每个任务的优先级都是程序员确定的;
3. 任务堆栈:
任务的创建:
任务删除的原理:
任务代码仍然存在,任务的控制块被删除,任务堆栈失效;
Uc/os是高度可移植的实时操作系统,基于优先级的可抢先的硬实时内核,专门未嵌入式设备设计的内核。
BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板;
BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP;
主要的功能是为屏蔽硬件,提供操作系统以及硬件的驱动:
1. 硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
2. 为操作系统提供设备驱动设备驱动程序和系统中断服务程序
3. 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
4. 初始化操作系统,为操作系统的正常运行做好准备。
性能特点:
公开源代码
可移植性
可固化
可裁剪:可以减少产品中的uc/os所需的存储器空间,这样可裁剪性是靠条件编译实现的。
多任务
可抢占式:可以管理64个任务,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个
可确定性
任务栈:每个任务都有自己单独的栈,允许每个任务有不同的栈空间,这样可以加快任务调度的速度
系统服务
中断管理
稳定性与可靠性
从任务存储结构来看,由三部分组成:
任务程序代码:程序的执行部分
任务控制块(TCB) 用来保存任务属性
任务堆栈 用来保存任务工作环境
什么是任务:
从应用程序设计的角度看,任务就是一个用来解决用户问题的C语言函数和与之相关联的一些数据结构而构成的一个实体
任务分类有两种:用户任务和系统任务,
用户任务:由应用程序设计者编写的任务,为解决应用问题而编写
系统任务有系统提供的任务,为应用程序来提供某种服务的;
Uc/os-II把每一个任务都作为一个节点,然后把它连接成一个任务链表。
任务的状态:
Waiting:正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会把CPU的使用权让给其他任务而使任务进入等待状态
Ready:处于就绪态的任务如果经调度器判断获得了CPU的使用权,则任务就进入运行态。任何时候只能有一个任务处于运行态,就绪的任务只有当所有优先级高于本任务的任务都转为等待状态时,才能进入运行态。