嵌入式系统原理与应用必备知识-复习笔记-重点汇总

 一、常见缩写含义

MSB:最高有效位(Most Significant Bit)

LSB:最低有效位(Least Significant Bit)

AHB:先进的高性能总线(Advanced High Performance Bus)

VPB:连接片内外设功能的VLSI外设总线

EMC:外部存储器控制器(External Memory Controller)

MAM:存储器加速模块(Memory Acceleration Module)

VIC:向量中断控制器(Vector Interrupt Controller)

SPI:全双工串行外设接口(Serial Peripheral Interface)

PWM:脉宽调制器(Pulse width modulation)

CPSR:当前程序状态寄存器(Current Program Status Register)

SPSR:程序状态保存寄存器(Saved Program Status Register)

RISC:精简指令集计算机(Reduced Instruction Set Computer)

CISC:复杂指令集计算机(Complex Instruction Set Computer)

ARM:1.英国一家电子公司的名称2.先进的精简指令集器件(Advanced RISC Machines)

8位位图:8位存数据,将32位数据抽取出部分,并且必须由一个8位的常数循环移位偶数位得到。常数表达式:#immed_8r。

ISP:在线系统编程(In-System Programmability)

IAP:应用编程(In Application Programming)

OTP:一次性密码(One Time Password)

RTOS:实时操作系统(Real Time Operating System)

RAM:随机存取存储器(Random Access Memory)

ROM:只读存储器(Read-Only Memory)

PROM:可编程只读存储器(Programmable Read-Only memory)

二、七种模式(1);两种状态及区别(2);寄存器及分类(3);总线情况(哈、冯)(4);半字、字(5);大端小端模式(6);RISC/CISC各自特点(7); LPC2XXX的编址方式(统一,独立)(8);几级流水线(9);ARM7TDMI的意义(10);ARM7TDMI与CORTEX-M3的区别(11)。

(1)七种模式:①用户②系统③管理④中止⑤未定义⑥中断⑦快中断

用户模式(usr):ARM处理器正常的程序执行状态;

系统模式(sys):运行具有特权的操作系统任务(特权模式);

管理模式(svc):操作系统使用的保护模式;

中止模式(abt):当数据或指令预取中止时进入该模式,用于虚拟存储及存储保护;

未定义模式(und):当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

中断模式(irq):用于通用的中断处理;

快中断模式(fiq):用于高速数据传输或通道管理。

(2)两种状态:①ARM状态(32位)处理器执行字方式的ARM指令②Thumb状态(16位)(处理器执行半字方式的Thumb指令)

区别:ARM指令集中的指令是32位的指令,执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,Thumb指令集中的指令是为16位指令。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系底层的程序设计模型,只是在该模型上加上了一些限制条件。Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位

(3)寄存器及分类:ARM有37个寄存器,其中含31个通用32位寄存器(R0-R15大类)和6个状态寄存器

R12(IP):内部调用暂时寄存器,暂存SP;

R13(SP):堆栈指针,存储堆栈地址

R14(LR):链接寄存器,存储子程序的返回地址

R15(PC):程序寄存器,指向正在“取指”的指令(可编辑);

CPSR:当前程序状态寄存器;

SPSR:程序状态保存寄存器;

注:R8-R12有两个分组的物理地址,R13和R14在异常发生时会产生新的实例,如IRQ处理器模式。ARM的子程序调用很快,因为子程序的返回地址不需要存放在堆栈中。

(4)总线情况:①冯·诺依曼体系结构②哈佛体系结构

冯·诺依曼体系结构数据空间和地址空间是统一编址的,而哈佛结构数据空间和地址空间是独立编址的

(5)半字、字

一字为4字节半字为2字节,半字、一字在精简指令集RISC中(ARM、PIC)。

(6)大端小端模式:ARM体系结构的存储器格式

大端模式:字数据的高字节存储在低地址中,字数据的低字节存放在高地址中。

小端模式:字数据的高字节存储在高地址中,字数据的低字节存放在低地址中。

(7)RISC/CISC各自特点

RISC:精简指令集,指令少,一字或半字形式,一条指令一个字,不会产生多字节,微处理器结构简单,设计周期短,适用于专用机。(ARM、PIC)

CISC:复杂指令集,指令多,多字节形式,易陷入指令陷阱,微处理器结构复杂,设计周期长,适用于通用机。(X86、C51)

(8)LPC2XXX的编址方式:①统一编址②独立编址

统一:I/O端口地址与存储地址统一编址,每个端口占用一个存储单元的地址,存储容量减小。(ARM)独立:I/O端口地址与存储地址独立编址,处理器通过两组控制信号实现对I/O端口和存储器的不同寻址。(C51)

(9)3级流水线:取指、译码、执行

(10)ARM7TDMI的含义

T:支持高密度的16位Thumb指令集

D:支持片上调试

M:支持64位乘法

I:支持Embeded ICE硬件仿真

(11)ARM7TDMI与CORTEX-M3的区别

ARM7TDMI:①采用冯·诺依曼架构②有32位ARM指令集和16位Thumb指令集,两套指令之间需进行状态切换③有7种工作模式④三级流水线,出现转移须刷新⑤中断少效率低,延迟缓慢⑥价格较高⑦软件手工压栈,代码长⑧无存储器保护单元⑨速度较低,功耗较高⑩无系统节拍定时

CORTEX-M3:①采用哈佛架构②有16位和32位Thumb/Thumb-2指令集,指令可直接混写③有2种工作模式④三级流水线加分支预测,出现转移无需刷新⑤中断多效率高,延迟较短⑥价格较低⑦硬件自动压栈,无需代码⑧有存储器保护单元⑨速度较快,功耗较低,有低功耗模式⑩内置系统节拍定时器,便于系统移植

三、R13(SP)、R14(LR)、R15(PC)的作用,以及CPSR的主要位(N,V,C,Z)的意义。

R13(SP):堆栈指针,存储堆栈地址

R14(LR):链接寄存器,存储子程序的返回地址

R15(PC):程序寄存器,指向正在“取指”的指令(可编辑);

CPSR(N,V,C,Z)条件标志位。当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。

N——(负或小于)本位设置成当前指令运算结果的bit[31]的值。当用两个补码表示的带符号数进行运算时,N=1表示运算结果为负数,N=0表示结果为正数或零。

Z——(零)Z=1表示运算的结果为零;Z=0表示运算的结果非零。对于CMP指令,Z=1表示进行比较的两个数大小相等。

C——(进位或借位扩展)分四种情况讨论C的设置方法:

①在加法指令中(包括比较指令CMN):当结果产生了进位,则C=1,表示无符号运算发生溢出;其他情况C=0。

②在减法指令中(包括比较指令CMP):当运算中发生借位,则C=0,表示无符号运算发生进位;其他情况下C=1。

③对于包含移位操作的非加减运算指令,C中包含最后一次溢出的位的数值。

④对于其他非加减运算指令,C位的值通常不受影响。

V——(溢出标志)对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出;通常其他指令不影响V位。

四、LPC2xxx中AHB,VPB总线, 及其总线上所挂的器件——结构图

643f9db4c53e4421a007086e60fd8cbf.png

AHB:先进的高性能总线

VPB:连接片内外设功能的VLSI外设总线

五、寻址方式(立即寻址、寄存器寻址、寄存器移位寻址、基址加变址寻址);常见的指令:杂项指令、伪指令。

ARM指令种类:①存储器访问指令②数据处理指令③乘法指令④ARM分支指令⑤协处理指令⑥杂项指令⑦伪指令

立即寻址:8位位图,立即数就包含在指令中,紧跟在操作码后面,在程序运行时,程序直接调用该立即数,而不需要到其他地址单元中去取相应的立即数,立即数多用于给寄存器赋初值。立即数以"#"为前缀,0x开头表示十六进制。

寄存器寻址:操作数在CPU内部的寄存器中,指令执行时直接从寄存器中取值操作。

寄存器移位寻址:ARM指令集特有的寻址方式,在操作之前需要对源寄存器操作数进行移位操作。

基址加变址寻址:指将基址寄存器的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。

杂项指令:用于计算寄存器中操作数最高位0的个数,如果操作数的bit[31]为1,则返回0;如果操作数为0 ,则指令返回32。

伪指令:用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。

六、立即数的规定; 8位位图;为什么有这个规定?

立即数的规定:立即数通常是指在立即寻址方式指令中给出的数,该数值紧跟在操作码之后。立即数以"#"为前缀,0x开头表示十六进制。如果立即数为16位或32位,将按“高高低低”的原则进行存储。

原因:RISC中一条指令一个字,寄存器无法执行32位的数据,但通过8位存数据,将32位数据集抽取出部分,即由一个8位的常数循环移位偶数位得到,即可解决该类问题。

七、MOV、LDR及其区别;第二操作数(LSL #1);ADDS;SUB;RSBS。

MOV:传送指令在寄存器之间移动数据,或者把立即数移动到寄存器中,MOV指令限制了立即数的长度为8位,也就是不能超过512)。

LDR:加载指令,存储器中将一个32位的字数据传送到目的寄存器中。

第二操作数(LSL #1)逻辑左移1位(左移1位相当于乘2)

汇编语言中,如果是双操作数指令,逗号前面的为第二操作数,逗号后面的为源操作数。例如:

MOV AX,BX;中AX为第二操作数,BX为源操作数,此指令的功能为将BX(源)的值送到AX(目标)。在汇编中,立即数不能做为第二操作数,可以作为源操作数。

ADDS:带进位的加法指令

SUB:减法指令

RSBS:减翻转指令 

八、LDR及LDR伪指令差别;B、BL(子程序返回);简单的汇编,如R5大于0x40,则R5-1等等;会用指令的HI、EQ等条件。

(1)LDR及LDR伪指令差别

LDR伪指令:是汇编指令,用于加载32位的立即数或一个地址指定寄存器。在汇编编译程序时,LDR伪指令被编译器替换成一条合适的指令。若加载的常数未超过MOV范围,则使用MOV指令代替该LDR伪指令,否则汇编器将常量放入文字池,并使用一条程序相对偏移的LDR指令从文字池读出常量。

LDR指令:是CPU指令,用于从内存中加载数据到寄存器中。

(2)B、BL(子程序返回)

B指令简单的程序跳转,跳转到目标标号处执行。

BL指令链接程序跳转,即要带返回地址。在发生跳转前,将当前PC-4保存到R14中,也就是返回地址存在R14中,所以可以在子程序返回时只要MOV  PC,LR即可。

(3)简单编程:如R5大于0x40,则R5-1

MOV R0,#0x40

CMP R5,R0

SUBHI R5,R5,#1

26262a818fd049a2986491acd30a57d3.png

17b3180aff2641a7939bf91840dc2527.png

九、存储异常向量表中程序跳转使用LDR指令,而不使用B指令的原因?

LDR指令可以全地址范围跳转,而B指令只能在前后32MB范围内跳转;芯片具有重映射Remap功能,当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。

十、常见的嵌入式处理器及分类、嵌入式操作系统,CM3是什么结构?

(1)常见的嵌入式处理器及分类

嵌入式微处理器EMPU

微控制器MCU

嵌入式DSP处理器

(2)嵌入式操作系统

嵌入式片上系统SOC

Linux、Vxworks、Win CE、μC/OS-II

(3)CM3的结构:哈佛架构

十一、ARM中哪些指令能访问外存?

装载LDR、存储STR、交换SWP指令

十二、最小系统的定义;常见通信的通讯原理;UART(格式,连接,波特率);I2C(连接,原理);SPI(连接,原理);半双工,单工,全双工――RS232/RS485 及其电气性能,包括硬件连接,如何一主几从,软件流程。

(1)最小系统(框图

最小系统:一个嵌入式处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,嵌入式处理器芯片才可能工作。这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。

2932c3adf7ec4f2a9e5adc54eba2bb57.png

(2)常见通信的通讯原理:SPI、I2C、UART

传输速度:SPI>I2C>UART

传输距离:UART>SPI>I2C

(3)SPI接口(串行外设接口):全双工通信

原理:发送接口和接收接口都有各自的数据通道和流控状态信息通道,其数据通道和流控状态信息通道是独立的并且是点对点通信。(4根线)

通讯方式:主从方式通信:①时钟信号(极性0或1)②时钟前沿采样和时钟后沿输出③时钟前沿输出和时钟后沿采样

速度:最快(几十MB/s)

距离:短距离

①作为主机

8fca151a4b0f4a2baac2c890db534634.png

f58d139fcfcf430a961ff3558ea3d672.png

②作为从机

9f53441edc124ad39dd9bacc00ba3447.png

3cd89b752f2f47298a845b1d9919539b.png

(4)I2C接口:半双工通信

原理:SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出。需通过上拉电阻接电源VCC。(2根线:数据线、时钟线)

通讯方式:串行方式通信:发送→应答→返回到发送

速度:中等(几百K)

距离:极短距离

fa00275615e2433cb2b52e4d52b05dfd.png

531a9231c0ac45d7a8481f0baf73db7f.png

 (5)UART:全双工通信

原理:将要传输的资料在串行通信与并行通信之间加以转换。(3根线)

通讯方式:异步串行通信

速度:最慢(10K)

距离:可长距离(10米及以上)

25c5ae54971f412fadba3f64a750441d.png

 

51d89b6f0e734a2193b90e6214b108b7.png

 (6)半双工、单工、全双工

单工数据传输:只支持数据在一个方向上传输

半双工数据传输:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,实际上是一种切换方向的单工通信;

全双工数据传输:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

(7)RS232/RS485

RS232:RS是英文“推荐标准”的缩写,232为标识号。传输速率一般不超过20Kbps,速率低,抗干扰能力差,传输的最大距离不超过15m。

169c2727ae134f2a8e0da343f3e20ed9.png

 

RS485:全称为平衡数字多点系统中的驱动器和接收器的电气特性。增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。最高传输速率10Mbps,抗干扰能力强,可传距离1.5km。

aa597ed0e5d1431488120694857f2f7a.png

十三、复位电路为什么要有;LPC2xxx有那些复位,与看门狗复位两者之间差别?设计复位电路要注意什么?设计一个简单的复位电路。

(1)复位电路为什么要有:

通过复位将计算机系统中的硬件逻辑归位到一个初始的状态。比如让寄存器恢复默认值、让处理器从第一条指令开始执行程序等。

(2)LPC2000系列芯片的复位:①外部复位②看门狗复位

外部复位:把nRESET引脚拉为低电平,并保持一个最小时间,引发复位。

看门狗复位:实质是定时器复位,通过设置看门狗相关寄存器,当看门狗定时器溢出,引发复位。

(3)外部复位和看门狗复位的差别

外部复位:冷启动,会检测管脚,需要一定的时间,需要注意电源电平高低。

看门狗复位:热启动,无检测管脚功能,实质是定时器复位。

(4)设计复位电路注意点:①复位延时时间②复位电平高低

(5)简单的复位电路设计

①外部复位电路:

c1a4939d9991473c9078be69763e7caf.png

②上电复位电路:

 

d64a893ec3e4469bb7b6749fd7c05602.png

            

十四、BootBlock, 启动代码干些什么;存储分布,为什么重映射?

(1)启动代码作用

①向量表定义②堆栈初始化③系统变量初始化④中断系统初始化⑤I/O口初始化⑥外围初始化⑦地址重映射

(2)存储器重新映射(Remap)的原因

①为了能让ARM内核通过访问0X0000-0X003F地址访问到其他存储区域的向量表;

②通过重映射可以先执行BootBlock;

③使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题;

④使用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少;

⑤为超过单字转移指令范围的跳转提供空间来保存常量。

(如有侵权,请联系删除!文章中如有错误可在评论区指出!)

 

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东_YXD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值