嵌入式复习资料(精)
- 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Ⅱ、其它商业OS:QNX、VxWorks 等
第二章 CM3体系结构与STM32
1.CM3
Cortex-M3是一个32位处理器内核。CM3采用了哈佛结构,拥有独立的指令总线和数据总线。
程序计数寄存器R15的作用
指向当前程序地址
特殊功能寄存器类别和作用
程序状态字寄存器组:记录ALU标志(0标志、进位标志、负数标志、溢出标志)、执行状态以及当前服务的中断号。
中断屏蔽寄存器组: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位指令水乳交融,代码密度与处理性能两手抓。