嵌入式系统的定义:
以应用为中心,以计算机技术为基础,软硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
嵌入式系统的特点:
低功耗、集成度高、体积小、高可靠性;实时性强,系统内核小;资源较少,可以裁剪;需要开发环境和调试工具
嵌入式系统的组成:
嵌入式系统由硬件系统和软件系统两大部分构成,嵌入式硬件系统主要包括嵌入式处理器,存储器、IO系统和配置必要的外围接口部件,嵌入式软件系统主要包括引导程序BOOTLoader操作系统和应用软件。
嵌入式处理器的分类:嵌入式微控制器、嵌入式DSP处理器、嵌入式微处理器,嵌入式片上系统
什么是嵌入式片上系统SOC?
答:SOC技术是一项高度集成化、固件化的系统集成技术,其核心思想是将整个应用电子系统集成到一个芯片上
嵌入式存储的存储层次:高速缓冲区(Cache),内部存储器(主存),程序存储器
高速缓冲区Cache的工作任务是地址映像和地址变换;地址映射方式有:全相联映射,直接映射,组相联映射。
嵌入式操作系统的分类:按时实时性分为实时系统和非实时系统,实时系统又分为硬实时系统如ucos,vxworks和软实时系统如windows和linux
按成本分为商用型和免费型。按软件执行结构分为循环轮询系统和事件驱动系统
流水线技术的基本概念:
计算机中一个指令的执行可以分为若干个阶段,每个阶段的操作相对来说都是独立的,因此使用流水线技术可以提高系统的性能。流水线装满时,几条指令可以并行执行,这样既充分利用了系统的硬件资源,又提高了cpu的运行效率
什么是异常?异常产生后会执行什么操作?
答:异常是指任何打断处理器正常运行,并迫使处理器进入一个人由有特权的特殊指令执行的时间;异常可分为同步异常和异步异常
操作:
1.将CPSR中的值拷贝到对应异常模式的SPSR中
2.将返回地址(PC)存到LR寄存器中
3.设置CPSR的相应位:
a.把arm处理器的状态改成ARM状态
b.把运行模式设置为对应的异常模式
c.如果有必要的话,设置对应的中断禁止位禁止中断
4.返回时,要把SPSR的值恢复到CPSR中
5.将LR的值赋值给PC寄存器
ARM的7种工作状态:
用户模式USR CPSR前五位状态位:10000
快速中断模式FIQ 10001
外部中断模式IRQ 10010
管理模式SVC 10011
数据中止模式ABT 10111
未定义指令中止模式UND 11011
系统模式SYS 11111
7种异常中断模式
复位 对应的中断向量表地址:0x00000000
未定义指令 0x00000004
软件中断 0x00000008
指令预取中止 0x0000000C
数据中止 0x00000010
保留未用 0x00000014
外部中断请求 0x00000018
快速中断请求 0x0000001C
嵌入式系统有37个寄存器,
30个通用寄存器,通用寄存器里R0-R7共8个,R8-R12FIQ一组,其他模式共一组所以总共10个
R13-R14用户模式和系统模式共用一组,其他各1组,共6组,12个;R13常用作做栈指针;R14常用作连接寄存器。
所谓连接寄存器就是,要跳转的时候,先把跳转的目的地址给到R14,再由R14去给到PC寄存器。
6个状态寄存器,1个CPSR,5个SPSR(因为除了用户模式外,系统模式也不是异常模式,只有其他5个异常模式有SPSR)
1个PC寄存器R15
BOOT Loader定义:BOOT Loader是嵌入式系统复位启动时,操作系统内核运行前,执行的第一段程序代码。
功能:初始化硬件设备,建立内存和IO空间映像图,为加载系统内核配置适当的系统软硬件环境。
BOOT Loader执行分为阶段1和阶段2,阶段1用汇编语言实现,阶段2用c语言实现
阶段1完成的功能:
1.基本的硬件初始化
2.为加载阶段2准备RAM空间
3.拷贝阶段2到RAM空间中、
4.设置堆栈指针SP
5.跳转到阶段2的C入口处
阶段2完成的功能:
1.初始化本阶段使用的硬件设备
2.检测系统内核映像
3.加载内核映像和根文件系统映像,包括规划内存的布局和从flash中将系统下载到RAM空间中
4.设置内核启动参数
5.跳转到内核映像入口处并执行内核程序
6.系统软件配置,更新系统
ARM指令可以分为五大类:数据处理指令、存储器访问指令、分支指令、协处理器指令、杂项指令
ARM指令集的基本寻址方式:立即寻址,寄存器寻址,寄存器间接寻址,基址寻址,堆栈寻址,块拷贝寻址,相对寻址
ARM指令的数据寻址方式:立即寻址,寄存器寻址。寄存器间接寻址,寄存器移位寻址,基址寻址,多寄存器寻址,相对寻址,块拷贝寻址,堆栈寻址
MOV指令和LDR指令的区别及用途?
LDR的操作数既可以来源于寄存器,也可以来源于存储器,MOV的操作数只能来源于寄存器
LDR从内存中读取数据放入寄存器中,用于对内存变量的访问,查表,程序的跳转和外围部件的控制等操作。MOV对立即数有要求,MOV将8位立即数或寄存器传送到目标寄存器,用于移位运算等操作
ARM指令和Thumb指令集的异同
答:相同点:1.都是Load/Store结构2.都支持字节,半字。字,半字以2字节对准。字以4字节对准
不同点:1.Thumb指令大部分都是无条件执行,ARM的指令全都可以条件执行
2.Thumb指令采用2地址格式,ARM指令采用3地址格式
3.由于采用高密度编码,Thumb指令没有ARM指令格式
ARM状态转换为Thumb:通过BX指令和异常返回
Thumb转换为ARM:可以通过BX也可以通过异常进入