ARM复习重点汇编_第1页
ARM复习重点汇编_第2页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、1. 嵌入到对象系统中的专用计算机应用系统称之为嵌入式系统,有3个特点:嵌入性,内含计算机,专用性 以应用为中心,以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统2. 名称含义:MCU 微控制器、SoC 片上系统、DSP:嵌入式数字信 号处理器、任务:线程,是一个简单的程序、 RTOS 实时操作系统; 调度:决定该轮到哪个任务运行了3. 常用的嵌入式操作系统有哪些?嵌入式 Linux 、Win CE、VxWorks 卩 C/OS-II4. ARM7 艮据其编址方式来说是冯诺依曼结构,根据其指令集来说是RISC 结构操作系统内核:多任务系

2、统中,内核负责为每个任务分配CPU 时间,并且负责任务之间的通信实时操作系统的特点: 异步的事件响应, 切换时间和中断延迟时间确定,优先级中断和调度,抢占式调度,内存锁定,连续文件,同步5.ARM是一家知识产权供应商,他不制造具体的芯片常用的ARM内核:ARM7ARM9ARM10ARM11cortex-m3、cortex-A8、cortex-R46. ARM7 是冯诺依曼结构的计算机,其特点是:程序存储器、数据存 储器、I0 统一编排地址7. 大端存储:数据的高字节存放在低地址中;小端存储:数据的高字 节存放在高地址中8. ARM 的立即数必须满足 8 位图#, 0 x 表十六进制数值9. A

3、RM 有 2 个状态:ARM 犬态、Thumb 犬态;处理器模式:用户模式usr,特权:系统模式 sys异常:管理模式 svc,中止模式 abt,未定义模式 und, IRQ 中断模式 irq , FIQ 快速中断模式 fiq ;其中用户模式为非特权模式10. ARM 既是指一种芯片内核也是一个公司的名称,ARM 公司不生产芯 片只出售知识产权,教材中的 LPC2000 系列芯片由 NXP(恩智浦)公 司生产属于 ARM 衲核芯片11. ARM7 有 3 级流水线,哪 3 级?取指,译码,执行12. PC 指向的是正在取指的指令,当前执行的指令为PC-8( ARM 态)。13. 字与半字对齐的

4、特点:半字对齐: bit0=0 ,其他位为任意位;字 对齐:bit1 =0 、bit0=0 ,其他位为任意值14. ARM 的异常(只要正常的程序流被暂时中止,处理器就进入异常 模式)有哪几种?它们的优先级(退出指令)返回地址:复位(无) ,数据中止( SUBSPC,R14_abt,#8) R14-8, FIQ ( SUBSPC,R1 4_fiq,#4 ) R14-4, IRQ( SUBS PC,R14_irq,#4) R14-4,预取指中止 (SUBSDC,R14_abt,#4) R14-4,未定义指令 (M0VPC,R14_und R14,软件中断 SWI M0VPC,R14_svc)R1

5、4;各进入何种工作模式:管理,中止,快速中断,中断,中止,未 定义,管理进入异常时,内核自动做:PC-LR CPSR 相应异常模式下的 SPSR 设置CPSR相应的异常模式、相应异常处理程序的中断入口向量地 址-PCARM7TDM 发生中断异常时,会进入中断模式,退出该异常的返回指令是 SUBS PC, R14_abt,#4ARM7TDM 发生数据终止异常时,会进入中止模式,退出该异常的返回指令是 SUBS PC, R14_abt,#815.37 个寄存器:31 个通用 32 位寄存器:R0-R15、R13_scv、R14_svc;R8-R14_fiq6 个状态寄存器: CPSR, SPSR_

6、svc, SPSR_abt,und两者的关系:每种处理器模式都有一组相应的寄存器组 不同异常返回地址的附加偏移量不同16. ARM 的地址空间:232个 8 位字节;ARM 立即数的格式:前缀#号表示立即数, 0 x 表示十六进制数值指令条件码:可实现高效的逻辑操作,提高代码执行效率;状态寄存器读写指令的作用:改写状态寄存器17. 什么是异常向量表?在发生异常后,为了让 ARM 内核可以转移到对应的中断服务程序上, 必须在异常入口地址处放置一些跳转指令, 这些指令组成的一段代码 叫;异常向量表一般在什么地方?ARM 地址开始处;异常向量表本质是 什么? 8条实现跳转指令;异常向量表和其之后的跳

7、转地址 各占多少 个字节?各占32 个字节(总 64 字节)18. ARM7TDM 处理器进入异常和退出异常的过程:哪些是内核自动完 成的:进入异常:将异常处理程序的返回地址保存到相应异常模式下的 LR 将CPSF 的当前值保存到相应异常模式下的 SPSR 设置 CPSR相应 的异常模式设置 PC 为相应异常处理程序的中断入口向量地址,跳转到相应的异 常中断处理程序执行-需要用户自己编写:退出异常:返回到发生异常中断的指令的下一 条指令处执行将 SPSF 的值复制会 CPSR 在入口位置位的中断禁止控制位清零19. 寄存器 R13, R14, R 1 5 的专用功能各是什么?R13(sp):堆

8、栈指针,用于保存堆栈的出入口处地址、保存待使用寄 存器的内容R14( LR):链接寄存器:当使用 BL 指令调用子程序时,返回地址将 自动存入 R14 中;当发生异常时,将 R4 对应的异常模式设置为异常 返回地址;其他时候作为通用寄存器20. ARM 指令有 8 种寻址方式:寄存器寻址,立即寻址,寄存器移位 寻址,寄存器间接寻址,基址寻址,多寄存器寻址,堆栈寻址,相对 寻址5 种移位方式: 逻辑左移 LSL, 逻辑右移 LSR 算术右移 ASR 循环右 移 ROR带扩展的循环右移 RRX21. ARM 指令的条件码有 16 个,默认条件码是 AL22. MRS RQ CPSR 将 CPSR

9、状态寄存器读取,保存到 R0 中BIC R0,R0, #0 x80;清除 CPSR 勺 I 位 MSR CPSR_c,R0: CPSR=RQsubs pc lr #4; movs pc lr ; s 是什么意思(如果指令带 S 后缀,则指令会修改条件代码标志)23. Boot Loader 是在嵌入式系统复位启动时,操作系统内核运行前, 执行的一段程序。通过 Boot Loader ,初始化硬件设备,建立内存和 I/O 空间映射图,为最终加载操作系统内核调整好适当的系统软硬件 环境。24. 什么是启动代码, 启动代码的作用 从系统上电, 到正式运行用户的 main函数之前,要运行一段代码, 这

10、段代码就被称为启动代码; 大部分由汇编指令构成, 它实现向量表 定义、 堆栈初始化、 系统变量初始化、 中断系统初始化、 I/O 初始化、 外围初始化、地址重映射等操作25. ARM 复位后 PC 值为 OxO,ARN 内核处于 arm 状态, 进入是 Supervisor(管理)模式 ,最先执行的是 Boot Block 的代码?26. ARM 的存储器组 BankO 配置成 8 位宽的存储器组需要使用 A0 A1; 16位宽则不需要 A0; 32 位宽则 A0、A1 都不需要,EMC 模块中的 BLS0BLS为字节定位选择信号。RBLE 为字节定位使能控制位27. 存储器重映射:为了增加系

11、统的灵活性,系统中有部分存储单元可以同时出现在不同的地址上,这称为;LPC2000 系列 ARM 微控制器中,异常向量表、 Boot block 部分需要进行存储器重映射28. 什么 RS232C 电平,其逻辑 0与 1的电平范围是多少 标准逻辑“ 1”时对应-5 到-15v 标准逻辑“ 0”对应+5 到+ 15v 定时器的定时时间与定时器计数频率的计算 M=fcclk/fosc GPIO 的设置:通用输入/输出接口PWM 脉宽调制器1.Void Time0Init(void) T0PR = N ;T0MCR = 0 x03;T0MR0 = Fpclk/ (N+1);T0TCR = 0 x03

12、;T0TCR = 0 x01;PINSEL0 = 0 x00000000; IO0DIR=0 x80;VICIntSelect = VICIntSelect&(14);VICVectCntl0 = 0 x20 | 4;VICVectAddr0 = (uint32)Timer0_ISR;VICIntEnable = 0 x10;2.int main(void)IRQEnable();PINSEL1 |= 38;IO0DIR |= 17;VICIntSelect = 0 x00000000;VICVectCntl0 = 0 x20|17;VICVectAddr0 = (int)IRQ_Ei

13、nt3;EXTINT = 13;EXTMODE = 13;EXTPOLAR = 0 x00;VICIntEnable = 117;while(1);return(0);3.#define BufferLength 20 uint8 bufferstringBufferLength; uint8 password= hello world/n/r; uint8 rightstring = hello arm/n/r;uint8 wrongstring = wrong password!/n/r; uint8 getchar ()while(U0LSR & 0 x1) = 0);retur

14、n U0RBR;void getstring(unit8 *string,uint32 length)while(length- )*string+ = getchar();if(*string = /r)break;void SendByte(uint8 data)U0THR = data;while( (U0LSR&0 x40)=0 );void SendStr(uint8 const *str) while(1)if( *str = 0 ) break; SendByte(*str+);void UART0_Init(uint32 baud) uint16 Fdiv;U0LCR

15、= 0 x83;Fdiv = (Fpclk / 16) / baud;U0DLM = Fdiv / 256;U0DLL = Fdiv % 256;U0LCR = 0 x03;uint32 stringcmp(uint8 *str1,uint8 *str2) uint32 i;while(str1i)if(str1i!=str2i) break;else i+;return str1i -str2i;/strcmp 函数不能够使用,要自己写一个int main(void)PINSEL0 = 0 x00000005;UART0_Init(115200);while(1) getstring(bufferstring,Bufferlength);if(stringcmp(bufferstring,password) = 0) sendstring(rightstring);else sendstring(wrongstring);return(0);. PINSEL1= 0 x01 10;IO0DIR = P0_22;IO0CLR = P0_22;PWMPR =0 x00;PWMMCR= 0 x02;PWMMR0 = CYCLE_DATA;PWMMR5 = DUTY_CYCLE_DATA;PWMLER = 1 0 | 1 5;PWMPCR = 1 400000) fi

温馨提示

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

评论

0/150

提交评论