嵌入式处理器及应用 考试要点.docx
- 文档编号:28594258
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:24.44KB
嵌入式处理器及应用 考试要点.docx
《嵌入式处理器及应用 考试要点.docx》由会员分享,可在线阅读,更多相关《嵌入式处理器及应用 考试要点.docx(17页珍藏版)》请在冰豆网上搜索。
嵌入式处理器及应用考试要点
嵌入式处理器及应用考试要点
简介
自微处理器的问世以来,嵌入式系统得到了飞速的发展,嵌入式处理器毫无疑问是嵌入式系统的核心部分,嵌入式处理器直接关系到整个嵌入式系统的性能。
通常情况下嵌入式处理器被认为是对嵌入式系统中运算和控制核心器件总的称谓。
[1]
世界上具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU,MPU等30多个系列。
鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为了未来嵌入式领域的一大趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。
嵌入式处理器的寻址空间可以从64kB到16MB,处理速度最快可以达到2000MIPS,封装从8个引脚到144个引脚不等。
[2]
●嵌入式系统的概念
目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。
下面给出两种比较合理定义:
从技术的角度定义:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
从系统的角度定义:
嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
术语“嵌入式”反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。
嵌入的系统中可以共存多个嵌入式系统。
在大多数情况下,嵌入式系统被真正地嵌入,即它们是“系统中的系统”。
●嵌入式处理器分类
嵌入式处理器可以分为以下几大类:
嵌入式微处理器;
嵌入式微控制器;
嵌入式DSP处理器;
嵌入式片上系统(SOC)。
*嵌入式系统项目开发的生命周期
概述:
可以把嵌入式系统的开发看作对一个项目的实施。
项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4个阶段。
嵌入式系统项目开发也是如此。
1.识别需求
识别需求是项目生命周期的最初阶段。
当需求被客户确定时,项目就产生了。
这个阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
2.提出方案
主要由各厂商向客户提交标书、介绍解决方案。
这个阶段是赢得项目的关键,公司既要展示实力又要合理报价。
如果竞标成功则签定合同,厂商开始承担项目成败的责任。
3.执行项目
从公司角度来看这才是项目的开始。
这个阶段项目经理和项目组将代表公司完全承担合同规定的任务。
一般需要细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
4.结束项目
主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
●ARM处理器支持的数据类型
1.字节8位2.半字16位(必须分配为占用两个字节)3.字32位(必须分配为占用4个字节)
●ARM处理器的工作状态以及状态切换的程序
*ARM7TDMI处理器有两种操作状态:
ARM状态:
32位,这种状态下执行的是字方式的ARM指令;
Thumb状态:
16位,这种状态下执行半字方式的ARM指令。
*使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换
;从Arm状态切换到Thumb状态
LDRR0,=Lable+1
BXR0
;从Thumb状态切换到ARM状态
LDRR0,=Lable
BXR0
●内部寄存器
*在ARM7TDMI处理器内部有37个用户可见的寄存器。
在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。
*所有的37个寄存器,分成两大类:
31个通用32位寄存器;
6个状态寄存器。
R0(a1)R1(a2)R2(a3)R3(a4)R4(v1)R5(v2)R6(v3)R7(v4)R8(v5)R9(SB,v6)
R10(SL,v7)R11(FP,v8)R12(IP)R13(SP)R14(LR)R15(PC)CPSRSPSR
*寄存器R15为程序计数器(PC),它指向正在取指的地址
*R14为链接寄存器(LR),在结构上有两个特殊功能:
在每种模式下,模式自身的R14版本用于保存子程序返回地址;
当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)
*寄存器R13、R14分别有6个分组的物理寄存器。
一个用于用户和系统模式,其余5个分别用于5种异常模式。
*存器R8~R14为分组寄存器。
它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器
*其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。
*Thumb状态寄存器
Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:
8个通用寄存器R0~R7;
程序计数器(PC);
堆栈指针(SP);
链接寄存器(LR);
有条件访问当前程序状态寄存器(CPSR)
●CPSR寄存器
*寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。
每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
*ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。
CPSR反映了当前处理器的状态,其包含:
4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));
2个中断禁止位,分别控制一种类型的中断;
5个对当前处理器模式进行编码的位;
1个用于指示当前执行指令(ARM还是Thumb)的位。
*各标志位的含义如下:
N运算结果的最高位反映在该标志位。
对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;
Z指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;
C当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。
当进行减法运算(包括CMP指令),并且最高位产生借位时C=0,否则C=1。
对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变;
V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。
*CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。
当处理器处于一个特权模式时,可用软件操作这些位。
它们分别是:
中断禁止位;
T位;
模式位。
●处理器模式
ARM体系结构支持7种处理器模式,分别为:
用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式
*除用户模式外,其它模式均为特权模式。
ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。
此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
*除用户模式,系统模式外,其他模式为异常模式。
它们除了可以通过程序切换进入外,也可以由特定的异常进入。
当特定的异常出现时,处理器进入相应的模式。
每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。
●存储格式
*地址空间的规则:
位于地址A的字包含的字节位于地址A,A+1,A+2和A+3;
位于地址A的半字包含的字节位于地址A和A+1;
位于地址A+2的半字包含的字节位于地址A+2和A+3;
位于地址A的字包含的半字位于地址A和A+2;
*存储器系统有两种映射机制:
1.小端存储器系统:
在小端格式中,低位数字存放在低位字节中。
因此存储器系统字节0连接到数据线7~0。
2.大端存储器系统:
在大端格式中,低位数字存放在高位字节中。
因此存储器系统字节0连接到数据线31~24。
●ARM7TDMI中的T、D、M、I的含义
这四个字母分别代表ARM7的一个特点,T:
高密度16位Thumb指令集扩展,D:
支持片上调试,M:
64位乘法指令,I:
带嵌入式ICE硬件仿真功能模块
●3级流水线
*流水线使用3个阶段,因此指令分3个阶段执行。
⑴取指从存储器装载一条指令
⑵译码识别将要被执行的指令
⑶执行处理指令并将结果写会寄存器
主要在循环程序的设计上可以优化程序
*ARM正在执行第1条指令的同时对第2条指令进行译码,并将第3条指令从存储器中取出,ARM7流水线只有在取第4条指令时,第1条指令才算完成执行。
*无论处理器处于何种状态,程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或者正在“译码”的指令。
PC总是指向第3条指令,或者说PC总是指向当前正在执行的指令地址再加2条指令的地址。
●进入和退出异常时的操作
*进入异常:
1.在适当的LR中保存下一条指令的地址,当异常入口来自:
ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中;
为Thumb状态,那么ARM7TDMI将当前指令地址加2、加4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。
2.将CPSR复制到适当的SPSR中;
3.将CPSR模式位强制设置为与异常类型相对应的值;
4.强制PC从相关的异常向量处取指。
*退出异常:
1.将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
2.将SPSR的值复制回CPSR;
3.清零在入口置位的中断禁止标志。
注:
恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
*进入异常过程
将CPSR寄存器内容存入IRQ模式的SPSR寄存器
置位I位(禁止IRQ中断)清零T位(进入ARM状态)设置MOD位,切换处理器模式至IRQ模式
将下一条指令的地址存入IRQ模式的LR寄存器将跳转地址存入PC,实现跳转
*退出异常过程
将SPSR寄存器的值复制回CPSR寄存器;将LR寄存器的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。
●寻址方式、能读懂简单的指令
*寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。
ARM处理器具有9种基本寻址方式。
1.寄存器寻址;2.立即寻址;
3.寄存器移位寻址;4.寄存器间接寻址;
5.基址寻址;6.多寄存器寻址;
7.堆栈寻址;8.块拷贝寻址;
9.相对寻址。
1.寄存器寻址
操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。
寄存器寻址指令举例如下:
MOVR1,R2;将R2的值存入R1SUBR0,R1,R2;将R1的值减去R2的值,结果保存到R0
2.立即寻址
立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。
立即寻址指令举例如下:
SUBSR0,R0,#1;R0减1,结果放入R0,并且影响标志位
MOVR0,#0xFF000;将立即数0xFF000装入R0寄存器
3.寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。
当第2个操作数是寄存器移位方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。
寄存器移位寻址指令举例如下:
MOVR0,R2,LSL#3;R2的值左移3位,结果放入R0,即是R0=R2×8
ANDSR1,R1,R2,LSLR3;R2的值左移R3位,然后和R1相“与”操作,结果放入R1
4.寄存器间接寻址
寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。
寄存器间接寻址指令举例如下:
LDRR1,[R2];将R2指向的存储单元的数据读出,保存在R1中
SWPR1,R1,[R2];将寄存器R1的值和R2指定的存储,单元的内容交换
5.基址寻址
基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。
基址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等。
基址寻址指令举例如下:
LDRR2,[R3,#0x0C];读取R3+0x0C地址上的存储单元的内容,放入R2
STRR1,[R0,#-4]!
;先R0=R0-4,然后把R1的值寄存到保存到R0指定的存储单元
6.多寄存器寻址
多寄存器寻址一次可传送几个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。
多寄存器寻址指令举例如下:
LDMIAR1!
{R2-R7,R12};将R1指向的单元中的数据读出到
R2~R7、R12中(R1自动加1)
STMIAR0!
{R2-R7,R12};将寄存器R2~R7、R12的值保
存到R0指向的存储单元中
(R0自动加1)
7.堆栈寻址
*堆栈是一个按特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”。
堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元即是堆栈的栈顶。
存储器堆栈可分为两种:
向上生长:
向高地址方向生长,称为递增堆栈
向下生长:
向低地址方向生长,称为递减堆栈
*多寄存器加载/存储指令可以实现在一组寄存器和一块连续的内存单元之间传输数据。
LDM为加载多个寄存器;STM为存储多个寄存器。
允许一条指令传送16个寄存器的任何子集或所有寄存器。
它们主要用于现场保护、数据复制、常数传递等。
8.块拷贝寻址
多寄存器传送指令用于将一块数据从存储器的某一位置拷贝到另一位置。
如:
STMIAR0!
{R1-R7};将R1~R7的数据保存到存储器中。
;存储指针在保存第一个值之后增加,
;增长方向为向上增长。
STMIBR0!
{R1-R7};将R1~R7的数据保存到存储器中。
;存储指针在保存第一个值之前增加,
;增长方向为向上增长。
9.相对寻址
相对寻址是基址寻址的一种变通。
由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。
相对寻址指令举例如下:
BLSUBR1;调用到SUBR1子程序
BEQLOOP;条件跳转到LOOP标号处
...
LOOPMOVR6,#1
...
SUBR1...
●看门狗的用途,操作流程及代码
*用途:
在嵌入式应用中,CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。
看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。
其原理是在系统正常工作时,用户程序每隔一段时间执行喂狗动作(一些寄存器的特定操作),如果系统出错,喂狗间隔超过看门狗溢出时间,那么看门狗将会产生复位信号,使微控制器复位。
*流程
1.设置看门狗定时重装值
2.设置看门狗工作模式
3.一次喂狗操作
启动看门狗
*代码VoidWDTInit(void)//看门狗初始化{
WDTC=0x10000;//设置看门狗定时重装值
WDMOD=0x03;
//设置看门狗工作模式
WdtFeed();//一次喂狗操作
启动看门狗
}
VoidWdtFeed(void)//喂狗程序
{
WDFEED=0xAA;
WDFEED=0x55;
}
1、嵌入式系统的概念
从技术的角度定义:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
从系统的角度定义:
嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。
嵌入的系统中可以共存多个嵌入式系统。
2、嵌入式处理器的分类
嵌入式微处理器嵌入式微控制器嵌入式DSP处理器嵌入式片上系统(SOC)
3、嵌入式系统项目开发的生命周期
项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4个阶段
1.识别需求
识别需求是项目生命周期的最初阶段。
当需求被客户确定时,项目就产生了。
这个阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
2.提出方案
主要由各厂商向客户提交标书、介绍解决方案。
这个阶段是赢得项目的关键,公司既要展示实力又要合理报价。
如果竞标成功则签定合同,厂商开始承担项目成败的责任。
3.执行项目
从公司角度来看这才是项目的开始。
这个阶段项目经理和项目组将代表公司完全承担合同规定的任务。
一般需要细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
4.结束项目
主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
4、ARM处理器支持的数据类型、ARM处理器的工作状态以及状态切换的程序、内部寄存器、CPSR寄存器、处理器模式、存储格式、ARM7TDMI中的T、D、M、I的含义、3级流水线、进入和退出异常时的操作
3.1支持的数据类型:
字节8位
半字16位(必须分配为占用两个字节)
字32为(必须分配为占用4各字节)
3.2工作状态:
ARM状态:
32位,这种状态下执行的是字方式的ARM指令;
Thumb状态:
16位,这种状态下执行半字方式的ARM指令。
3.3状态切换程序:
从Arm状态切换到Thumb状态
LDRR0,=Lable+1
BXR0
从Thumb状态切换到ARM状态
LDRR0,=Lable
BXR0
3.4内部寄存器:
(31个通用寄存器R0-R15,R13_svc、R14_svc、R13_abt、R14_abt、R13_unt、R14_unt、R13_irq、R14_irq和R8_fiq–R14_fiq
6个状态寄存器CPSR、SPSR_svc、SPSR_abt、SPSR_unt、SPSR_irq和SPSR_fiq)
31个通用32位寄存器;
6个状态寄存器
3.5CPSR寄存器
反映了当前处理器的状态,其包含:
4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));
2个中断禁止位,分别控制一种类型的中断;
5个对当前处理器模式进行编码的位;
1个用于指示当前执行指令(ARM还是Thumb)的位。
3.6存储器的格式
小端存储器系统
在小端格式中,高位数字存放在高位字节中。
因此存储器系统字节0连接到数据线7~0。
大端存储器系统
在大端格式中,高位数字存放在低位字节中。
因此存储器系统字节0连接到数据线31~24。
3.10ARM7TDMI中的T、D、M、I的含义
T:
支持高密度16位的Thumb指令集;
D:
支持片上调试;
M:
支持64位乘法;
I:
支持EmbededICE观察硬件;
3.113级流水线
ARM7TDMI的流水线分3级,分别为:
取指译码执行
正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。
3.12进入和退出异常时的操作
进入异常:
1.在异常发生后,ARM7TDMI内核会作以下工作:
1)在适当的LR中保存下一条指令的地址,当异常入口来自:
ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中;
2)为Thumb状态,那么ARM7TDMI将当前指令地址加4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。
2.将CPSR复制到适当的SPSR中;
3.将CPSR模式位强制设置为与异常类型相对应的值;
4.强制PC从相关的异常向量处取指。
ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。
注:
异常总是在ARM状态中进行处理。
当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。
退出异常:
1.将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
2.将SPSR的值复制回CPSR;
3.清零在入口置位的中断禁止标志。
注:
恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
5.1看门狗的用途:
在嵌入式应用中,CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。
看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。
5.2操作流程及代码:
操作流程:
1.设置看门狗定时重装值;
2.设置看门狗工作模式;
3.一次喂狗操作、启动看门狗。
代码:
/******看门狗初始化**********/
VoidWDTInit(void)
{
WDTC=0x10000;//设置看门狗定时重装值
WDMOD=0x03;//设置看门狗工作模式;
WdtFeed();//一次喂狗操作、启动看门狗。
}
/********喂狗程序***********/
VoidWdtFeed(void)
{
WDFEED=0xAA;
WDFEED=0x55;
}
处理器模式(5个对当前处理器模式进行编码的位)
M[4:
0]
模式
10000
用户模式
10001
快中断模式
10010
中断模式
10011
管理模式
10111
中止模式
11011
未定义模式
11111
系统模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式处理器及应用 考试要点 嵌入式 处理器 应用 考试 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)