嵌入式系统及应用
嵌入式系统导论
嵌入式软件系统
嵌入式实时内核
期末考试
第一章 嵌入式系统导论
1.什么是嵌入式系统?对比通用计算机(形式、组成、开发方式、二次开发性)
2.嵌入式系统的构成?(一体化软件)
3.嵌入式系统的发展阶段?嵌入式系统兴起于哪个时代?(1965-1970)
4.知名的嵌入式操作系统和开发工具有哪些?其中哪个嵌入式操作系统的公司曾
与电子科大合作建立嵌入式软件设计中心?
5. 嵌入式系统有哪些特点?如何理解某个特点?
6. 嵌入式系统的分类方法?每类系统的特点?按速度分类包含几类嵌入式系统?
(强实时、一般实时、弱实时)按确定性(实时性)分类?(硬实时、软实时、非
实时)按处理器位数?软件结构分类?按应用分类? 按软件结构分类?(循环轮询
系统、前后台系统、单处理器多任务系统、多处理器多任务系统)。
7. 按软件结构分类,嵌入式系统分类四类,各类嵌入式系统的组成和运行方式?有
何优缺点?
8. 嵌入式系统、实时系统、嵌入式实时系统三者关系
9. SOC (片上系统)与处理器的关系?
第四章 嵌入式软件系统基础
1. 嵌入式软件的特点是什么?(规模小、开发难度大、程序一体化、两个平台、快
速启动、实时性和可靠性要求高)
2. 嵌入式软件分类?(系统软件、支撑软件、应用软件/按运行平台划分)
3. 嵌入式系统体系结构(硬件、驱动、操作系统、中间件、应用)
4. 嵌入式软件运行流程?每阶段完成的工作?
5. 嵌入式操作系统的特点?演变的几个阶段?(无操作系统、简单操作系统、实时
操作系统、面向Internet阶段)从实时性的角度,嵌入式操作系统如何分类?
6. 嵌入式操作系统体系结构设计方式?(宏内核(单块结构)、层次、微内核)各
种方式的优势和问题。
7. 嵌入式操作系统与通用操作系统相比,有哪些特点?嵌入式操作系统的构成(内
核、网络、文件、…)?
8. 嵌入式内核的主要模块有哪些?嵌入式TCP/IP的特点?
9. 嵌入式开发工具的哪两个特性影响嵌入式系统的开发效率?(集成度、可用性)
10. 嵌入式软件开发工具的分类?主要的开发工具产品有哪些?
11. 交叉开发环境?宿主机、目标机、如何连接?
12. 嵌入式软件的开发过程?(软件的生成、调试、固化)
13. 什么是交叉调试?嵌入式软件有哪些交叉调试方式?各种方式的调试过程和优
缺点?与非交叉调试相比有何不同?
14. 常用的嵌入式软件测试工具包括哪些?
第五章 任务管理与调度
1. 采用多任务方式编写应用的优点是什么?
2. 嵌入式系统中任务与进程/线程的关系?
3. 操作系统有哪些进程/线程模型?典型操作系统。嵌入式实时内核通常采用哪种
模型?
4. 嵌入式系统中任务的定义?有哪些特性?任务包含的内容?任务的上下文环境概
念与内容?任务上下文信息存储在何处?TCB的全称?
5. 任务的分类?任务包含哪些参数?
6. 任务包含哪些基本状态?什么是任务状态变迁?任务间如何变迁?任务状态变迁
图,UCOS 任务状态变迁图?
7. 空闲任务?用途?
8. 什么是任务切换?什么时候发生任务切换?任务切换的主要工作内容(任务切换
的基本步骤)?
9. 如何管理就绪任务?采用队列方式管理TCB对确定最高优先级任务有什么问题?
10. ucos的优先级位图定义与算法?
11. 实时内核任务管理通常提供哪些功能?(API)
12. 任务调度解决哪三个问题?调度点的位置?调度的作用?UCOS-II如何实现调
度?
13. 实时内核的调度强调什么?
14. 设计调度程序需要考虑哪些因素?
15. 第一篇关于实时调度算法的研究论文发表于什么时间?
16. 离线调度 vs 在线调度?
17. 抢占式调度 vs 非抢占式调度?可抢占内核 vs 不可抢占内核?
18. RMS调度?可调度的充分条件?EDF调度?可调度的充要条件?
19. 什么是优先级反转?怎么产生的?
20. 优先级继承协议的基本思想?优先级天花板协议的基本思想?两种协议在执行
效率以及对任务执行流程的对比?
第六章 同步互斥与通信
1. 多任务环境下,任务之间和任务与ISR之间的可能关系?
2. 任务与ISR之间的同步关系?
3. 嵌入式操作系统内核提供哪些同步、互斥和通信机制?
4. 信号量的用途和种类?
5. 互斥机制有哪些?各种互斥机制的比较?(锁定范围、响应时间、系统开销、注意
事项)
6. 信号量机制的主要数据结构?典型信号量的操作
7. 任务间的通信方式?
8. 消息的定义?邮箱与消息队列机制的异同?
9. 消息队列机制的主要数据结构?消息队列缓冲区存放内容?哪种方式更适合嵌入
式实时应用?
10. 典型消息队列的操作?
11. 事件机制的定义、特点、意义?
12. 事件机制的实现方式?
13. 典型事件操作?
14. 异步信号的用途?
15. 异步信号机制与中断机制的比较?
16. 异步信号机制与事件机制的比较?
第七章 中断、时间、内存管理
1. 广义中断包含的中断类型?
2. 中断的分类?
3. 中断的处理过程?系统何时进行中断检测?中断响应由谁完成?中断服务程序的
主要内容?
4. 非嵌套中断处理 与 嵌套中断处理的区别?
5.实时内核的中断服务程序包含哪些部分?用户中断服务程序编写需要注意的事
项?
6. 中断时序图?中断延迟时间与中断响应时间的关系?
7.抢占式和非抢占式调度内核的中断时序图有何不同?
8. 实时内核提供哪些时间管理功能?
9. 嵌入式系统的时钟源?实时时钟与系统时钟的概念?两者的关系?
10. 实时内核的时间管理以系统时钟为基础,系统时钟如何定义?如何实现?
11. tick 的定义?tick的时间长度是固定值吗?
12. 实时内核提供哪些时间管理相关的功能?
13. tick处理程序与时间中断处理程序的关系?tick处理程序需要处理哪些事务?
14. 时间等待链(差分时间链)的定义与组织方式?采用差分时间链的优点?
15. 嵌入式实时内核内存管理的特点?
16. 内存的分配方式?静态与动态分配的定义?两种方式的优缺点?
17. 常用内存管理方式?固定大小存储区、可变大小存储区,各自的管理方式和优
缺点
18. ucos ii的内存管理方式?
19. 如何实现内存保护?
20. MMU的全称?MMU的功能?
21. MMU有几级使用方式?每级使用方式的特点?每级使用方式的应用情况?
22. MMU提供哪些措施实现内存保护?
按处理器位数划分
按应用划分
按实时性划分
按软件结构划分
- 4位
- 8位
- 16位
- 32位
- 64位
- 通信类
- 信息家电类
- 移动终端类
- 汽车电子类
- 工业控制类
- 硬实时系统:对时间严格要求,若不能满足则会引起系统奔溃和致命错误
- 软实时系统:对时间有要求,不能满足也不会出现致命的错误或崩溃
- 非实时系统
嵌入式系统 和 实时系统 和嵌入式实时系统
SOC包含CPU,芯片的发展就是从CPU发展到SOC
- 规模小,开发难度大
- 快速启动,直接运行
- 实时性和可靠性要求高
- 程序一体化
- 两个平台
定义
作用
分类
是操作系统的基础,定义了硬件与软件的界限、内核与操作系统其他组件的组织关
系、系统与应用的接口
确保系统的性能、可靠性、灵活性、可移植性、可扩展性
单块结构
层次结构
微内核结构
定义
组成
用于嵌入式软件开发所有工具软件的集合
宿主机
目标机
定义 用于开发嵌入式系统的计算机
定义 是嵌入式系统,是嵌入式软件的运行环境
交叉调试&非交叉调试
交叉调试方式
Crash and Burn
Rom Monitor
Rom Emulator
In Circuit Emulator
On Chip Debugging
将程序代码固化到目标机上,没有调试器
被固化在目标机ROM上的程序
初始化
- 对目标机进行一系列初始化
- 初始化自己的程序空间
- 等待宿主机端的命令
调试过程
1. 控制目标机,等待调试器连接
2. 启动调试器,并与监控器建立连接
3. 使用调试器将应用程序下载到目标机上的RAM空间
4. 调试器进行调试,监控器解释执行这些命令,通过目标机上的异常对其进行控
制,将命令结果返回给调试器
5. 调试器定位错误,修改重新编译并下载程序,开始新的调试,直到程序正确运行
为止
优点
- 兼容性高
- 简单方便
- 成本低
- 几乎所有的交叉调试器都支持这种方式
缺点
- 占用目标机资源
- 调试环境不同于实际目标环境
- 某些调试依赖于CPU支持
用于代替目标机上的ROM芯片
用于代替目标机上的CPU
廉价的ICE
交叉调试 宿主机(一般是电脑)与目标机(嵌入式系统)之间跨平台进行调试
- 任务规模较小
- 不少应用本身就是由多个任务构成
- 任务间独立性高,耦合性小
- 实时性强
可预测性
重要性
关键任务
非关键任务
周期任务
非周期任务
三状态:等待 就绪 执行
如何变迁:通过调度程序
保存当前任务的上下文,并恢复需要执行的任务的上下文
步骤
- 任务控制块保存和恢复任务的执行上下文
1. 中断、自陷
2. 运行任务缺乏资源而被阻塞
3. 时间片轮转调度时
4. 高优先级任务处于就绪时
RMS调度
EDF调度
比率单调调度,周期越短优先级越高
最早截止时间优先调度,任务截止时间越近优先级越高
出现原因 在多任务共享资源的情况下,高优先级任务可能会被低优先级任务阻塞
概述
高优先级任务等待低优先级任务释放资源,低优先级任务又在等待中等优先级任务
释放资源
优先级继承
优先级天花板
一个任务阻塞了一个或多个任务,从被阻塞的任务中取优先级最高的作为其执行临
界区优先级,当该任务退出临界区又恢复到最初优先级
能够确定最大阻塞时间
解决优先级继承中存在的死锁和阻塞链问题 信号量优先级天花板:使用该信号量最高优先级的任务
信号量控制块
互斥和二值信号量控制块结构
计数信号量控制结构
管理所有创建的信号量,内核在系统运行时动态分配和回收信号量控制块
全称 内存管理单元
功能
虚实地址的转换、内存保护、中央处理器高速缓存的控制
中断前导
用户中断服务程序
中断后续
概述
保存中断现场,进入中断处理
概述
完成对中断的具体处理
概述
恢复中断现场,退出中断处理
被组织成虚拟中断向量表
部分
注意
中断服务程序应该尽可能短
定义 每次定时器/计数器输出脉冲都触发一个时钟中断,一中断就是一个tick
不是,可以调整
实时性、可靠性、高效性
简答题
按实时性划分,嵌入式系统可分为几类?它们的特点是什么?
硬实时系统:对时间要求严格,不满足会引起系统崩溃和致命错误
软实时系统:对时间要求不严格,不满足也不会出现系统奔溃和致命错误
非实时系统:对时间要求不严格,以循环为主
按软件结构划分,嵌入式系统可分为几类?他们的优点、缺电各是什么,分别适用
于哪些系统?
循环轮询系统
优点:- 便于编程和理解
- 没有中断机制,不会出现随机问题
缺点:- 有限应用领域
- 对于大量io服务的应用不易实现
- 大程序不便于调试
适用:慢速和超快速的简单系统
前后台系统
优点:- 简单明了
- 专注处理一件事处理能力强
缺点:- 软件规模大难以管理
- 实时性难保证
适用:单片机系统
单处理器多任务系统
优点:- 降低系统的复杂性
- 保证系统的实时性
- 模块化可维护性好
缺点:- 需要操作系统
- 需要好的设计模式
适用:片上单处理器系统
多处理器多任务系统
优点:- 将复杂系统分成独立的子系统
- 实时性好
- 模块化好,可维护性好
缺点:- 需要好的软件设计方案
适用:片上多处理器系统
前后台系统的组成和运行模式如何?需要考虑的主要因素有哪些?其主要性能指标
是什么?
组成:前台中断处理程序 + 后台循环主程序
运行:后台循环运行,遇到前台来的中断请求,暂停后台程序去处理前台中断程
序,处理完毕后跳回后台程序继续执行
考虑因素:中断的现在保护和恢复,中断嵌套,共享资源
性能指标:中断延迟时间,中断响应时间,中断恢复时间
单处理器多任务系统由哪些部分组成?其运行方式如何?
组成:多个前台 + 多个并发后台 + 操作系统
运行方式:多任务顺序执行,通过操作系统来实现并发。任务间以及任务与中断处
理程序间的通信、同步和互斥也需要操作系统支持
嵌入式系统
以应用为中心,以计算机技术为基础,可剪裁,成本低的专用计算机系统
- 面向特定应用
- 多种类型的处理器核体系结构
- 关注成本、实用性、可靠性
- 使用嵌入式操作系统
- 开发需要专门的工具
操作系统
开发工具
μC/OS-II、eCos、FreeRTOS、mbed OS、Alios Things、Huawei LiteOS
Keil、RealView MDK、MPLAB是一种易学易用的PIC、VisualDSP++是一款针对
ADI、Xilinx Platform Studio
循环轮询系统
-对于大量的1/O服务的应用,不容易实现-大的程序不便于调试
前后台系统
-实时性也难以保证
单处理器多任务系统
多处理器多任务系统
需要增加功能
优点
缺点
适用
-对于简单系统,便于编程和理解
-没有中断机制,程序运行良好,不会出现随机问题
-有限的应用领域
慢速和超快速的简单系统
优点
缺点
适用
–简洁明了
-专注一件事处理能力强
–软件规模大难以管理
单片机系统
优点
缺点
适用
–降低系统的复杂性
-保证系统的实时性
-模块化好,维护性好
–需要操作系统
-系统需要分解
-需要好的设计方法
片上单处理器系统
优点
缺点
适用
将复杂的系统分解成独立的子系统
实时性好
模块化好,可维护性高
需要新的软件设计方法
需要对每一个共享资源互斥
导致线程间的竞争
需要使用RTOS
片上多处理器系统
单处理器多任务系统
组成
运行方式
多个前台+多个并发后台+操作系统
多任务顺序执行,通过操作系统实现并行。任务间以及任务与中断处理程序间的通
信、同步、互斥也需要操作系统支持
前后台系统
组成
运行方式
前台中断处理程序+后台循环主程序
后台循环运行,遇到前台来的中断请求,暂停后台程序去处理前台中断程序,处理
完毕后跳回后台程序继续执行
系统软件:控制管理计算机系统资源的软件,例如嵌入式操作系统;
支撑软件:辅助嵌入式软件开发的工具软件,例如交叉开发工具等;
应用软件:面向特定应用领域的软件,例如手机软件,路由器软件等。
- 操作系统由多个模块构成
- 模块间相互调用
- 用户态和核心态两种工作模式
- 两种执行权限和执行空间
- 上层不能修改下层数据
- N-1层为N层提供服务
- 提高操作系统的安全性
- 完成任务管理、任务调度、通信功能
任务管理、内存管理、通信同步与互斥机制、中断管理、时间管理、任务扩展
- Debug Monitor 需要用 Crash and Burn 方法开发。
- 当 ROM Monitor 占用 CPU 时,应用程序不响应外部的中断,因此不便调试有
时间特性的程序
任务通常为进程和线程的统称
任务包含的内容
- 代码:一段可执行的程序
- 数据:程序需要的数据
- 堆栈
- 程序执行上下文环境:包含了实时内核管理任务、以及处理器执行任务所需的信
息,通过任务控制块来体现
任务状态变迁:任务会在不同状态间进行转换
什么是任务切换
什么时候发生任务切换
1. 将当前运行的任务的上下文信息保存到其任务控制块中
2. 并且将其切换到就绪或等待队列中
3. 把需要运行的任务上下文信息从其任务控制块中取出放到CPU中
4. 并且将其由就绪态切换到运行状态
简单
抢占式:复杂,需要更多资源,会造成低优先级任务长时间得不到执行的情况
非抢占式:常用于按序顺序执行的任务
是指将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级
任务的优先级
用途 实现任务与任务间、任务与中断处理程序间的同步和互斥
种类
- 互斥信号量:用于解决互斥问题
- 二值信号量:用于解决同步问题
- 计数信号量:用于解决资源计数问题
- 关中断
- 使用测试并置位指令
- 禁止任务切换
- 使用信号量
定义
特点
意义
实现一对多的同步
实现一个任务与多个任务或中断服务进行同步
在嵌入式实时内核中,事件是指一种表明预先定义的系统事件已经发生的机制
0级
1级
2级
3级
特点
应用
特点
应用
特点
应用
特点
应用
简单、性能高
传统嵌入式操作系统
只拥有平面内存模式
传统嵌入式操作系统
有内存保护功能,又能通过静态域的使用方式保证系统的实时特性
目前大多数操作系统
使用cpu提供的内存映射机制,透明
大型复杂对实时性要求不高的领域
实时时钟
系统时钟
关系
有电池供电,独立于操作系统的硬件时钟,为整个系统提供计时标准
实时内核控制定时器产生的时钟
- 实时时钟独立于操作系统,系统时钟是由系统控制定时器产生的
- 实时时钟是系统时钟的时间基准,实时内核通过读取实时时钟初始化系统时钟,
此后两者保持同步运行,共同维系系统时间
关系
事务
定时器发生中断后,执行系统时钟中断处理程序,并在中断处理程序中调用tick处
理程序,实现系统中与时间和定时相关的操作
- 相对时间
- 任务时间片
- 时间等待链
- 软件定时器
- 日历时间
- 任务调度
定义
组织方式
优点 有效降低时间等待对象的管理开销
一种有效的时间等待对象的组织方式
单链表形式
嵌入式软件的种类和特点是什么?
软件划分
运行平台划分
系统软件:控制管理计算机系统的资源(嵌入式操作系统)
支撑软件:辅助软件开发的工具(交叉开发工具)
应用软件:面向特定应用领域(手机软件,路由器软件)
运行在开发平台上:设计、开发、测试工具
运行在目标平台上:嵌入式操作系统、应用程序、驱动程序及部分开发工具
- 面向特定应用
- 多种类型的处理器核体系结构
- 关注成本、实用性、可靠性
- 使用嵌入式操作系统
- 开发需要专门的工具
种类
特点
嵌入式软件的运行流程分为几个阶段?每阶段主要完成什么工作?
1、板级初始化
2、系统引导/升级阶段
3、系统初始化 进行操作系统等系统软件各功能部分必需的初始化工作,需要按特定顺序进行
4、应用初始化 进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。
5、多任务应用 各种初始化完成后,操作系统进行任务调度,各应用分别完成各自功能。
0、上电复位
CPU 堆栈指针寄存器初始化、BSS 段初始化和 CPU 芯片级的
初始化
什么是交叉调试?嵌入式软件有哪些交叉调试方式?ROM monitor 和 OCD的主要
优缺点是什么?
交叉调试
交叉调试方式
Crash and Burn
Rom Monitor
Rom Emulator
In Circuit Emulator
On Chip Debugging
优点
- 兼容性高
- 简单方便
- 成本低
缺点
- 占用目标机资源
- 调试环境不同于实际目标环境
- 某些调试依赖于CPU支持
宿主机(一般是电脑)与目标机(嵌入式系统)之间跨平台进行调试
- Debug Monitor 需要用 Crash and Burn 方法开发。
- 当 ROM Monitor 占用 CPU 时,应用程序不响应外部的中断,因此不便调试有
时间特性的程序
优点
缺点
- 不占用目标机资源
- 调试环境和最终的程序运行环境基本一致
- 调试的实时性不如ICE
- CPU必须具备OCD功能
任务主要包含哪些状态,并就状态之间的变迁情况进行描述
状态 等待、就绪、执行
状态变迁
说明什么是任务切换,任务切换通常在什么时候进行,以及任务切换的主要工作内
容?
什么是任务切换
什么时候发生任务切换
步骤
保存当前任务的上下文,并恢复需要执行的任务的上下文
1. 中断、自陷
2. 运行任务缺乏资源而被阻塞
3. 时间片轮转调度时
4. 高优先级任务处于就绪时
1. 将当前运行的任务的上下文信息保存到其任务控制块中
2. 并且将其切换到就绪或等待队列中
3. 把需要运行的任务上下文信息从其任务控制块中取出放到CPU中
4. 并且将其由就绪态切换到运行状态
什么是优先级反转?解决优先级反转有哪些主要方法?分别就这些方法进行描述
概述
优先级继承
优先级天花板
高优先级任务等待低优先级任务释放资源,低优先级任务又在等待中等优先级任务
释放资源
一个任务阻塞了一个或多个任务,从被阻塞的任务中取优先级最高的作为其执行临
界区优先级,当该任务退出临界区又恢复到最初优先级
是指将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级
任务的优先级
优点
缺点
- 目标机可以没有ROM芯片
- 目标机必须支持外部ROM存储空间
优点
缺点
- 实时性能分析
- 价格贵
优点
缺点
- 不占用目标机资源
- 调试实时性不如ICE
SoC = 处理器 + SoC片内外设
文本编辑器
交叉编译器
交叉调试器
仿真器
下载器
交叉开发环境由宿主机和目标机组成
任务在运行过程中能否被抢占的处理情况
实时内核大都采用了抢占式调度算法
中断服务程序可重入
- 内存映射;
- 检查逻辑地址是否在限定的地址范围内,防止页面地址越界;
- 检查对内存页面的访问是否违背特权信息,防止越权操作内存页面;
- 在必要的时候(页面地址越界或是页面操作越权)产生异常。
浮动主题
评论0
最新资源