ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:25.42KB ,
资源ID:17439180      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17439180.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM嵌入式体系结构与接口技术CortexA9版习题问题详解Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM嵌入式体系结构与接口技术CortexA9版习题问题详解Word文件下载.docx

1、2BIC 指令的作用是什么?将一个寄存器中的某一位或者某几位清零3执行 SWI 指令时会发生什么情况?执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。4B、BL、BX 指令的区别有哪些?B与BL都可以使程序跳转到指定的地址(label)处执行程序B 跳转指令 pclabelBL 带返回的连接跳转 pclabe

2、l,同时将BL下一条指令地址保存到LRBX使程序跳转到指令中指定的地址执行程序,并将的第0位复制到CPSR中T位,BX BX 跳转并切换状态 pcRm&0xfffffffe,TRm05下面哪个数据可以作为数据操作指令的有效立即数?0x101 0x1f8 0xf000000f 0x08000012 0x1040x1f8、0xf000000f、0x1046ARM 在哪些工作模式下可以修改 CPSR 寄存器?特权模式下才能修改CPSR寄存器,即快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(

3、System)、(Cortex-A系列)监控模式(Monitor)7写一个程序,如果 R0 的值大于 0x50,则将 R1 的值减去 0x10,并把结果送给 R0。CMP R0, #0x50 SUBGT R0,R1,#0x108编写一段 ARM 汇编程序,实现数据块复制,将 R0 指向的 8 个字的连续数据保存到 R1 指向的一段连续的存单元中。 LDMIA R0!,R2-R9 STMIA R1!第四章1在 ARM 汇编中如何定义一个全局的数字变量?使用.global伪操作 语法格式:.global 全局变量名 并且被初始化为02ADR 和 LDR 的用法有什么区别?ADR 伪指令的功能是把标

4、签所在的地址加载到寄存器中LDR伪指令用于装载一个32位的常数或地址到寄存器中3AAPCS 中规定的 ARM 寄存器的使用规则是什么?AAPCS 中定义了 ARM 寄存器使用规则如下。(1)在进行子函数调用时,当子函数中有参数时,子程序间通过寄存器 R0、R1、R2、R3 来传递参数,如果参数多于 4 个,则多出的部分用堆栈传递,被调用的子程序在返回前无须恢复寄存器 R0R3 的容。(2)在子程序中,使用寄存器 R4R11 来保存局部变量。如果在子程序中使用到了 R4R11 中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进

5、行这些操作。在 Thumb 程序中,通常只能使用寄存器R4R7 来保存局部变量。(3)寄存器 R12 用作子程序间 scratch 寄存器(用于保存 SP,在函数返回时使用该寄存器出栈),记作 ip。在子程序间的连接代码段中常使用这种规则。(4)寄存器 R13 用作数据栈指针,记作 sp,sp 中存放的是当前使用的栈的栈顶的地址。在子程序中寄存器 R13 不能用作其他用途。寄存器 sp 在进入子程序时的值和退出子程序时的值必须相等。(5)寄存器 R14 称为连接寄存器,记作 lr。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器 R14 则可以用作其他用途。(6)寄存器 R15

6、 是程序计数器,记作 pc。它不能用作其他用途。4什么是联汇编?在C代码中插入汇编语言的方法称为联汇编。5汇编代码中如何调用 C 代码中定义的函数? (1)调用的C带有参数,需要使用R0R3寄存器进行参数的传递,如果参数多于四个 多出来的部分使用堆栈传递。 (2)调用C程序时,使用BL跳转指令,格式为: BL 函数名 (3)如果C程序带有返回值,使用寄存器R0传递。第五章1什么是 GPIO?GPIO 的英文全称为 General-Purpose IO ports,也就是通用 IO 接口。2Exynos4412 有几组 GPIO 端口?Exynos4412有37组GPIO端口3编程实现利用 Ex

7、ynos4412 的 GPIO 控制 LED3 闪烁。 .text 定义一个代码段 .global _start 定义一个全局的标号 _start_start: 汇编的入口,相当于c的main函数 ldr r0, =0x11000c20 配置引脚的功能,将GPX1CON寄存器的3:0这个位于设置为0x1 ldr r4, r0 bic r4, #0xf orr r4, #0x1 str r4, r0loop: bl led_on 点亮LED3 bl delay 延时 bl led_off 熄灭LED3 b loop 相当于C程序中的while(1), 防止程序跑飞led_on: ldr r1,

8、=0x11000c24 配置GPX1_0引脚输出高电平 ldr r5, r1 orr r5, #0x1 str r5, r1 mov pc, lrled_off: ldr r1, =0x11000c24 配置GPX1_0引脚输出低电平 bic r5, #0x1delay: 延时函数 mov r7, #0x10000000ms: sub r7, #1 cmp r7, #0 moveq pc, lr b ms.end 代表汇编的结束第六章1异常向量表位于存储器的什么位置?存储器映射地址 0x00000000 是为向量表(一组 32 位字)保留的。也可通过设置CP15 的C12寄存器将异常向量表的首

9、地址设置在任意地址2IRQ 或 FIQ 异常的返回指令是什么? 答;SUBS PC, LR, #43什么类型的异常优先级最高?RESET异常4什么指令可以放在中断向量表跳转指令(B Lable) LDR指令(LDR PC,Lable地址)5ARM 中断控制器有什么作用?ARM 核只有两个外部中断输入信号nFIQ和nIRQ。但对于一个系统来说,中断源可能多达几十个。为此,在系统集成时,一般都会有一个中断控制器来处理异常信号。这时候用户程序可能存在多个IRQ/FIQ的中断处理函数。为了使从向量表开始的跳转始终能找到正确的处理函数入口,需要设置处理机制和方法。不同的中断控制器处理方法不同。6编程实现

10、按键 K3 的中断检测,当按键按下时打印相应信息。#include exynos_4412.huart.h/* 中断处理函数 */void do_irq() int irq_num; /* 读中断号 */ irq_num = CPU0.ICCIAR & 0x3ff; /* 判断是哪个中断发生了 */ switch (irq_num) /case 57: case 58: /key3按下了 /* 清中断挂起位*/ EXT_INT41_PEND = 0x4; printf(The KEY3 is pressed!n); break; /case 59: /case 60: default: /*

11、把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,可以响应下一个中断 */ CPU0.ICCEOIR = CPU0.ICCEOIR & (0x3ff 0) | irq_num;void interrupt_init() /* 1. 配置GPX1_2引脚作为中断功能 */ GPX1.CON = GPX1.CON & (0xf 8) | (0xf 8); /* 2. 设置中断的触发方式-下降沿触发 */ EXT_INT41_CON = EXT_INT41_CON & (0x7 8) | (0x2 /* 3. 打开GPIO控制器上的使能开关,让中断能到达GIC */ EXT_

12、INT41_MASK = EXT_INT41_MASK & (0x1 2); /*GIC*/ /* 4. 打开58号中断在GIC中对应的开关 */ ICDISER.ICDISER1 = ICDISER.ICDISER1 | (0x1 26); /* 5. 把58号中断分发给CPU0来处理 */ ICDIPTR.ICDIPTR14 = ICDIPTR.ICDIPTR14 & (0xff 16) | (0x1 16); /* 6. 打开分发使能的总开关,让58号中断能到达CPU接口 */ ICDDCR = ICDDCR | (0x1 0); /* 7. 打开CPU接口到达所连接的处理器的总开关 *

13、/ CPU0.ICCICR = CPU0.ICCICR | (0x1 /* 8. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */ CPU0.ICCPMR = CPU0.ICCPMR & 0) | (0xff int main() /初始化按键中断 interrupt_init(); /初始化串口 uart_init(); while(1); return 0;第七章1串行通信与并行通信的概念是什么?串行通信是指计算机与 I/O 设备之间数据传输的各位是按顺序依次一位接一位进行传送。并行通信是指计算机与 I/O 设备之间通过多条传输线交换数据,数据的各位同时进行传送。2同

14、步通信与异步通信的概念及区别是什么?概念:异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符部的位与位之间都同步。区别:异步通信:(1)以字符为单位传送信息。(2)相邻两字符间的间隔是任意长。(3)因为一个字符中的波特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以。(4)异步方式特点就是:字符间异步,字符部各位同步。同步通信: (1)以数据块为单位传送信息。(2)在一个数据块(信息帧),字符与字符间无间隔。(3)因为一次传输的数据块中包含的数据较多,所以接收时钟与发

15、送时钟严格同步,通常要有同步时钟。3RS-232C 串口通信接口规是什么?略,参照本书7.1.7节 4在 Exynos4412 串口控制器中,哪个寄存器用来设置串口波特率?UBRDIVn和UFRACVALn第八章1PWM 输出波形的特点是什么?若令频率不变,直接改变脉冲的宽度,亦即控制开关元件的导通时间;比如现在是高电平导通,那么高电平时间越长,低电平时间越短,导通时间就长;否则就越短。2编程实现输出占空比为 21、波形周期为 9ms 的 PWM 波形。 /* 1. 配置GPD0_0引脚作为PWM的输出功能 */ GPD0.CON = GPD0.CON & 0) | (0x2 /* 2. 设置

16、一级分频系数和二级分频系数 ,周期为1us */ PWM.TCFG0 = PWM.TCFG0 & 0) | (99 PWM.TCFG1 = PWM.TCFG1 & 0); /* 3. 设置PWM输出脉冲的周期和占空比 */ PWM.TCNTB0 = 9000; PWM.TCMPB0 = 3000; /* 4. 打开手动更新,更新TCNTB的值到递减计数器 */ PWM.TCON = PWM.TCON | (1 1); /* 5. 关闭手动更新,打开自动重装载功能 */ 3);/* 6.将手动装载关闭*/ PWM.TCON = PWM.TCON & (1 1); /* 7. 开启PWM */ P

17、WM.TCON |= (0x10);第九章1在控制系统中为何要加入看门狗功能?检测程序的正常运行,当程序跑死后,看门狗产生一个强制系统复位。这样可以使程序重新运行,减小程序跑死的危害。2编程实现看门狗定时器作为普通 16 为定时器功能,定时 1s 循环打印信息。 (0x3ff case 75: /1S定时时间到 /* 清中断 */ WDT.WTCLRINT = 1; ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 11);The WDT_Timer 1S! /* 1. 打开75号中断在GIC中对应的开关 */ ICDISER.ICDISER2 = ICDI

18、SER.ICDISER2 | (0x1 /* 2. 把75号中断分发给CPU0来处理 */ ICDIPTR.ICDIPTR18 = ICDIPTR.ICDIPTR18 & 24) | (0x1 24); /* 3. 打开分发使能的总开关,让75号中断能到达CPU接口 */ /* 4. 打开CPU接口到达所连接的处理器的总开关 */ /* 5. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */void wdt_init(void) /*1.设置一级预分频值 = 100000000 / (249 + 1) = 400000HZ*/ WDT.WTCON = WDT.WTCON

19、| (249 /*2.设置二级预分频值 = 400000 / 128 = 3125HZ*/ WDT.WTCON = WDT.WTCON | (0x3 /*3.禁止看门狗定时器复位功能*/ WDT.WTCON = WDT.WTCON & (0x1); /*4.使能看门狗定时器能够中断信号*/ WDT.WTCON = WDT.WTCON | (0x1 2); /*5.给递减计数器赋初值 喂狗*/ WDT.WTDAT = 3125; WDT.WTCNT = 3125; /*6.打开看门狗定时器*/ WDT.WTCON = WDT.WTCON | (1 5);void main(void) wdt_i

20、nit(); while(1)3编程实现 1s 不对看门狗实现喂狗操作,看门狗会自动复位。 unsigned int i = 0; /*3.使能看门狗定时器能够产生复位信号*/ WDT.WTCON = WDT.WTCON | 1; /*4.给递减计数器赋初值 喂狗*/ /*5.打开看门狗定时器*/ /*1s 不对看门狗实现喂狗操作,看门狗会自动复位*/第十章1编程实现 RTC 的定时中断功能。 case 77: RTCINTP = RTCINTP | 0x1; 13);The RTC-TIC INT! /* 1. 打开77号中断在GIC中对应的开关 */ /* 2. 把77号中断分发给CPU0来处理 */ ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & 8) | (0x1 RTCCON |= 0x1 8; TICCNT = 32768; while (1)2编程实现 RTC 定时器系统定时器功能。 case 76: /定时时间到 RTCINTP = RTCINTP | 0x2; 12);The RTC-timer INT! /* 把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1