嵌入式系统应用
学校课程回顾
第一章
一、定义:
以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统。
二、体系结构:
-
硬件层
-
嵌入式处理器:
有嵌入式微处理器、微控制器、数字信号处理器等
也有SoC——FPGA(快速成品、可以修正、便宜)、ASIC等
-
存储器系统
-
中断控制器、DMAC、定时器
-
UART、USB控制器、LCD控制器
-
其他I/O接口
-
-
中间层(BSP)
由硬件人员完成
- 板级支持包
- 系统软件与底层硬件隔离
- 特点:硬件相关、操作系统相关
-
操作系统层
-
应用层
三、嵌入式系统的特点:
- 嵌入专用:针对特定应用设计
- 综合性强:将计算机技术、半导体技术和电子技术与哥哥行业的具体应用结合
- 设计高效:软硬件可裁剪
- 程序固化:软件固化在存储或者处理器
- 开发系统独立:不具备自举开发能力,需要额外的开发工具和环境
- 生命周期长
- 可靠性高、成本低、资源受限、功耗低
第二章
一、系统设计方法
系统级设计是一种高层次的设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行为特性,进行软硬件划分,生成系统级的规格描述。
二、软硬件协同设计
-
主要设计步骤
需求分析、软硬件协同设计、软硬件实现、软硬件协同测试、软硬件协同验证
-
特点——软硬件统一描述
有限状态机(FSM)、统一化的规格语言、基于图形的表示工具(UML)
-
优点
软硬件统一描述、有利于优化设计、重点关注算法而并非实现
-
缺点
不成熟,缺乏有效的统一描述工具
现有工具效率不高
三、设计重用技术
-
基于IP核的模块级重用
即插即用
-
基于平台的系统级重用
强调系统级重用,要求提供面向特定领域的设计模板
第三章
一、ARM公司
专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可(卖授权),由合作公司生产各具特色的芯片。
-
生产模式
Intel模式:架构和芯片的设计、生产
无工厂模式:自己设计,交给代工厂生产
ARM:只设计IP(包括指令集架构,微处理器,图形核心,互连架构),然后卖授权
-
处理器授权
处理器优化包/物理IP包授权(POP):自主发挥余地小(处理器类型、代工厂、工艺已经规定好),速度快,适合实力有限的公式
架构/指令集授权:实力雄厚,购买架构/指令集授权自己研发设计芯片,例如:高通Krait,苹果Swift
二、ARM技术
-
采用RISC架构
-
体积小,功耗低,成本低,高性能
-
支持Thumb/ARM双指令集
-
大量使用寄存器,执行指令速度更快
-
大多数数据操作都在寄存器中完成
-
寻址方式灵活简单,执行效率高
-
指令长度固定
三、ARM体系结构版本
ARMv1–v8
v4:真正成熟的版本,是第一个具有全部正式定义的体系结构版本
-
Cortex-A:高性能应用
大核 小核 备注 A57 A53 第一代大小核 A15 A7 A12 A7 A72 A53 A73 A53 A75 A55 第二代大小核 DynamIQ big.LITTLE A76 A55 第二款大小核 DynamIQ big.LITTLE DynamIQ big.LITTEL 相对于第一代的特点和区别:大小CPU在物理上位于单一 CPU 集群中。 所有的软件线程迁移和由此造成的大小 CPU 之间的高速缓存窥探现在均发生在该集群内。
四、体系结构分类
- 复杂指令集和精简指令集:
- CISC:使用庞大的指令集,可以减少编程所需的代码行数,减轻程序员的负担
- RISC:采用精简指令,通过这些简单的指令可以组合成复杂指令
- 普林斯顿结构和哈佛结构:
- 普林斯顿结构(冯·诺伊曼结构):将程序指令存储器和数据存储器合并在一起的存储结构。两个指令指向同一个存储器的不同物理位置,因此,程序指令和数据的宽度相同。
- 哈佛结构:将程序指令存储和数据存储分开的存储结构。可以使指令和数据有不同的数据宽度。
五、ARM处理器模式
7种运行模式
模式 | 解释 | 备注 |
---|---|---|
用户(usr) | ARM处理器正常的程序执行状态 | 不能直接切换到其他模式 |
系统(sys) | 用于支持操作系统的特权任务等 | 可以直接切换其他模式、特权 |
快中断(fiq) | 高速数据传输及通道处理 | 特权、异常 |
中断(irq) | 通用中断处理 | 特权、异常 |
管理(svc) | 操作系统使用的保护模式,系统复位和软件中断时进入 | 特权、异常 |
数据访问中止(abt) | 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 | 特权、异常 |
未定义指令中止(und) | 当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 | 特权、异常 |
六、ARM工作状态
ARM状态:32位ARM指令,字对齐
Thumb状态:16位Thumb指令,半字对齐
随时切换
复位后进入ARM状态
七、寄存器
通用寄存器包括R0~R15
在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令
-
未分组寄存器(R0~R7)
对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。
-
分组寄存器(R8~R14)
寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式 -
程序计数器PC(R15)
在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC。保存在R15的程序地址并不是当前指令的地址。
-
CPSR,当前程序状态寄存器
CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位
位 | 简写 | 功能 |
---|---|---|
0-4 | M | 处理器运行模式 |
5 | T | 处理器运行状态,1为Thumb,0为ARM |
6 | F | FIQ禁止,1表示禁止 |
7 | I | IRQ禁止,1表示禁止 |
8-27 | 保留 | 保留,用于之后ARM版本的扩展 |
28 | V | 带符号数补码加减法,1表示符号位溢出 |
29 | C | 进位,借位,移位 |
30 | Z | 运算结果为零,1表示零,0表示结果非零 |
31 | N | 两个补码表示的带符号数的运算,1表示结果为负数,0为正数或零 |
八、ARM微处理器的数据类型
-
字:32位;半字:16位;字节:8位
-
自然对界
字需要4字节对齐,地址的低两位为0
半字需要2字节对齐,地址的最低位为0
字节这是任意地址对齐
如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐。 如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐
-
ARM体系结构可以用两种方法存储字数据
- 大端格式(Big endian)
- 字数据的高字节存储在低地址中
- 字数据的低字节存放在高地址中
- 小端格式(Little endian)
- 低地址中存放的是字数据的低字节
- 高地址中存放的是字数据的高字节
- 大端格式(Big endian)
九、ARM指令
-
ARM指令系统:内核为RISC结构
指令长度固定
指令格式的种类少
寻址方式简单
暂结,课内知识总结。