第一章 嵌入式系统概论
- 嵌入式系统的定义:
以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
可以从以下几个方面理解:
①嵌入式系统是面向用户、面向产品、面向应用的;
②嵌入式系统一般指非PC系统,它包括硬件和软件两部分,硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件包括操作系统和应用程序编程。
- 嵌入式系统的核心:
是嵌入式微处理器和嵌入式操作系统(=硬件+操作系统)
嵌入式微处理器的特点:
①具有较强的操作系统支持能力;②具有功能很强的存储区保护能力;
③可扩展的处理器结构;④功耗很低
嵌入式操作系统的特点:
①代码精简;②实时性高;开发调试环境特殊
- 嵌入式系统的特点:(5个)
(1)功能特定性;(2)规模可变性;(3)实时性与稳定性;(4)操作系统内核小;(5)有专门的开发工具和开发环境
- 嵌入式系统的实时性分类:
(1)软实时系统:
任务时限柔性灵活、可容忍偶然的超时错误。失败造成的后果不严重,仅仅是降低了系统的吞吐量。
(2)硬实时系统:
系统要确保在最坏情况下的服务时间,对时间响应时间的截止期限必须得到满足。
第二章 嵌入式系统的基础知识
一个完整的嵌入式系统应包含嵌入式计算机系统和被控对象
- 嵌入式系统(嵌入式计算机系统)的基本结构:
(1)硬件层:以嵌入式处理器为核心。
(2)中间层:介于硬件层和软件层之间,把底层硬件和系统软件隔离,将硬件的细节屏蔽,便于操作系统调用。
(3)软件层:提供标准编程接口,降低应用程序开发难度,缩短开发周期。
(4)应用层:是整个嵌入式系统的核心,用来完成对被控对象的控制功能。
- 微处理器的体系结构:
(1)按存储器结构分类:①冯·诺依曼体系结构(程序指令存储器和数据存储器合并在一起的存储器结构);②哈佛体系结构(程序指令存储和数据存储分开)
(2)按指令类型分类:①复杂指令集(CISC);②精简指令集(RISC)
- 复杂指令集(CISC)特点:
(1)指令格式不固定、长度不一致,操作数可多可少;
(2)寻址方式复杂多样;
(3)采用微程序结构,执行每条指令均需完成一个微指令序列;
(4)每条指令需要若干个机器周期才能完成。
- 精简指令集(RISC)特点:
(1)指令数目少;
(2)执行时间短;
(3)每条指令都采用标准字长;
(4)便于实现哈佛结构和流水线作业。
- 复杂指令集(CISC)与精简指令集(RISC)的区别:
(1)从硬件角度看,CISC处理的是不等长指令集。RISC处理的是等长精简指令集,可并行处理。CPU执行RISC时速度更快且性能稳定;
(2)从软件角度看,CISC运行的是我们熟悉的DOS,Windows操作系统,且拥有大量应用程序。RISC在运行这些系统时需翻译,且速度慢。
- 提高CPU性能的方法:
(1)流水线技术:
取指、译码、执行、存储,可实现指令并行处理
(2)超标量执行技术:
设置多个平行流水线处理单元
(3)高速缓存技术:
是存储器子系统,复制了频繁使用的数据,利于CPU快速访问
- 处理器信息存储的字节顺序:
(1)大端模式:
字数据的高位字节存储在低地址中,字数据的低位字节则存储在高地址中。符合人类正常思维。
(2)小端模式:
字数据的高位字节存储在高地址中,字数据的低位字节则存储在低地址中。利于计算机处理。
第三章 嵌入式系统开发基础
- 传统的嵌入式系统设计过程:(次要)
①需求分析;②软硬件分别设计开发;③软硬件集成;④集成测试;⑤若正确则结束,否则继续;⑥若错误则对软硬件分别验证和修改;⑦再次集成并测试
- 软硬件协同设计过程:(6个)(主要)
①需求分析;②功能划分;③软硬件系统协同设计;④软硬件实现;⑤软件仿真、硬件测试;⑥软硬件协同调试和验证
- 协同设计与传统设计相比的显著区别:(次要)
(1)描述硬件和软件使用统一的表示形式;
(2)硬件、软件划分可以选择多种方案;
(3)具有协同设计、协同测试和协同验证的特点,充分考虑了软硬件关系。
第四章 ARM-Cortex-M3处理器体系结构
- Cortex-M3的内核结构:
是32位处理器内核,采用哈佛结构,拥有独立的指令总线和数据总线,可并行访问,地址统一分配编址。使用一个3级流水线:取指、译码和执行
- Cortex-M3的寄存器组织:
(1)通用寄存器组(16个):
(2)特殊功能寄存器:
①程序状态寄存器组(PSRs或xPSR):
程序状态寄存器在其内部又被分为三个子状态寄存器:应用程序PSR(APSR)、中断号PSR(IPSR)、执行PSR(EPSR)
②中断屏蔽寄存器组(PRIMASK,FAULTMASK,BASEPRI):
用于控制异常的使能和除能,特权级下才允许访问
③控制寄存器(CONTROL):
用于特权模式选择和堆栈指针选择
- 操作模式和特权级别:
两种操作模式分别为:处理者模式(handler mode)和线程模式(thread mode)。
说明:
①线程模式下,既可以使用特权级,也可以使用用户级;②handler模式总是特权级的;③复位后,处理器进入特权级线程模式。
第五章 嵌入式系统常用外设驱动编程实例
- 基于中断的键盘应用实例:
(1)矩阵键盘的扫描原理:
①按键按下,列线由高电平变为低电平,判断出在哪一列;
②将行线逐行置为低电平,剩余行线置为高电平;
③读取列线的状态,直到列线中出现低电平,判断出在哪一行;
④将行线和列线状态装入寄存器进行译码,配合去抖,实现扫描。
第六章 嵌入式操作系统基础知识
- 嵌入式操作系统的特点:
①实时性;②小内核;③可裁剪、可配置;④易移植;⑤高可靠性;⑥低功耗
- 嵌入式操作系统的基本概念:
(1)代码的临界段:
代码的临界段也称为临界区(通过关闭中断把必须是“原子的”以保证系统正常运转的指令的集合定义为“临界区”),指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,临界段代码执行完后立即开中断。
(2)资源:任何为任务所占用的实体都可称为资源
(3)共享资源:可以被一个以上任务使用的资源
(4)任务及任务状态(UCOS-Ⅱ操作系统中程序执行流程):
任务通常为线程和进程的统称,是内核调度的基本单元。
(5)优先级:
①静态优先级;②动态优先级
(6)任务切换及调度:
①不可剥夺型内核与非占先式调度:
响应中断快,且不需要使用信号量保护共享数据,但响应时间不确定
②可剥夺型内核与占先式调度:
系统响应时间最优化且可知,UCOS-Ⅱ属于可剥夺型内核
- 任务间的关系:
①相互独立;②互斥;③同步;④通信
- 常用的通信机制:
①信号量;②邮箱;③消息队列
第七章 嵌入式实时操作系统UCOS-Ⅱ
- UCOS-Ⅱ操作系统的特点:(次要)
①公开源代码;②可移植性;③可固化;④可裁剪性;⑤占先式;⑥多任务;
⑦可确定性;⑧实用性和可靠性
- 就绪表:
例:已知某系统处于就绪的任务优先级为5,6,8,14,当前任务(运行)为9。系统支持16个任务。①计算OSRdyGrp和OSRdyTbl[2]数组的取值;②OSUnMapTbl[0x81]如何确定?
- UCOS-Ⅱ的事件机制:
将通信、同步、互斥相关的信号看做事件,采用事件和事件控制块ECB来管理任务间的通信。
OSEventType:定义事件的具体类型;
OSEventCnt:当事件是信号量时,用于信号量的计数器;
OSEventPtr指针:当事件是邮箱或消息队列时才使用;
OSEventTbl[ ]和OSEventGrp:记录系统中处于就绪状态的任务
附:
- Keil5下载前的配置过程:
(1)连接好DAP仿真器,并且供电;
(2)用Keil5打开例程工程文件,设置DAP仿真器所需的使用条件:
①选择仿真器类型,点击“Debug”选择使用DAP;
②点击“Settings”,选择SW模式下载;
③点击“Flash Download”,点击“Add”添加开发板对应的STM32的型号;
(3)点击Keil左上角“Download”即可下载。
- 信号量:
(1)释放信号量服务:
(2)使用信号量闪烁LED-信号量实现共享资源访问:
补充: