第一章 嵌入式系统概论
嵌入式系统的定义
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它具有自主的信息处理能力。
嵌入式系统的特点
1) 与应用密切相关,执行特定的功能
2) 嵌入式系统都是实时系统,有时限要求
3) 嵌入式操作系统一般为多任务实时操作系统
4) 系统可靠性要求高(因为使用环境可能很恶劣)
5) 具有功耗约束
6) 嵌入式系统本身不具备自举开发能力,需要交叉开发环境和调试工具
7) 系统资源紧缺
嵌入式系统的基本组成
嵌入式硬件系统 & 嵌入式软件系统
嵌入式系统的硬件组成
1) CPU
2) 外围电路:I/O接口控制器电路、时钟电路、各式总线 等
3) 外部设备:RAM、ROM、Flash闪存、键盘、LED、液晶屏、触摸屏、手写笔 等
嵌入式系统的软件组成
含操作系统的嵌入式软件(LOSES) & 不含操作系统的嵌入式软件(NOSES)
含操作系统的嵌入式软件(LOSES)的组成
板级支持包(BSP)、硬件驱动程序、嵌入式实时操作系统(RTOS)、嵌入式中间件、应用程序API接口、组件库、嵌入式软件
课后题
试说明嵌入式系统和PC系统的主要差异在哪些方面?
1) 体积小、软硬件可裁剪、成本低、可嵌入到其他系统中是嵌入式的主要特点,也是他们的主要差别。
2) 处理器不同,一般嵌入式系统用的是arm架构的处理器,属于专用处理器。一般的PC机用的是X86架构的处理器(intel、amd),属于通用处理器。
3)嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向。通用计算机系统的技术要求是高速、海量的数值计算,其技术发展方向是总线速度的无限提升、存储容量的无限扩大;而嵌入式计算机系统的技术要求则是智能化控制,技术发展方向是与对象系统密切相关的潜入性能、控制能力与控制的可靠性不断提高。
第二章 嵌入式微处理器基本分类
重点
硬件结构
低档处理器多采用哈佛结构,高档处理器多采用冯·诺伊曼结构。
哈佛结构
即数据存储空间和程序存储空间分离
较大的程序存储器(用于固化已调试好的控制程序)
较小的数据存储器(用于存放少量的随机数据——高速)
看门狗定时器
看门狗定时器是一个用来引导嵌入式微处理器脱离死锁工作状态的部件。它是一个专用计数器,能够自一个指定的时间间隔后复位微处理器。
其原理是系统启动后,初始化程序向看门狗计数寄存器写入技术初值;此后每经过一个预定的时间间隔看门狗执行一次计数。如果软件和设备正常工作,那么看门狗计数寄存器中设定的计数值计满时系统会充值看门狗计数寄存器的计数初值,让它继续计数,并且一直循环下去。这样,看门狗不会因计数器值计满而重新启动系统。若软件和设备工作发生故障或者机器死锁,必然导致看门狗在计数器计满后得不到重新填入的计数初值,于是产生计数溢出;一旦出现溢出,看门狗将产生一个复位信号并重新复位系统。
端序
端序表示多字节数据存储时数据在内存中的存放顺序,有大端序和小端序之分。每一个计算机在运行时只能采用一种端序。
大端序:多字节数据的最高字节存放在最低存储位置。
小端序:多字节数据的最低字节存放在最低存储位置。
举例:存放32位字的00000101 11110000 00010000 00000011
32位字存储单元的最低2位地址
|
大端序
|
小端序
|
第11单元 |
00000011 |
00000101 |
第10单元 |
00010000 |
11110000 |
第01单元 |
11110000 |
00010000 |
第00单元 |
00000101 |
00000011 |
ARM处理器的基本特点
1) 16/32位双指令集
2) 小体积、功耗低、成本低、性能高
3) 全球众多合作伙伴(第三方开发者广泛支持)
课后题
看门狗定时器的主要功能是什么?
看门狗定时器是一个用来引导嵌入式微处理器脱离死锁工作状态的部件。它是一个专用计数器,能够自一个指定的时间间隔后复位微处理器。
其原理是系统启动后,初始化程序向看门狗计数寄存器写入技术初值;此后每经过一个预定的时间间隔看门狗执行一次计数。如果软件和设备正常工作,那么看门狗计数寄存器中设定的计数值计满时系统会充值看门狗计数寄存器的计数初值,让它继续计数,并且一直循环下去。这样,看门狗不会因计数器值计满而重新启动系统。若软件和设备工作发生故障或者机器死锁,必然导致看门狗在计数器计满后得不到重新填入的计数初值,于是产生计数溢出;一旦出现溢出,看门狗将产生一个复位信号并重新复位系统。
在设计ARM嵌入式系统时,如何对处理器进行选型?
1) CPU Core选择
² 应用领域
² 用户需求
² 性能
² 浮点处理
² MAC单元
² 完善友好的工具链
² 开发的难易程度
² 在线系统编程、在线系统调试
2) 处理器I/O接口选择
² 总线的需求
² GPIO的需求
² 有没有基本通信接口UART 、I2C、SPI
² 是否需要USB总线
² 是否需要CAN总线
² 是否需要Ethernet总线
² 是否需要A/D、D/A
² 是否需要LCD控制器
² 是否需要Zigbee、蓝牙等
3) 处理器存储系统选择
² MMU
² 寻址空间(容量)
² 程序存储器、数据存储器、特殊寄存器
² 片上Flash、SRAM、E2PROM
² 是否支持SDRAM
4) 市场因素的影响
² 价格
² 是否容易购买
² 技术支持与售后服务
第三章 ARM处理器体系结构
重点
ARM7
处理器核系列:ARM7系列
应用处理器:ARM720T
嵌入式实时控制器:ARM7TDMI、ARM7EJ-S
微控制器:ARM7TDMI
ARM处理器的RISC特征
被沿用的RISC技术特征:通用寄存器堆,32位定长指令,Load/Store访问存储器指令,3地址数据运算指令
ARM7流水线
采用3级指令流水线,三个阶段分别为:取址、译码、执行。
ARM处理器的工作模式
用户模式 USR 正常程序执行模式
快中断模式 FIQ 支持高速数据传输或通道处理
中断模式 IRQ 用于通道中断处理
管理模式 SVC 操作系统保护模式
中止模式 ABT 实现虚拟存储器和/或存储器保护
未定义模式 UND 支持硬件协处理器的软件仿真
系统模式 SYS 运行特权级的操作系统任务
特权模式
除用户模式以外,其余6种模式称之为特权模式(Privileged Modes)
当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的
异常模式
除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes)
常用于处理中断或异常,以及需要访问受保护的系统资源等情况
工作模式的改变方法
1) 通过软件改变
2) 通过外部中断(IRQ、FIQ)或异常处理(来自CPU内部)改变
软件方式改变工作模式举例
SWI 0x0 ;调用0号软中断
SWI 0x12 ;调用12号软中断
ARM处理器的工作状态
ARM状态 (机器指令为32位的ARM指令集)
Thumb状态(机器指令为16位的ARM指令集)
工作状态切换
在程序的执行过程中,处理器可以随时在两种工作状态之间切换
处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容
ARM微处理器在开始执行代码时总是处于ARM状态
工作状态切换方法举例
B Label
CMP R1, #0
BEQ Label
ADRL R0, ThumbFun+1
BX R0
BLX Label
状态寄存器(CPSR & SPSR)
标志位N
当用两个补码表示的带符号数进行运算时
N=1表示运算结果为负数
N=0表示运算结果为正数或零
标志位Z
Z=1表示运算结果为零;Z=0 表示运算结果为非零
标志位V
对于加/减法运算指令,当操作数和运算结果为补码表示的带符号数时,V=1表示符号位溢出
对于其他的非加/减运算指令,V的值通常不改变
标志位C
加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0
减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=1,否则C=0
对于包含移位操作的非加/减运算指令,C为移出值的最后一位
对于其他的非加/减运算指令,C的值通常不改变
中断禁止位I和F
I=1禁止IRQ中断
F=1禁止FIQ中断
运行状态控制位T
该位反映处理器的运行状态
对于ARM v5及以上的T系列处理器,当该位为1时,程序运行于Thumb状态,否则运行于ARM状态
对于ARM v5及以上的非T系列处理器,当该位为1时,执行下一条指令以引起未定义的指令异常;当该位为0时,表示运行于ARM状态
工作模式位M[4:0]
这些位决定了处理器的工作模式
课后题
ARM指令集程序与Thumb指令集程序如何相互跳转?请写出示例代码。
AREA ArmP