嵌入式复习资料精
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章嵌入式系统基础知识
1.嵌入式系统基础知识
计算机系统的两个发展分支
通用计算机与嵌入式计算机
嵌入式系统的一般定义、IEEE定义
一般定义:以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。
是将应用程序、操作系统和计算机硬件集成在一起的系统。
(技术角度)
嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
(系统角度)
广义定义:任何一个非计算机的计算系统。
IEEE (国际电气和电子工程师协会)定义:嵌入式系统是“用于控制、监视或者辅助操作的机器、设备或装置”。
嵌入式系统4个组成部分
嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序
嵌入式系统的三个基本要素
嵌入性、专用性、计算机系统
嵌入式系统的软硬件特点
硬件方面:稳定性、低功耗、体积受限、看门狗电路、成本低、系统资源少软件方面:实时性、可裁剪性、精简性、人机界面要求不高
嵌入式系统的硬件架构
以嵌入式处理器为中心,配置存储器、I/0设备、通信模块以及电源等必要的辅助接口组成。
嵌入式系统的硬件核心
嵌入式微处理器
嵌入式处理器的种类
嵌入式微处理器、嵌入式微控制器、嵌入式DSP、嵌入式SOC
S0C
SOC是指在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路等电路模块,可以直接实现信号采集、转换、存储、处理等功能。
2.嵌入式系统硬件
嵌入式微处理器的体系结构
冯诺依曼结构:单一的程序和数据总线。
哈佛结构:独立的程序和数据总线。
RISC(精简指令集计算机)的概念及思想精华
1979年,美国加州伯克利分校提出了RISC的概念,基本思想是尽量简化计算机指令功能,只保留那些功能简单,能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序实现。
RISC思想的精华就是通过简化计算机指令功能、简化计算机指令格式,使指令的平均执行周期减少,同时大量使用通用寄存器来提高计算机的工作主频,提高程序的速度。
(通常, RISC计算机的速度是同等CISC计算机的3倍。
)
ARM概念及ARM处理器系列产品
ARM(Advanced RISC Machines)是一个 CPU 内核。
ARM7 系列(有 ARM7TDMI、ARM720T、ARM7EJ-S)
ARM9 系列(有 ARM920T、ATM922T、ARM940T、ARM926EJ-S 等)
ARM10、11 系列
ARM Cortex 系列(Cortex-A、Cortex-R、Cortex-M)
3.嵌入式软件及嵌入式操作系统
嵌入式系统软件架构
应用程序、协议线、嵌入式操作系统、板支持包/设备驱动、硬件
嵌入式操作系统的功能和架构
功能:任务调度、进程间通信、文件管理(可选)、中断处理、存储器管理(可选)
架构 Kernel: Memory Mgmt.、I/O System、Network Stack、Device Drivers、File Systems
当前流行的嵌入式操作系统
Palm OS、Windows CE、Linux(uClinux)、RT Linux、uC/OS II、其它商业 OS: QNX、VxWorks
第二章CM3体系结构与STM32
1. CM3
Cortex-M3是一个32位处理器内核。
CM3采用了哈佛结构,拥有独立的指令总线和数据总线。
程序计数寄存器R15的作用
指向当前程序地址
特殊功能寄存器类别和作用
程序状态字寄存器组:记录人卬标志(0标志、进位标志、负数标志、溢出标志1执行状态以及当前服务的中断号。
中断屏蔽寄存器组:PRIMASK失能所有的中断、FAULTMASK失能所有的fault、BASEPRI失能所有优先级不高于某个具体数值的中断。
控制寄存器:定义特权状态,并且决定使用哪一个堆栈指针。
Cortex-M3处理器支持两种操作模式和两级特权操作
两种操作模式处理者模式:异常服务例程的代码一一包括中断服务;线程模式:普通应用程序的代码。
两级特权一一特权级和用户级,提供一种存储器访问保护机制,使得普通用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。
异常及包括的类型
在ARM编程领域中,凡是打断程序顺序执行的事件,都被称为异常。
包括:外部中断、不可屏蔽中断、指令执行了“非法操作”或者访问被禁的内存区间产生的各种错误fault。
向量表及其工作工程
向量表是一个WORD(32位整数)数组,每个下标对应一种异常,该下标元素的值则是该ESR 的入口地址。
向量表在地址空间中的位置是可以设置的,通过NVIC中的一个重定位寄存器来指出向量表的地址。
在复位后,该寄存器的值为0。
因此,在地址0处必须包含一张向量表,用于初始时的异常分配。
CM3的复位序列
在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:
从地址0x00000000处取出MSP的初始值
从地址0x00000004处取出PC的初始值一一这个值是复位向量,LSB必须是1。
然后从这个值所对应的地址处取指。
CM3的三级流水线
取指令、解码、执行
CM3指令集
Cortex-M3只使用Thumb-2指令集,允许32位指令和16位指令水乳交融,代码密度与处理性能两手抓。
2. STM32 架构
DCode System
STM32存储映射
代码区、片上SRAM 、用户设备的存储映射、Cortex-M3寄存器
启动配置
从用户FLASH 启动、从系统存储器启动、从嵌入式SRAM 启动
STM32的低功耗模式有3种
睡眠模式(CM3内核停止,外设仍然运行) 停止模式(所有时钟都停止) 待机模式(1.8V 内核电源关闭)
STM32的安全保障
内部复位电路、时钟安全系统、两只看门狗
匚m.g
济梅£
DMA 睛求
vk
史也和时许 校的fRC?
DMA 请求
4DC1
GF1OC
ADC2
GPIOD ADCS GPIOE USAHT1 (P ICF 加 H GP1OG 11祠 1 EXTI TIMU Afro GP1OA GPIQS
Pv 阳€Pia 侬
BKP IWDG txCAN VATDG USB FKC GC2 TIM? i?Cl TIMS
UAFVF5 TIMS kJARt4 TIM* □SART3 TIW usAfTTi T IME
电压调节器
低电压检利器
后备供电区域
LSE 32K 晶体霰荡器 后备寄存搀 RCC BDCR 寄存
器
RTC
STM32时钟源
HSE 、 HSI 、 LSE 、 LSI
实际应用中,经常出现由于晶振在运行中失去作用,导致系统出错。
STM32内部的CCS 解决 了这种问题,一旦HSE 失效,CCS 系统将系统时钟源切换到由1
第三章(P28) STM32程序设计
外设的初始化和设置步骤
在设置一个外设前,必须先使能它的时钟
第四章 STM32电源、时钟及复位
STM32电源配置
(V SSA )
(从 Z4V 起至 nDDQVRCj
(Vg)
(^ss) ^SSA
V 皿供电区域 I/O 电路
L8 V 供电
区域
CPU 核心
存储器 内置 数字•外设
A/D 转换罂
温度传梆粉 复.位模央
PLL
待机巾路
(噢例量辑
启动模式
根据启动设置,可将用户Flash、系统Flash、内部SRAM映射到0x00000000起始的区域。
启动代码及其功能
嵌入式系统的启动还需要一段启动代码,类似于启动Pc时的BIOS,一般用于完成微控制器的初始化工作和自检。
功能:初始化堆栈、定义程序启动地质、中断向量表和中断服务程序入口地址,以及系统复位启动时,从启动代码跳转到用户main函数入口地址。
备份区域架构
当TAMPER引脚上的信号的电平发生变化(从0变到1或从1变到0,取决于备份控制寄存器BKP_CR的TPAL位),会产生一个入侵检测事件。
cf:固件库:软硬件结合。
第五章 STM32F10X 标)隹外设
重点:GPIO 、NVIC 、通用定时器Timer2的时基单元 1. RVMDK 不要求掌握 2. C 语言指针和构造数据类型
构造数据类型:数组、指针、结构体、枚举、共用体
3. GPIO
GPIO 的4种输入和4种输出模式
4种输入:浮空输入、带上拉电阻的输入、带下拉电阻的输入、模拟输入 4种输出:开漏输出、推挽输出、复用推挽输出、复用开漏输出
STM32时钟树设置(P346 10分)
—极管 口2引脚
输出 控制
至片上外设
.哄也输入
疑用功能输入
STM32库函数
4. SysTick
SysTick, “系统节拍时钟”属于ARM Cortex-M3内核的一个“内设”
SysTick 的组成
时钟的输入源、控制寄存器、私有外设总线
SysTick 工作原理
首先SysTick 从时钟源接口获得时钟驱动,然后从重装寄存器将重装值读入当前计数寄存 器,并在时钟驱动下进行减一计数。
而当SysTick 发生下溢的时候将计数标志置位,并在 满足一定条件的情况下出发5丫$丁正女溢出中断,同时进行一次重装值载入操作。
5. USART 通用同步异步收发器(不考)
配置串口通讯,至少需要设置:字长、波特率、奇偶校验位、停止位 3 条线:Rx 、Tx 、GND
库函数调用关系
4—
LEI WHH ith
7nt 邙 m I b t
->r.VHL'I j [I] < .
Layw
A|j|3McdUcn
Lrqyw
:*) RCC ructii ss art ue>cd.
In 二_"引』」Loon 甚 干㈤ th*? nerprvL 甩
-To9et tw bus dock fte9jency on the oom penpherat Are {nrwiected
■MnaiflUx fM.h
* n32f 10<_pp^.- h
6.NVIC (不考 EXTI)
概念
中断响应
当某个中断来临,会将相应的中断标志位置位。
当CPU查询到这个置位的标志位时,将响应此中断,并执行相应的中断服务函数。
中断优先级
每个中断都具有其优先级,其相互之间的优先关系一般以优先级编号较小者拥有较高优先级。
优先级又分为两种:查询优先级和执行优先级。
查询优先级和执行优先级
当某一时刻有两个或两个以上中断处于挂起状态,则首先执行执行优先级较高的中断。
若执行优先级一致,则首先执行查询优先级较高的中断。
查询优先级一般以该中断向量在中断向量表中的位置决定。
中断嵌套
当某个执行优先级较低的中断服务在执行时另一个执行优先级较高的中断来临,则当前优先级较低的中断被打断,CPU转而执行较高优先级的中断服务。
中断挂起
当某个较高执行优先级的中断服务在执行时另一个优先级较低的中断来临,则因为优先级的关系,较低优先级中断无法立即获得相应,则进入挂起状态(即等待执行)。
NVIC嵌套中断向量控制器同Systick定时器一样,NVIC属于ARM Cortex-M3内核的内设之一,用来管理中断嵌套。
NVIC的先占优先级和次占优先级管理机制
■拥仃较高先占优先级的中断可以打断较低先占优先级的中断卜类似执行优先级)口
0若两个相同先占优先级的中断同时挂起,则优先执行次占优先级较高的中断(类似查询优先级.但.并不是真正意义卜的查询优先级):
0若两个挂起的中断两个优先级都一致,则优先执行位于中断向惜表中位置较高的中断(这才是查询优先级)0
回无论任何时刻,次占优先级都不会造成中断嵌套,即中断嵌套完全是由先占优先级决定的.
STM32只使用4位序列表示优先级分组,即最大只支持16级中断嵌套管理。
$事件 工,中断和DMA 输出
STM32的定时器资源
高级定时器、通用定时器、基本定时器、“专用”定时器、内核Systick 定时器
通用定时器组成
时基单元、输入捕获、输出比较(后两个不要求)
时基单元组成
计数器寄存器(口取/股)、预分频器寄存器(TIMx_PSC )、自动装载寄存器(TIMx_ARR )
7.通用定时器
2、通用定时器结掏框图
H1FF*1
IriFfz H3FP 1
Tiarra liSFPi
从校式
修融・恒髓.
可 I1/向 F- i I tl(
TiTFRI
TriFPz
CNT 计策超
捕危”匕依4奇仃步
油抗心二地1自存
会
.hj'ULtii2^6W
T13
浦通,比收3帮F F
器
TRC
阖人蓝拽吃 切山瘩步则驾
辕入港的舐 利亚的抬震特
与其看比时越 予 CAC ADC
的人混波眼 照0拈*; ,油器
影子寄存器(了解)
:工影子寄存器(slKidow register):表示在物理上这个寄存器对应二个帘存器「一个是程序员可以写入或读出的寄存器।称为preload register(预装载寄存器). 另一个是程序员看不见的、但在操作中真正起作用的备存器।称为』adsv TugisteF(影子寄存器)口根据UM K_CR1寄存器中APRE位的设置,ptuload工隹阳打的内容可以随时传送到占hadoxv 代t ur,即两者是连通的(p erman ently).或者在
每一次更新事件(UE V)时才把preload re2isTer的内容传送到shadow re sister 0其|_j 的是保证多个通道的操作能够准确地同治.
独立看门狗(了解)
看门狗又叫watchdog向的(WDT),是一个定时器电路口
□ 一个输入端士叫喂狗引脚:
口一个输出端:连接到MCU的RESET引脚;
作用:对单片机运行状态进行实时监测,监测单片机程序运行状态।防止程序跑飞,进入死循环口
•T八
ADC类型
逐次逼近型、积分型、压频转换型、较为高级的分级型和流水线型。