第一章 嵌入式系统概论

  • 嵌入式系统的定义:

以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

可以从以下几个方面理解:

①嵌入式系统是面向用户、面向产品、面向应用的;

②嵌入式系统一般指非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)流水线技术:

取指、译码、执行、存储,可实现指令并行处理 

嵌入式虚拟化 arcn 出版社 基于嵌入式_stm32

(2)超标量执行技术:

设置多个平行流水线处理单元

(3)高速缓存技术:

是存储器子系统,复制了频繁使用的数据,利于CPU快速访问

  • 处理器信息存储的字节顺序:

(1)大端模式:

字数据的高位字节存储在低地址中,字数据的低位字节则存储在高地址中。符合人类正常思维。

嵌入式虚拟化 arcn 出版社 基于嵌入式_嵌入式虚拟化 arcn 出版社_02

(2)小端模式: 

字数据的高位字节存储在高地址中,字数据的低位字节则存储在低地址中。利于计算机处理。

嵌入式虚拟化 arcn 出版社 基于嵌入式_51单片机_03

第三章 嵌入式系统开发基础

  • 传统的嵌入式系统设计过程:(次要)

①需求分析;②软硬件分别设计开发;③软硬件集成;④集成测试;⑤若正确则结束,否则继续;⑥若错误则对软硬件分别验证和修改;⑦再次集成并测试

  • 软硬件协同设计过程:(6个)(主要)

①需求分析;②功能划分;③软硬件系统协同设计;④软硬件实现;⑤软件仿真、硬件测试;⑥软硬件协同调试和验证

  • 协同设计与传统设计相比的显著区别:(次要)

(1)描述硬件和软件使用统一的表示形式;

(2)硬件、软件划分可以选择多种方案;

(3)具有协同设计、协同测试和协同验证的特点,充分考虑了软硬件关系。

第四章 ARM-Cortex-M3处理器体系结构

  • Cortex-M3的内核结构:

是32位处理器内核,采用哈佛结构,拥有独立的指令总线和数据总线,可并行访问,地址统一分配编址。使用一个3级流水线:取指、译码和执行

嵌入式虚拟化 arcn 出版社 基于嵌入式_51单片机_04

  • Cortex-M3的寄存器组织:

(1)通用寄存器组(16个):

嵌入式虚拟化 arcn 出版社 基于嵌入式_fpga开发_05

(2)特殊功能寄存器:

①程序状态寄存器组(PSRs或xPSR):

程序状态寄存器在其内部又被分为三个子状态寄存器:应用程序PSR(APSR)、中断号PSR(IPSR)、执行PSR(EPSR)

②中断屏蔽寄存器组(PRIMASK,FAULTMASK,BASEPRI):

用于控制异常的使能和除能,特权级下才允许访问

③控制寄存器(CONTROL):

用于特权模式选择和堆栈指针选择

嵌入式虚拟化 arcn 出版社 基于嵌入式_51单片机_06

  • 操作模式和特权级别:

两种操作模式分别为:处理者模式(handler mode)和线程模式(thread mode)。

嵌入式虚拟化 arcn 出版社 基于嵌入式_stm32_07

 

嵌入式虚拟化 arcn 出版社 基于嵌入式_stm32_08

说明:

①线程模式下,既可以使用特权级,也可以使用用户级;②handler模式总是特权级的;③复位后,处理器进入特权级线程模式。

第五章 嵌入式系统常用外设驱动编程实例

  • 基于中断的键盘应用实例:

(1)矩阵键盘的扫描原理:

①按键按下,列线由高电平变为低电平,判断出在哪一列;

②将行线逐行置为低电平,剩余行线置为高电平;

③读取列线的状态,直到列线中出现低电平,判断出在哪一行;

④将行线和列线状态装入寄存器进行译码,配合去抖,实现扫描。

嵌入式虚拟化 arcn 出版社 基于嵌入式_fpga开发_09

嵌入式虚拟化 arcn 出版社 基于嵌入式_fpga开发_10

嵌入式虚拟化 arcn 出版社 基于嵌入式_stm32_11

第六章 嵌入式操作系统基础知识

  • 嵌入式操作系统的特点:

①实时性;②小内核;③可裁剪、可配置;④易移植;⑤高可靠性;⑥低功耗

  • 嵌入式操作系统的基本概念:

(1)代码的临界段:

代码的临界段也称为临界区(通过关闭中断把必须是“原子的”以保证系统正常运转的指令的集合定义为“临界区”),指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,临界段代码执行完后立即开中断。

(2)资源:任何为任务所占用的实体都可称为资源

(3)共享资源:可以被一个以上任务使用的资源

(4)任务及任务状态(UCOS-Ⅱ操作系统中程序执行流程):

任务通常为线程和进程的统称,是内核调度的基本单元。

嵌入式虚拟化 arcn 出版社 基于嵌入式_单片机_12

 (5)优先级:

①静态优先级;②动态优先级

(6)任务切换及调度:

①不可剥夺型内核与非占先式调度:

响应中断快,且不需要使用信号量保护共享数据,但响应时间不确定

②可剥夺型内核与占先式调度:

系统响应时间最优化且可知,UCOS-Ⅱ属于可剥夺型内核

  • 任务间的关系:

①相互独立;②互斥;③同步;④通信

  • 常用的通信机制:

①信号量;②邮箱;③消息队列

第七章 嵌入式实时操作系统UCOS-

  • UCOS-Ⅱ操作系统的特点:(次要)

①公开源代码;②可移植性;③可固化;④可裁剪性;⑤占先式;⑥多任务;

⑦可确定性;⑧实用性和可靠性

  • 就绪表: 

嵌入式虚拟化 arcn 出版社 基于嵌入式_stm32_13

嵌入式虚拟化 arcn 出版社 基于嵌入式_嵌入式虚拟化 arcn 出版社_14

例:已知某系统处于就绪的任务优先级为5,6,8,14,当前任务(运行)为9。系统支持16个任务。①计算OSRdyGrp和OSRdyTbl[2]数组的取值;②OSUnMapTbl[0x81]如何确定?

嵌入式虚拟化 arcn 出版社 基于嵌入式_fpga开发_15

  • 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)释放信号量服务:

嵌入式虚拟化 arcn 出版社 基于嵌入式_51单片机_16

(2)使用信号量闪烁LED-信号量实现共享资源访问:

嵌入式虚拟化 arcn 出版社 基于嵌入式_单片机_17

嵌入式虚拟化 arcn 出版社 基于嵌入式_fpga开发_18

补充:

嵌入式虚拟化 arcn 出版社 基于嵌入式_嵌入式虚拟化 arcn 出版社_19

嵌入式虚拟化 arcn 出版社 基于嵌入式_嵌入式虚拟化 arcn 出版社_20