一.嵌入式操作系统
1.嵌入式操作系统的发展
(1)Tiny OS操作系统
1)开源深度轻量级操作系统
2)专为嵌入式无线传感网络设计,功耗较低,特别适合传感器这种受内存、功耗限制的设备
3)技术特点:轻线程、主动消息、事件驱动、组件化编程
(2)Android 操作系统
1)以Linux为基础半开放源代码的操作系统,主要用于移动便携设备
2)使用不同的软件开发包,则使用的编程语言也不同
(3)QNX操作系统
1)分布式实时操作系统,符合POSIX基本标准和实时标准,使其应用可以方便的移植
2)微内核提供的4种服务:进程调度、进程通信、底层网络通信、中断处理
(4)开源操作系统
1)免费获得,成本较低
2)获得技术支持困难、配套开发工作量大、系统可靠性低、完工后维护困难
3)典型例子:RTLinux、μCLinux、μC/OS-II
2.实时系统
(1)多数嵌入式系统有时间约束性,但并非嵌入式系统都是实时系统
(2)任务时限有两种:截止时间和任务执行预设时间
(3)可预测性:实时系统对时间约束严格,它是指实时操作系统能对外部事件的响应时间和实时任务的执行事件进行判断
3.实时操作系统
(1)七个特征
1)异步I/O和中断处理能力
2)任务切换时间和中段延迟时间确定
3)优先级中断和调度
4)抢占式调度
5)内存锁定
6)连续文件
7)同步
(2)按照对外部事件的响应时间快慢:分为强实时型(VxWorks、μc/os-II)和普通实时型(Symbian)
(3)性能指标:响应时间(中断延迟时间和任务切换时间)、吞吐量、生存时间
4.宏内核(单内核)
(1)典型例子
Linux·、Android OS、UNIX、WinCE、Mac OS、DOS
(2)优点:
1)应用程序生成效率高
2)内核功能切换开销小,内核运行效率高
(3)缺点
1)任务执行事件的可预测性较低
2)可靠性较低
3)排除故障和增加新功能需要重新编译
5.微内核:对单内核进行了结构改进(不是结构扩展),将多个模块编译成一个模块,称为微内核
(1)典型例子
QNX、VxWorks、Symbian、μC/OS-II、IOS
(2)特点
1)内核小巧,采取服务器方式实现
2)接口一致,所有进程请求使用统一接口,进程不需要区分用户模式还是内核模式
3)各功能模块松散耦合
4)扩充方便
5)功能切换开销大
6)基于客户端/服务器体系结构
6.嵌入式操作系统的仿真平台
二.板级支持包(BSP)和引导加载程序Bootloader
1.硬件抽象层HAL
2.板级支持包BSP
3.引导加载程序Bootloader
(1)嵌入式系统加电后进行的第一批操作就是引导或时自举,对应的程序就是引导或者加载程序Bootloader
(2)功能:内存加电自检、外设存在自检、内存地址映射、内存寻址定位、加载和启动操作系统
4.U-boot及其移植
三.嵌入式Linux操作系统
(1)对于Linux来说,Bootloader完成的步骤如下:
1)初始化处理器及硬件资源配置
2)建立内存空间的映射关系,使能MMU,将系统的内存外存地址变换激活,为最终调用操作系统内核做好准备
3)装载操作系统映像到内存
4)对Flash存储器编程
5)运行操作系统
6)传递系统启动参数
7)命令行解析和输入/输出控制
四.嵌入式操作系统μC/OS-II
(1)小型嵌入式操作系统内核,不含设备驱动程序和文件系统
(2)具有良好的可移植性和可裁剪性,能够支持的任务数最多为64(8个系统任务,56个用户任务),每个任务拥有自用栈,任务按优先级抢占式调度进行,最高优先级为0(运行任务),最低优先级为任务数减一(空闲任务)
(3)任务的5大状态
1)休眠态
2)就绪态
3)运行态
4)挂起态
5)被中断态
(4)μC/OS-II开源;μC/OS-III是商用操作系统
来源:https://blog.csdn.net/xiaohongya/article/details/100777484