第一章 绪论
1.嵌入式系统的定义1
以应用系统为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.嵌入式系统与桌面通用系统的区别1
- 任务是专用而确定的;支持大量、需求多样的应用程序。
- 对实时性要求高
- 操作系统一般是实时操作系统
- 高可靠性,长时间无人值守,环境恶劣。
- 有功耗约束
- 可用资源少,开发需要专用工具和特殊方法。
- 嵌入式系统开发是一项综合的计算机应用技术。
3.嵌入式系统的发展
嵌入式系统的出现和兴起
嵌入式系统走向繁荣,软件、硬件日臻完善。
嵌入式系统应用走向深化发展
4.嵌入式系统的应用
工业控制:工控设备、智能仪表、汽车电子
军事国际:军事电子
消费电子:信息家电、智能玩具、通信设备、移动存储
网络:网络设备、电子商务
5.嵌入式系统的构成1
见珂珂
6.最小硬件系统
见珂珂
7.嵌入式处理器1
MPU:嵌入式微处理器
MCU:嵌入式微控制器
DSP:嵌入式DSP处理器
SOC:嵌入式片上系统
第二章
1.嵌入式系统设计基本流程1
需求分析:整个系统需要做什么
详细说明:系统的设计要求具体化
结构设计:系统进行整体架构上的设计
组件设计:系统各模块进行设计并调试
系统集成:整个系统进行测试,检测是否达到需求分析的要求
2.需求分析
嵌入式系统设计的根本,任务是确定用户对应用系统的设计要求和设计指标。
功能需求、性能需求、环境需求、可靠性需求、安全性需求、用户界面需求、资源使用需求、开发成本需求、人机交互需求、开发进度需求。
3.结构设计1
对系统进行整体架构上的设计,包括软硬件设计两方面。
硬件方面:确定整体的结构和电路中主要的芯片选型。
软件方面:确定所要使用的软件开发平台、涉及的相关驱动、协议等。
4.组件设计
对系统各个模块进行具体的设计
功能模块与原理图设计
PCB设计
软硬件调试
5.系统集成
主要目的是在系统的各个组件设计完成之后,得到一个可以运转的原始系统,并利用这个系统进行集成测试。
6.嵌入式设计流程模型1
-
瀑布模型:设计过程自上而下。具有时间上的顺序性和依赖性。
优:开发流程简单明确,便于制定开发计划
缺:缺乏灵活性,各流程之间有很强的依赖性 -
逐步求精模型:开发人员根据用户提出的基本需求快速开发一个产品原型开发者再根据用户反馈的意见修改原型设计,如此反复,不断完善和丰富系统功能,直到系统最终完成。
优:开发风险低、开发流程适合实际开发过程,需求经过多次沟通可以得到明确、为用户需求的改变提供了充分的余地。
缺:开发周期长、成本高、资源规划管理不便。 -
螺旋模型:开发流程顺时针方向,依次经历需求、设计、测试三阶段
优:支持用户需求的动态变化、保持系统性、阶段性,利用原型评估降低开发风险。
缺:如果每次迭代效率不高,次数增多,增加成本并延长开发时间。
第三章
1.CISC复杂指令集1
具有大量的指令和寻址方式,指令长度可变。
8/2原则:80%的程序只使用20%的指令。
大多数程序只使用少量的指令就能够运行。
2.RISC精简指令集1
只包含最有用的指令,指令长度固定。
确保数据通道快速执行每一条指令。
使CPU硬件结构设计变得更简单。
3.CISC和RISC的对比1
类别 | CISC | RISC |
---|---|---|
指令系统 | 指令数量很多 | 较少,通常少于100 |
执行时间 | 有些指令执行时间很长,如整块的存储器内容拷贝;或将多个寄存器内容拷贝到存储器 | 没有较长执行时间到指令 |
编码长度 | 编码长度可变,1-15字节 | 编码长度固定,通常为4个字节 |
寻址方式 | 寻址方式多样 | 简单寻址 |
操作 | 可以对存储器和寄存器进行算术和逻辑操作 | 只能对寄存器进行算术和逻辑操作,Load/Store体系结构 |
编译 | 难以用优化编译器生成高效的目标代码程序 | 采用优化编译技术,生成高效的目标代码程序 |
4.冯诺伊曼体系结构
由一个中央处理单元(CPU)和一个存储器组成。数据和指令都存在一个存储器中的计算机。
5.哈佛体系结构计算机
为数据和程序提供了各自独立的存储器,程序计数器只指向程序存储器而不指向数据存储器。
6.流水线技术1
基本步骤:取指——译码——执行
几个指令可以并行执行
提高了CPU运行的效率
内部信息流要求通畅流动
7.指令流水线——ARM为例
为增加处理器指令流的速度,ARM7系列使用3级流水线,允许多个操作同时处理,比逐条指令执行要快。
ARM | Thumb | 操作 | 举例 |
---|---|---|---|
PC | PC | Fetch | 从存储器中读取指令 |
PC-4 | PC-2 | Decode | 解码指令 |
PC-8 | PC-4 | Execute | 寄存器读(从寄存器Bank);移位及ALU操作;寄存器写(到寄存器Bank) |
PC指向正被取的指令,而非正在执行的指令。
8.ARM存储数据类型
- 8位有符号和无符号字节
- 16位有符号和无符号字节
- 32位有符号和无符号字节
ARM指令上32位的字,必须以字(4字节)为单位边界对齐。
Thumb指令是16位半字必须以2字节为单位边界对齐。
9.ARM存储格式1
大端存储和小端存储看书P44例题
10.开发环境1
见珂珂
11.嵌入式系统的调试1
-
模拟调试:调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以运行语法和逻辑上的调试。
优:简单方便,不需要目标板,成本低。
缺:功能非常有限,无法实时调试。 -
软件调试:主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。
优:纯软件,价格较低,简单,软件调试功能较强。
缺:需要事先烧制Monitor并且目标板工作正常,功能有限,特别是硬件调试能力较差。 -
BDM/JTAG调试:有一个硬件调试器,与目标板通过BDM,JTAG等调试接口相连,与主机通过串口、并口、网口或USB相连。待调试软件通过BDM/JTAG调试器下载到目标板上运行。
优:方便、简单,无须制作Monitor,软硬件均可调试。
缺:需要目标板,且目标板工作基本正常(至少MCU工作正常),仅适用于有调试接口到芯片。 -
全仿真调试:完全取代目标板上的MCU,因而目标系统对开发者来说完全是透明的、可控的。
优:功能非常强大,软硬件均可做到完全实时在线调试。
缺:价格昂贵。
第四章
ARM
微处理器是整个系统的核心,通常由三大部分组成:控制单元,算术逻辑单元和寄存器。
图见珂珂
ARM7 TDMI 1
基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用是数字移动电话。
支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。
图见珂珂
处理器状态
- ARM状态:32位,这种状态下执行的是字方式的ARM指令。
- Thumb状态:16位,这种状态下执行的是半字方式的ARM指令。
两个状态切换并不影响处理器模式或寄存器内容。
处理器7种模式1
处理器模式 | 说明 | 备注 |
---|---|---|
用户 | 正常程序执行模式 | 不能直接切换到其它模式 |
系统 | 运行操作系统的特权任务 | 与上类似,但有切换等特权 |
快中断 | 支持高速数据传输及通道处理 | FIQ异常响应进入此模式 |
中断 | 用于通用中断处理 | IRQ异常响应时 |
管理 | 操作系统保护模式 | 系统复位和软件中断响应时 |
中止 | 支持虚拟内存和存储器保护 | 在ARM7TDMI没有大用处 |
未定义 | 支持硬件和处理器的软件仿真 | 未定义指令异常响应时进入 |
特权模式1
除用户模式外,其他模式均为特权模式。
ARM内部寄存器和一些片内外设在硬件上只允许特权模式下访问。可以自由切换处理器模式。
异常模式1
除用户、系统模式除外,这五种模式称为异常模式。
它们可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。
R14 1
- R14寄存器(LR)与子程序调用
- 程序A执行过程中调用程序B。
- 程序跳转至标号Label,执行程序B。同时硬件将将“BL Label”指令的下一条指令所在地址存入R14(LR)
- 程序B执行最后,将R14寄存器的内容放入PC,返回程序A。
-
R14与异常发生
异常发生时,程序要跳转至异常服务程序,与返回地址的处理子程序调用类似,都是由硬件完成的。 -
R14寄存器注意要点
当异常嵌套时,这些异常之间可能会发生冲突。
R15 1
寄存器R15为程序计数器(PC),它指向正在取指的地址。
CPSR、SPSR 1
寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器SPSR“程序状态保存寄存器”可以被访问。每种异常都有自己的SPSR,在进入异常的它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
R13 1
寄存器R13为SP。
异常入口/出口汇总
见kk
异常指令
快速中断 SUBS PC,R14_fiq,#4
中断请求 SUBS PC,R14_irq,#4
中止—预取指中止 SUBS PC,R14_abt,#4
中止—数据中止 SUBS PC,R14_abt,#8
软件中断指令 MOVS PC,R14_svc
未定义的指令 MOVS PC,R14_svc
异常优先级1
复位——数据中止——FIQ——IRQ——预取中止——未定义指令——SWI
复位1
当nRESET信号被拉低时(一般外部复位引脚电平的信号变化和芯片的其它复位源会改变这个内核信号),ARM7 TDMI处理器放弃正在执行的指令。
复位后,除PC和CPSR之外的所有寄存器的值都不确定。
第五章
寻址方式分类
见书