当前课程知识点:现代电子系统设计 > 第五章 微处理器与片上系统 > 5.8 嵌入式操作系统 > 5.8.2 嵌入式操作系统
下面讲第五章第八节
嵌入式操作系统
其中的第二小节
嵌入式实时操作系统举例
在这小节
我们讲两个小的操作系统
freeRTOS和μc/OS
freeRTOS有什么样的特点呢
我们来看一下
它是一个开源的RTOS
那么它比较简单
但是功能还是比较强大的
它是由Richard Barry和
FreeRTOS团队写的
它的版权是属于
Real Time Engineers公司
但是可以免费使用
下面来看下它的结构
它的结构主要包括两部分
一个是它的内核
内核主要是用来
对任务进行管理和调度
然后有管理硬件
另外还有一部分就是设备驱动程序
从它内部软件的结构来看
它的任务管理占百分之五十
主要有两个任务管理的文件
它是用来产生 调度
和保持任务的
第二部分是通信部分
是占它整个存储容量的百分之四十
包括两个文件
也就是队列文件
那么它的任务和中断之间
是通过队列来发送数据的
而且用信号量和互斥器
来对重要资源的使用进行标记
最后一部分
就是硬件接口
也就是它的驱动程序
占整个软件的百分之六
那么下面我们来看
什么是信号量
什么是互斥器
什么是队列
我们举一个例子
假设我们有三个任务
一个是心电信号采集的任务
一个是信号显示的任务
一个是蓝牙通信的任务
那么心电信号采集以后
要通过信号显示任务进行显示
同时可以通过蓝牙
把这个心电信号发送给手机
或者是其它的设备
这时候采集的数据
可以用一个队列来存储
这个队列是先进先出的
那么心电信号采集的数据
可以存在这个队列的内存中
而信号显示和蓝牙通信任务
可以从这个队列中
去读取所需的数据
那只有采集完成以后
写了数据
那么后面的两个任务才可以读取
因此心电信号采集完成以后
这个任务它会有信号量
来通知后面两个任务
它的信号采集已经写到什么位置了
而后面的两个任务
因为都要从这个队列中去读取数据
而读取的时候
可能不能同时对某一个数据
进行操作
所以这时候
可能就需要有一个互斥器
告诉对方
谁占用了这个资源
这就是一个通信的例子
freeRTOS
它的任务的数量是没有限制的
任务之间它的调度
是采用优先级来调度
然后有两种方式
一种是抢占式的
也就是对于不同的优先级
高优先级的会被优先调度
第二种是协作式的
也就是相同的优先级
会被轮流调度
如何来产生任务呢
那么freeRTOS
是通过一个函数来产生任务的
就是xTaskCreate
然后产生任务的时候
有六个参数
我们下面来看下这个例子
在这个例子里头
产生了两个任务
首先
任务的第一个参数
是任务的函数名
第二个参数是任务名
那么都是字符串
方便调试
第三个参数就是占的大小
那么它的单位是字
那这时候呢
这个占的大小主要是根据任务
所需要的存储的容量来确定的
第四个就是任务的参数
第五个就是优先级
第六个是任务句柄
那么这个任务句柄
是在操作任务时候的一个标识
接下来看μc/OS
μc/OS有什么特点呢
我们来看一下
它是一个轻量级的
实时的
多任务的基于优先级的操作系统
那么它是开源的
用ANSI C写的
它对于学术研究使用是免费的
但是其它的应用是收费的
它可以用于8到64位的微处理器
目前的版本有两个
一个是μc/OS Ⅱ
一个是μc/OS Ⅲ
它的调度策略也是基于优先级调度的
是采用抢占式的调度策略
那么它的任务数目小于64个
下面看一下它的结构
它的结构包括三个部分
第一个就是接近于硬件的这部分
是微处理器相关的一些特定的代码
实际上也就是一些硬件的驱动程序
第二部分就是左边的这一部分
是与处理器无关的
包括调度策略
事件标志
信号量
邮箱
事件队列
任务管理
时间管理
存储器管理等等
右边这部分
是跟应用相关的特定的一些配置
比如任务的最大数目
队列的最大长度等等
这是它的结构
那么在产生任务的时候
它跟freeRTOS一样
是通过函数去产生的
这个函数是OSTaskCreateExt
它产生任务的时候有九个参数
这九个参数
跟freeRTOS的六个参数是类似的
那下面我们看这个例子
在这个例子中
产生了一个任务
它的九个参数我们就不再一一列举了
感谢您的观看
-课程简介
-1.1 电子系统简介
-1.2 现代电子系统举例
-1.3 现代电子系统的组成
-1.4 现代电子系统设计方法
-第一章 作业
-2.1 传感器定义
-2.2 传感器的分类和性能指标
-2.3 常用传感器介绍
-2.4 常用执行器介绍
-第二章 作业
-3.1 模拟信号处理简介
-3.2 信号放大和隔离电路
-3.3 滤波电路
--3.3 滤波电路
-3.4 运算电路(一)
-3.5 运算电路(二)
-3.6 电压比较器
-3.7 功率放大电路
-3.8 模-数转换器
-3.9 数-模转换器
-第三章 作业
-4.1 直流电源简介
-4.2 线性稳压电源
-4.3 开关稳压电源
-第四章 作业
-5.1 微处理器简介
-5.2 微处理器和片上系统的发展历程
-5.3 微处理器分类
-5.4 微处理器和片上系统举例
-5.5 微处理器和片上系统硬件结构
-5.6 外围接口和设备
-5.7 嵌入式软件开发方法
-5.8 嵌入式操作系统
-5.9 外围设备应用程序开发简介
-第五章 作业
-6.1 TM4C123 简介
-6.2 TM4C123 实验板
-6.3 TM4C123 软件开发
-6.4 TM4C123 实验举例
-第六章 作业
-7.1 PSoC简介
-7.2 PSoC实验板
-7.3 PSoC软件开发
-7.4 PSoC实验举例
-第七章 作业
-8.1 FPGA简介
-8.2 FPGA的发展趋势
-8.3 FPGA的特点
-8.4 FPGA的结构
-8.5 FPGA结构举例
-8.6 FPGA设计工具和方法
-8.7 QuartusⅡ集成开发环境
-8.8 DE2-115实验平台简介
-8.9 Verilog硬件设计语言
-- 8.9.8 设计仿真
-8.10 数字电路设计与仿真举例
-第八章 作业
-9.1 SOPC简介
-9.2 Nios II 微处理器简介
-9.3 Avalone总线简介
-9.4 SOPC设计方法简介
-9.5 SOPC设计举例
-- 9.5.1 设计内容
-9.6 Nios II 软件设计
-第九章 作业
-10.1 实验内容与要求
-10.2 实验设备与器材
-10.3 注意事项与调试方法
-10.4 实验结果展示
-第十章 作业
-期末考试
--期末考试