【ucos】实时操作系统 μC/OS-III学习笔记
前言
之前搞了一段时间的SPI双机通信和嵌入式网络通信,主要是数据的读写。我所有的工作都是在中断中进行的,总觉得没底。如果把数据处理的部分丢给后台运行的话,又觉得会出现数据处理不及时的情况,这也是在我看了μCOS第一章中介绍的前后台的一个弊端。之前听说过嵌入式操作系统是一个趋势,很多产品都使用了不同的嵌入式操作系统。。。就借这个机会了解一下操作系统吧。
手头用的是朋友的《嵌入式实时操作系统 μC/OS-III》,后来又在图书馆借到了《嵌入式实时操作系统μC/OS-II原理及应用》,第一本讲的很抽象,不太适合入门,朋友后来也不建议我看这本;后一本则讲的很浅,比较容易上手,另外正点原子的视频也比较适合入门。这篇博客作为自己的一个学习笔记,记录学习过程中的一些关键点和疑惑。
《嵌入式实时操作系统μC/OS-II原理及应用》关键点
- 任务控制块中的任务堆栈中,保存有任务代码执行的断点的指针,它反应了程序的运行进程,所以一般将这个任务称之为进程或者线程,两者的主要区别就是进程独享一块内存空间,而线程是共用一块内存空间;
- 任务的几种典型状态
睡眠态——代码保存在rom中,但是没有为其分配控制块,不受操作系统管理
就绪态——任务符合运行条件但是由于优先级不够所以在等待获取CPU的使用权
等待态——由于延时或者等待消息队列、信号量时的状态
运行态——该任务正在使用CPU
中断服务态——在运行一个任务时发生了中断,当前任务就进入改状态并且会执行中断服务函数 - 任务就绪表非常重要,它本质上是一个位图,对于UCOSII只有64个优先级,因此就是8个元素数为8的数组