南工大ARM嵌入式系统参考复习习题1_第1页
南工大ARM嵌入式系统参考复习习题1_第2页
南工大ARM嵌入式系统参考复习习题1_第3页
南工大ARM嵌入式系统参考复习习题1_第4页
南工大ARM嵌入式系统参考复习习题1_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM嵌入式系统设计参考复习题(2017-11)主要知识点:第1章1. 嵌入式系统:“以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统” 根据应用的要求,沿着“体积小、低功耗、高可靠”方向发展,对运算速度、存储容量没有统一要求。三要素:嵌入、专用、计算机。2. 嵌入式系统有哪些部分组成一般由硬件层,中间层(HAL或BSP)和软件层组成。粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件 稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件3. 嵌入式系统特点:系统内核小

2、专用性强系统精简高实时性。4. 嵌入式处理器的分类:嵌入式微处理器(MPU):就是和通用计算机的处理器对应的CPU,可以认为是“增强型”通用微处理器 。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D等各种必要功能和外设。嵌入式DSP处理器(DSP):是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。第二章

3、1. ARM:是Advance RISC Machine 的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。2. 在ARM9TDMI中 “9TDMI”的含义: 9:采用版本为9的ARM微处理器 T:支持16为压缩指令集Thumb,D: 支持片上Debug,称为D变种 M:内嵌硬件乘法器 Multiplier,称为M变种 I: 嵌入式ICE,支持片上断点和调试,称为I变种。3. ARM Cortex-A8处理器的三种工作状态:ARM状态,处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令和ThumbEE

4、状态:执行16位的半字对齐的Thumb指令集变种。8种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)和监控模式(mon)。特权模式:除usr之外的其它的7种工作模式都是特权模式。异常模式:除usr和sys之外的其它的6种工作模式都是持权模式。4. ARM A8寄存器分成哪几类各类有哪些寄存器寄存器LR有什么用途?分两类:33个通用寄存器和7 个状态寄存器。33个通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R1

5、3_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。7 个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq和SPSR_mon。LR (R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt、R14_und和R14_mon用来保存R15的返回值。各位是意义:N:正负号/大小 标志位 0表示

6、:正数/大于;1表示:负数/小于 Z:零标志位 0表示:结果不为零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1 V:溢出标志位 0表示:结果未溢出;1表示:结果溢出I、I和F:irq和fiq中断允许和禁止控制位,1 禁止irq或fiq中断 0 允许irq或fiq中断。T: 控制(标志)位反映处理器的运行状态T=1时,程序运行于Thumb状态,T=0时,程序运行于ARM状态。TM:控制位决定了处理器的运行模式模式 TM4:0用户 10000快中断 10001中断 10010管理 10011中止 10111未定义 11011系统 11111监控

7、 10110 异常响应过程(进入异常)执行哪些操作。保存返回地址、保存当前状态寄存器CPSR的内容、设置当前状态寄存器CPSR中的相应位、转去执行中断处理程序。第三章 指令中的第二操作数“operand2”有哪些具体形式:三种:寄存器、寄存器移位、8位位图立即数。 2.对于ARM的变址寻址方式,有基地址和偏倚地址两部分组成。(1)基地址可以是哪些寄存器(2)偏移地址可以有哪些形式(3)总地址的计算方法有哪些怎么表示(4)变址寻址应用于哪些指令?(1)基地址可以是通用寄存器R0-R15中的任意一个。(2) 偏移地址可以有三种形式:12位立即数、寄存器、寄存器移位。(3) 总地址的计算方

8、法有三种: 前变址(前索引):先基址+偏址,生成操作数地址,做指令指定的操作。如:LDR Rd,Rn,#m后变址模式(修改基址寄存器): 基址寄存器不加偏移作为操作数地址。 完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDR Rd,Rn,#m自动变址模式(修改基址寄存器): 先基址+偏移,生成操作数地址,做指令指定的操作。然后自动修改基址寄存器。如:LDR Rd,Rn,#m !(4) 有4条指令: LDR、STR、LDM、STM3ARM 有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、变址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址4. ARM 伪指令:ADR:小

9、范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空操作伪指令。 5. ARM 指令集分为哪几种类型各类有哪些指令(可以不考虑协处理器指令)。五类:存器访问指令、数据处理指令、跳转指令、协处理器指令、杂项指令。存储器访问指令:单存储器存取指令,多存储器存取指令。数据处理指令:算术运算指令,逻辑运算指令,数据传送指令,比较指令,测试指令。跳转指令:B跳转指令 BL带链接的跳转指令 BX带状态切换的跳转指令 BLX带链接和状态切换的跳转指令。杂项指令:程序状态寄存器操作指令,中断操作指令。6. ARM 有哪些条件码各个条件码的符号及意义。(比较常用的

10、应该会)。条件码 0000 0001 0010 0011 0100 0101 0110 0111助记符 EQ NE CS/HS CC/LO MI PL VS VC含 义 相等 不相等 无符号数大于或等于 无符号数小于 负数 非负数 溢出 没有溢出标 志 Z=1 Z=0 C=1 C=0 N=1 N=0 V=1 V=01000HI无符号数大于C=1且Z=01001LS无符号数小于或等于C=0或Z=11010GE有符号数大于或等于N=V1011LT有符号数小于N!=V1100GT有符号数大于Z=0且N=V1101LE有符号数小于或等于Z=1或N!=V1110AL无条件执行arm采用32位架构,基本数

11、据类型4种,填空Byte 8位 字节HalfWord 16 半字 2字节对齐Word 32 字 4DoubleWord 64 双字 8内核工作模式,cortex a8,(课本8种)8种usrfiqirqsvc特权模式abt数据访问中止模式und未定义指令中止模式sysmon监控模式, 可在安全模式和非安全模式切换8个模式中,除用户模式usr, 其他7个全部特权模式7个特权模式中,除了系统模式,剩下6个都属于异常模式异常模式:快速中断请求模式(FIQ)    用于高速数据传输 外部中断请求模式(IRQ)   用于通常的中断处理特权模式(

12、SVC)  数据访问终止模式(abt)   当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护 未定义指令中止模式(und)   用于支持硬件协处理器的软件仿真监控模式(mon)Arm微处理器工作模式,分别为: 1 用户模式(Usr)            用于正常执行程序2 快速中断模式(FIQ)    用于高速数据传输3 外部中断模式(

13、IRQ)   用于通常的中断处理4  特权管理模式(SVC)         操作系统使用的保护模式(高权限),复位和软件中断进入5 数据访问中止模式(abt)   当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护6 系统模式(sys)            运行拥有特权的操作系统任务7 未定义指令

14、终止模式(und)   用于支持硬件协处理器的软件仿真(浮点、微量运算)8 监控模式(mon), 可在安全模式和非安全模式切换异常模式优先级如下:1(最高)    SVC 复位2 abt  数据中止3 FIQ(快速中断请求)4 IRQ(外部中断请求)5 abt 预取指令中止6(最低) und 未定义指令, SWI 软件中断 arm7为止使用流水线3级取指令,从寄存器装载一条指令译码 为下一周期准备控制信号执行 处理指令,结果写会寄存器arm9,五级流水线 3级+缓冲/数据 回写arm10 6级流水线 寄存器R13用作数据栈指

15、针,记作SP。 寄存器R14称为链接寄存器,记作LR,它用于保存子程序的返回地址。 寄存器R15是程序计数器,记作PC,不能用作其它用途。CPSR 当前程序状态寄存器 理解CPSR格式,里面标志位含义等等跳转指令,bl跳转32mb范围,跳转pc,如ldrb pc,.可以4GB范围AAPCS标准 子程序调用,用R0-R3存储参数,R0存返回值I2C总线,通过串行数据线(SDA)和串行时钟线 (SCL)在连接到总线的器件间传递信息。传输时包含寻址和数据信息,每个字节8位,每个字节后必须跟一个响应位。 A_D转换结束的表达式是 !(TSAADCCON0&(1<<15)获取AD转换

16、结果的表达式是 (TSDATX0&0xfff) LCD 16M色的像素颜色的数据格式是怎样的4个字节,前3个字节分别为红,绿,蓝三原色的色号。64K色的数据则用16位表示一个像素的颜色,三原色配比是5/6/5。android操作系统的源码结构分为3个部分:核心工程(Core Project),扩展工程(External Project),包(Package),应用程序(Application)在package/apps 目录中。二、简答题: 1、Cortex-A8是ARMv7-A 架构的,共有哪几种工作模式,其中哪几种属于异常模式usr用户模式fiq快速中断模式irq 外部中断模式sv

17、c特权模式abt数据访问中止und未定义指令中止模式sys系统模式mon监控模式,安全模式切换8种工作模式,除用户模式,都是特权模式特权模式里面,除系统模式,其他都是异常模式。即异常模式6种:Fiq 快速中断异常模式Irq 外部中断请求模式svc特权模式abt数据访问中止模式und未定义指令中止模式mon监控模式2.寄存器CPSR,SPSR的功能各是什么CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。 中断时,保存当前程序状态,处理器模式等等。每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份

18、程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPSRCPSR格式CPSR格式如下所示。SPSR和CPSR格式相同。31 30 29 28 27 26 7 6 5 4 3 2 1 0N Z C V Q IT1:0J I F T M4 M3 M2 M1 M0*条件标志位*Nn=1表示运算结果为负数,n=0表示结果为正数或零。zz=1表示运算的结果为零;z=0表示运算的结果不为零。C进位,借位标志VV=1表示符号位溢出JThumbEE状态位 M4-0 模式位3、简述S5PV210 外部中断处理和响应的流程。中断发生后,处

19、理: 通过堆栈和spsr寄存器,入栈保存现场,设置cpsr模式位,处理器模式变成外部中断模式。外部中断中断发生后,VIC0IRQSTATUS相应位置改变,中断向量地址VIC0ADDRESS相应位改变,pc跳到向量表的特定地址,从该地址开始执行,跳转调用我们写的中断处理函数,执行中断处理程序。/*4.使能向量地址通道16中断*/rVIC0INTENABLE|=(1<<16);/*5.向量地址通道16选择为IRQ中断*/rVIC0INTSELECT|=(1<<16);装中断服务函数到VIC0VECTADDR16 ,强制转换提取EINT16_31_IRQHandler函数地址

20、*/rVIC0VECTADDR16 = (unsigned int)EINT16_31_IRQHandler;void EINT16_31_IRQHandler(void)。三、编程应用题:(阅读分析,加注释、填空与编程)1.将存储器中0x400000开始的200字节的数据,传送到0x400800开始的区域。解: MOV R0,#0x400000 LDR R1,=0x400800MOV R7,#200LP: LDRB R2,R0,#1STRB R2,R1,#1SUBS R7, R7,#1BNE LP HERE: B HERE2.编写一程序,查找存储器从0x400000开始的

21、100个字中为0的数目,将其结果存到0x400190中。解: MOV R0,#0x400000 MOV R1,#0 MOV R7,#100LP: LDR R2,R0,#4 CMP R2,#0 BNE NEXT ADD R1,R1,#1NEXT: SUBS R7,R7,#1 BNE LP STR R1,R0 HERE : B HERE3. 编写一简单ARM汇编程序段,实现1+2+100的运算。 MOV R2,#100 MOV R1,#0LOOP ADD R1,R1,R2 ;R1中为累加和 SUBS R2,R2,#1 ;R2控制循环 BNE LOOP5. 用ARM汇编语言和C语言写一个初始值为0x

22、6000000的延时函数。汇编的为:delay:ldr r0,=0x6000000temp:sub r0,r0,#1cmp r0,#0bne tempbx lr 上面程序参考c语言的写法void delay()volatile int i,j;for(i=0;i<0x6000000;i+);6. 请对如下程序解释 按k2按键,松手,led闪烁#include ""#include ""#define rGPJ2CON *(volatile unsigned long *)0xe0200280) #define rGPJ2DAT *(volatile

23、 unsigned long *)0xe0200284) void key_init()rGPH2CON &=(0xf<<0); qunum,2.section .text.global _start_start:Reset_Handler:movr0, #0;/* set up the three parameters */movr1, #3movr2, #2blarithfunc;/* call the function */stop:bstop;# *;# * According R0 valude to execute the code *;# *arithfunc

24、:;/* label the function */cmpr0, #num;/* Treat function code as unsigned integer */bhsDoAdd;/* If code is >=2 then do operation 0. */adrr3, JumpTable;/* Load address of jump table */ldrpc, r3,r0,LSL#2;/* Jump to the appropriate routine */JumpTable:.wordDoAdd.wordDoSubDoAdd:addr0, r1, r2;/* Operat

25、ion 0, >1 */bxlr ;/* Return */DoSub:subr0, r1, r2;/* Operation 1 */bxlr<实验二> GPIO LED接口控制实验(LED显示灯控制)控制实验平台的发光二极管LED1,LED2,LED3,LED4,使它们有规律的点亮和熄灭,具体顺序如下:LED1 亮->LED2 亮->LED3 亮->LED4 亮->LED1 灭->LED2 灭->LED3 灭->LED4 灭->全亮->全灭,如此反复。/* name:* func: led_on turn on the

26、leds one by one*/ void led_on(void)int i,nOut; nOut = 0xF0; rGPFDAT = nOut & 0x70; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x30; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x10; for(i=0;i<100000;i+); rGPFDAT=nOut & 0x00; for(i=0;i<100000;i+);/* name:* func: led_off turn off the le

27、ds one by one */ void led_off(void)int i,nOut; nOut=0;rGPFDAT = 0; for(i=0;i<100000;i+); rGPFDAT = nOut | 0x80; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x40; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x20; for(i=0;i<100000;i+); rGPFDAT |= nOut | 0x10; for(i=0;i<100000;i+);/* name:* func

28、: led_on_off turn on the 4 leds and then turn off the 4 leds*/void led_on_off(void)int i; rGPFDAT=0; for(i=0;i<100000;i+); rGPFDAT=0xF0; for(i=0;i<100000;i+);/* name:* func: led_test i/o control test(led) */void led_test(void)rGPFCON=0x; 2 n");<实验三> LED数码管综合实验#include ""#i

29、nclude ""#define U8 unsigned charunsigned char seg7table16 = /* 0 1 2 3 4 5 6 7*/ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, /* 8 9 A B C D E F*/ 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e,;/*.n");Gpio_init();flag = 1; while (flag != 0) && (lp<6) for(j=0;j<lp;j+)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论