嵌入式系统运用考点总结中国矿业大学徐海学院信息10文档.docx
- 文档编号:12906892
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:55
- 大小:1.41MB
嵌入式系统运用考点总结中国矿业大学徐海学院信息10文档.docx
《嵌入式系统运用考点总结中国矿业大学徐海学院信息10文档.docx》由会员分享,可在线阅读,更多相关《嵌入式系统运用考点总结中国矿业大学徐海学院信息10文档.docx(55页珍藏版)》请在冰豆网上搜索。
嵌入式系统运用考点总结中国矿业大学徐海学院信息10文档
中国矿业大学徐海学院信息10-1邹柯22100804
第一章嵌入式系统概述
嵌入式系统--综合描述
v是现代科学多学科互相融合的以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器,进入Internet网络技术的连接,从而适应应用环境的产品。
v无多余软件,软件以固化态出现,硬件亦无多余存储器,可靠性高,成本低,体积小,功耗少,包含于各种不同类型的设备。
v技术密集,投资强度大,高度分散,不断创新的知识密集型系统。
反映当代最新技术的先进水平。
嵌入式系统定义
vIEEE(国际电气和电子工程师协会)给出的定义:
嵌入式系统是用于控制、监视或者辅助装置、机器或者设备运行的装置。
Ø通常执行特定功能
Ø以微电脑和外围构成核心
Ø严格的时序和稳定性要求
此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。
v从技术的角度定义:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(国内普遍被认同的定义)
v从系统的角度定义:
嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。
嵌入的系统中可以共存多个嵌入式系统。
广义与狭义的嵌入式系统
v“嵌入式系统”是指操作系统和功能软件集成于计算机硬件系统;
v广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统
Ø如各类单片机和DSP系统。
这些系统在完成较为单一的专业功能时具有简洁高效的特点
Ø但由于他们没有操作系统,管理系统硬件和软件的能力有限,在实现复杂多任务功能时,往往困难重重,甚至无法实现
v狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有操作系统,具有特定功能,用于特定场合的嵌入式系统
国内普遍被认同的定义:
•嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统三要素
❑三要素:
嵌入、专用、计算机
❑嵌入式系统的特点:
由三要素引出
·嵌入性:
嵌入到对象体系中,有对象环境要求
·专用性:
软、硬件按对象要求裁减
·计算机:
实现对象的智能化功能
嵌入式系统的组成
▪嵌入式系统一般由嵌入式微处理器、外围硬件设计备、嵌入式操作系统及用户应用程序4部分组成。
▪嵌入式系统设计的核心部件是各种类型的嵌入式处理器。
⑴嵌入式系统的硬件组成
v硬件层是由嵌入式微处理器、存储器系统、通用设备接口和I/O接口(A/D、D/A、I/O等)组成。
v在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM和SDRAM等),就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM中。
嵌入式系统之最小系统
嵌入式微处理器—核心、存储器(ROM、RAM、FlashROM)、I/O设备、电源模块、复位
嵌入式系统之接口模块
USB模块、LCD模块、键盘模块
⑵嵌入式系统的软件组成
•中间层---板级支持包(BSP)(与硬件相关的底层驱动软件)
中间层也称为硬件抽象层(HAL)或板级支持包(BSP),它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。
⏹BSP具有以下两个特点:
⏹1)操作系统相关性
⏹2)硬件相关性
⏹设计一个完整的BSP需要完成两部分工作:
⏹嵌入式系统的初始化:
片级初始化、板级初始化和系统级初始化
⏹设计硬件相关的设备驱动。
•系统软件层---嵌入式操作系统(是嵌入式应用软件的基础和开发平台。
嵌入式系统的出现,解决了嵌入式软件开发标准化的难题。
通用性强、可靠性强)
v软件层由嵌入式操作系统、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。
v嵌入式操作系统的作用一般只是为了应用程序提供必要运行环境(任务调度),附加任务通讯、内存管理等功能。
v嵌入式系统和系统的硬件基础关系紧密,一般都需要移植和配置才可以使用。
嵌入式操作系统让嵌入式系统的开发利用通用的功能模块,这可以让开发更加高效。
•应用软件层---应用程序
v在嵌入式系统中,应用程序的层级远远少于通用计算机。
由于控制硬件是嵌入式系统基本的操作,因此嵌入式应用程序依然与系统的硬件基础关系密切。
尤其在没有操作系统的情况下,嵌入式的应用程序需要直接访问寄存器或者设备的地址来操作硬件。
v基于RTOS开发的应用程序组成,用来完成对被控对象的控制功能。
功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。
嵌入式系统发展
1、以单芯片为核心的可编程控制器形式的系统。
(一般没有操作系统的支持,通过汇编语言直接控制。
)
2、以嵌入式CPU为基础,以简单操作系统为核心的嵌入式系统。
(有简单操作系统的支持,但通用性较弱。
)
3、以嵌入式操作系统为标志的嵌入式系统。
(兼容性佳。
)
4、以Internet为标志的嵌入式系统。
(与Internet相结合。
)
第2章ARM微处理器硬件结构
⑴什么是ARM
ARM既可以认为是一个公司的名字,也可认为是对一类微处理器的通称,还可以认为是一种技术的名字。
⑵CISC和RISC技术
①CISC:
复杂指令集计算机(ComplexInstructionSetComputer)
•具有大量的指令和寻址方式
•8/2原则:
80%的程序只使用20%的指令
•大多数程序只使用少量的指令就能够运行。
②RISC:
精简指令集计算机(ReducedInstructionSetComputer)
•在通道中只包含最有用的指令
•确保数据通道快速执行每一条指令
•使CPU硬件结构设计变得更为简单
RISC体系结构特点:
•指令集中的大多数指令只需要执行简单和基本的功能;
•减少存储器访问指令;
•芯片逻辑采用硬布线逻辑;
•减少指令数和寻址方式
•指令译码简化。
CISC与RISC的对比
⑶计算机体系结构分类
①冯·诺依曼体系结构模型
冯·诺依曼体系结构的特点
1)数据与指令都存储在存储器中
2)被大多数计算机所采用
ARM7——冯·诺依曼体系结构
②哈佛体系结构
哈佛体系结构的特点
1)程序存储器与数据存储器分开
2)提供了较大的存储器带宽
3)适合于数字信号处理
4)大多数DSP都是哈佛结构
ARM9——哈佛体系结构
⑷ARM和Thumb指令
ARM体系结构在V4版中增加了16位Thumb指令集。
ARM指令集效率高,但是代码密度低;
Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。
ARM和Thumb状态切换
•所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。
•ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。
进入Thumb状态:
当操作数寄存器的状态态位为1
进入ARM状态:
当操作数寄存器的状态态位为0
ARM操作面向32位操作数,以字为单位对齐
Thumb操作面向16位操作数,以半字为单位对齐;
⑸流水线技术
流水线(pipeline)是Intel首次在486芯片中开始使用的。
流水线(Pipeline)技术:
几个指令可以并行执行
•提高了CPU的运行效率
•内部信息流要求通畅流动
为增加处理器指令流的速度,ARM7系列使用3级流水线.
⑹ARM存储系统
ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。
•大端格式(big-endian):
字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中
•小端格式(little-endian):
与大端存储格式相反。
低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
ARM可以用little/bigendian格式存取数据.
存储器系统的层次结构
第三章ARM寻址方式与指令系统
3.1ARM编程模型
3.1.1处理器模式
处理器7种模式
除用户模式外,其它模式均为特权模式。
ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。
此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
快中断、中断、管理、中止、未定义这五种模式称为异常模式。
它们除了可以通过程序切换进入外,也可以由特定的异常进入。
当特定的异常出现时,处理器进入相应的模式。
每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。
用户、系统这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。
系统模式是特权模式,不受用户模式的限制。
操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
3.1.2ARM微处理器的工作状态
第一种:
为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种:
为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。
⑴进入Thumb状态
当操作数寄存器的状态位为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef等),则异常处理返回时,自动切换到Thumb状态。
Thumb的特点
①Thumb是对32位寄存器操作的16位指令集
②与32位ARM指令集相比代码尺寸更小,更适合嵌入式应用。
③因为是对32位结构的CPU操作,所以比纯16位的指令集效率更高。
④与其它32位下的16位指令集相比,它还可以切换到32位ARM指令集并全速执行。
⑵进入ARM状态
当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
3.1.3内部寄存器
在ARM7TDMI处理器内部有37个用户可见的寄存器。
◆31个通用寄存器
◆6个状态寄存器
在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。
⑴在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。
它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令;
⑵其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器;
⑶寄存器R8~R14为分组寄存器。
它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器;
寄存器R8~R12有两个分组的物理寄存器。
一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。
这样在发生FIQ中断后,可以加速FIQ的处理速度。
⑷寄存器R13、R14分别有6个分组的物理寄存器。
一个用于用户和系统模式,其余5个分别用于5种异常模式。
①寄存器R13常作为堆栈指针(SP)。
在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。
但是在Thumb指令集中存在使用R13的指令。
②R14为链接寄存器(LR),在结构上有两个特殊功能:
▪在每种模式下,模式自身的R14版本用于保存子程序返回地址;
▪当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。
◇R14(LR)寄存器与子程序调用
操作流程:
1.程序A执行过程中调用程序B;
2.程序跳转至标号Lable,执行程序B。
同时硬件将“BLLable”指令的下一条指令所在地址存入R14(LR);
3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;
◇R14寄存器与异常发生
异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。
区别在于有些异常有一个小常量的偏移。
◇R14寄存器注意要点
当发生异常嵌套时,这些异常之间可能会发生冲突。
例如:
如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。
但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。
1.执行用户模式下的程序;
2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;
3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;
4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断;
5.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;
6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;
⑸寄存器R15为程序计数器(PC),它指向正在取指的地址。
可以认为它是一个通用寄存
器,但是对于它的使用有许多与指令相关的限制或特殊情况。
如果R15使用的方式超出了这些限制,那么结果将是不可预测的。
⑹寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。
每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。
CPSR反映了当前处理器的状态,其包含:
▪4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));
▪2个中断禁止位,分别控制一种类型的中断;
▪5个对当前处理器模式进行编码的位;
▪1个用于指示当前执行指令(ARM还是Thumb)的位。
如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。
注意:
中断返回指令的寄存器列表(其中必须包括PC)后的“^”符号表示这是一条特殊形式的指令。
这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复。
这里使用的堆栈指针SP(R13)是属于异常模式的寄存器,每个异常模式有自己的堆栈指针。
这个堆栈指针应必须在系统启动时初始化。
⏹整个地址空间的起始位置(地址从0x00000000开始)有以下指令。
⏹bSYS_RST_HANDLER;0x00000000
⏹bUDF_IND_HANDLER;0x00000004
⏹bSWI_SVC_HANDLER;0x00000008
⏹bINS_ABT_HANDLER;0x0000000c
⏹bDAT_ABT_HANDLER;0x00000010
⏹bIRQ_SVC_HANDLER;0x00000018
⏹bFIQ_SVC_HANDLER;0x0000001c
⏹当发生外部中断请求,处理器首先自动保存当前状态(PC→R14_
⏹执行地址0x00000018处的指令,即
⏹bIRQ_SVC_HANDLER转到IRQ_SVC_HANDLER处执行
IRQ_SVC_HANDLER处的代码为:
⏹IRQ_SVC_HANDLER
⏹sublr,lr,#4
⏹stmfdsp!
{r0-r3,lr}
⏹ldrr0,=IRQ_SVC_Vector
⏹ldrpc,[r0]
处理器将通用寄存器和返回地址压入堆栈,接着跳转到外部中断请求的中断服务程序中。
IRQ_SVC_Vector为外部中断请求的中断向量。
⏹一般来讲,IRQ_SVC_Vector的地址对应于RAM地址空间;
⏹Bootload代码固化于flash中,对其只能读不能写。
⏹一般来讲,IRQ_SVC_Vector的地址对应于RAM地址空间;
⏹Bootload代码固化于flash中,只读不写。
⏹MAP_ISR_STARTADDRESS
⏹SYS_RST_VECTOR#4
⏹UDF_INS_VECTOR#4
⏹SWI_SVC_VECTOR#4
⏹INS_ABT_VECTOR#4
⏹DAT_ABT_VECTOR#4
⏹RESERVED_VECTOR#4
⏹IRQ_SVC_VECTOR#4
⏹FIQ_SVC_VECTOR#4
⏹ldrr0,IRQ_SVC_VECTOR
⏹
ldrr1,=IsrIRQ
⏹strr1,[r0]
外部中断请求比较特殊:
多种中断共用同一个入口。
所有中断服务程序均可通过IRQ中断服务程序间接进入IsrIRQ
◇进入异常
在异常发生后,ARM7TDMI内核会作以下工作:
1.在适当的LR中保存下一条指令的地址,当异常入口来自:
▪ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中;
▪为Thumb状态,那么ARM7TDMI将当前指令地址加2、4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。
2.将CPSR复制到适当的SPSR中;
3.将CPSR模式位强制设置为与异常类型相对应的值;
4.强制PC从相关的异常向量处取指。
ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。
注:
异常总是在ARM状态中进行处理。
当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。
异常向量
◇退出异常
当异常结束时,异常处理程序必须:
1.将SPSR的值复制回CPSR;
2.清零在入口置位的中断禁止标志。
3.将LR(R14)中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
注:
恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
※快速中断请求
快速中断请求(FIQ)适用于对一个突发事件的快速响应,这得益于在ARM状态中,快中断模式有8个专用的寄存器可用来满足寄存器保护的需要(这可以加速上下文切换的速度)。
不管异常入口是来自ARM状态还是Thumb状态,FIQ处理程序都会通过执行下面的指令从中断返回:
SUBSPC,R14_fiq,#4
在一个特权模式中,可以通过置位CPSR中的F位来禁止FIQ异常。
※中断请求
中断请求(IRQ)异常是一个由nIRQ输入端的低电平所产生的正常中断(在具体的芯片中,nIRQ由片内外设拉低,nIRQ是内核的一个信号,对用户不可见)。
IRQ的优先级低于FIQ。
对于FIQ序列它是被屏蔽的。
任何时候在一个特权模式下,都可通过置位CPSR中的I位来禁止IRQ。
不管异常入口是来自ARM状态还是Thumb状态,IRQ处理程序都会通过执行下面的指令从中断返回:
SUBSPC,R14_irq,#4
※中止
中止发生在对存储器的访问不能完成时,中止包含两种类型:
▪预取中止发生在指令预取过程中
▪数据中止发生在对数据访问时
▽中止——预取指中止
当发生预取中止时,ARM7TDMI内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常。
如果指令在流水线中因为发生分支而没有被执行,中止将不会发生。
在处理中止的原因之后,不管处于哪种处理器操作状态,处理程序都会执行下面的指令恢复PC和CPSR并重试被中止的指令:
SUBSPC,R14_abt,#4
▽中止——数据中止
在修复产生中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行下面的返回指令,重试被中止的指令:
SUBSPC,R14_abt,#8
※软件中断指令
使用软件中断(SWI)指令可以进入管理模式,通常用于请求一个特定的管理函数。
SWI处理程序通过执行下面的指令返回:
MOVSPC,R14_svc
这个动作恢复了PC并返回到SWI之后的指令。
※未定义的指令
当ARM7TDMI处理器遇到一条自己和系统内任何协处理器都无法处理的指令时,ARM7TDMI内核执行未定义指令陷阱。
软件可使用这一机制通过模拟未定义的协处理器指令来扩展ARM指令集。
注:
ARM7TDMI处理器完全遵循ARM结构v4T,可以捕获所有分类未被定义的指令位格式。
在模拟处理了失败的指令后,陷阱程序执行下面的指令:
MOVSPC,R14_svc
这个动作恢复了PC并返回到未定义指令之后的指令。
※复位
当nRESET信号被拉低时(一般外部复位引脚电平的变化和芯片的其它复位源会改变这个内核信号),ARM7TDMI处理器放弃正在执行的指令。
在复位后,除PC和CPSR之外的所有寄存器的值都不确定。
当nRESET信号再次变为高电平时,ARM处理器执行下列操作:
1.强制CPSR中的M[4:
0]变为b10011(管理模式);
2.置位CPSR中的I和F位;
3.清零CPSR中的T位;
4.强制PC从地址0x00开始对下一条指令进行取指;
5.返回到ARM状态并恢复执行。
异常优先级
当多个异常同时发生时,一个固定的优先级系统决定它们被处理的顺序:
ARM的异常处理
•进入异常的处理
–保存PC值到LR
–保存CPSR到SPSR
–强制改变Modebits
–强制PC值,从中断矢量表中预取下一条指令
•退出异常的处理
–恢复PC值从LR
–恢复CPSR从SPSR
–清除中断屏蔽位
3.2.3ARM处理器寻址方式
⏹寻址方式分类
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。
ARM处理器具有9种基本寻址方式。
1.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;
6.多寄存器寻址;7.堆栈寻址;8.块拷贝寻址;9.相对寻址。
51寻址:
位寻址直接寻址
⏹寄存器寻址
立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。
立即寻址指令举例如下:
SUBSR0,R0,#1;R0减1,结果放入R0,并且影响标志位
MOVR0,#0xFF000;将立即数0xFF000装入R0寄存器
⏹立即寻址
立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。
立即寻址指令举例如下:
SUBSR0,R0,#1;R0减1,结果放入R0,并且影响标志位
MOVR0,#0xFF000;将立即数0xFF000装入R0寄存器
⏹寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。
当第2个操作数是寄存器移位方式时,第2个寄存器操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 运用 考点 总结 中国 矿业大学 学院 信息 10 文档