《ARM嵌入式系统基础教程》复习_第1页
《ARM嵌入式系统基础教程》复习_第2页
《ARM嵌入式系统基础教程》复习_第3页
《ARM嵌入式系统基础教程》复习_第4页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、。嵌入式系统基础教程复习1. 什么是嵌入式系统?其特点有些什么?答: 嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 ”特点: 1)是专用的计算机系统,用于特定的任务;2)资源较少,可以裁减;3)功耗低,体积小,集成度高,成本低;4)使用实时操作系统;5)可靠性要求更高,具有系统测试和可靠性评估体系;6)运行环境差异大7)大部分程序固化在ROM中;8) 较长的生命周期;9)嵌入式微处理器通常包含专用调试电路2. 嵌入式系统的 BooTLoader 的功能是什么?答: BootLoader 是系统加电后、操作系统内核或用户

2、应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader ,为系统运行准备好软硬件环境。 )3.目前嵌入式操作系统有哪些?答: 1) C/OS-II 嵌入式操作系统内核;2) VxWorks 嵌入式实时操作系统;3) WinCE 操作系统; 4) Linux操作系统 ; 5) Symbian 操作系统4.构造嵌入式开发环境有哪几种形式?答: 1)交叉开发环境 ; 2)软件模拟环境; 3) 评估电路板5.嵌入式系统开发的基本流程

3、?答: 1)系统定义与需求分析;2)系统设计方案的初步确立;3)初步设计方案性价比评估与方案评审论证;4)完善初步方案、初步方案实施;5)软硬件集成测试;6)系统功能性能测试及可靠性测试。6. 什么是可编程片上系统?答:用可编程逻辑技术把整个系统放到一块硅片上, 称作可编程片上系统 SOPC。它是一种特殊的嵌入式系统, 首先它是 SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。7. 有时要使用 Thumb技术的原因答:( Thumb指令集是把32 位的 ARM指令集的一个子

4、集重新编码后形成的一个特殊的16 位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb 指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗, 小体积 , 低成本。8. ARM处理器的工作模式有哪几种?答: 1)正常用户模式( user );2)快速中断模式( fiq );3)普通中断模式( irq );4)操作系统保护模式(svc )或管理模式;5)数据访问中止模式(abt );6)处理未定义指令的未定义模式(und);7)运行特权级的操作系统任务的系统模式(sys )。9. 寄存器 R13,

5、 R14, R15 的专用功能各是什么?-可编辑修改 -。答: 1)寄存器R13保存堆栈指针 SP;2)寄存器R14用作子程序链接寄存器,也称为LR ,用以保存返回地址;3) R15( PC)用作程序计数器。10. 寄存器 CPSR, SPSR的功能各是什么?答: 1)CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。所有处理器模式下都可以访问当前的程序状态寄存器CPSR。2)在每种异常模式下都有一个对应的物理寄存器程序状态保存寄存器SPSR。当异常出现时, SPSR用于保存 CPSR的状态,以便异常返回后恢复异常发生时的工作状态。11.ARM的异常有哪几种,各进入何种

6、工作模式?他们退出各采用什么指令?答: 1)复位( Reset )异常(管理模式) ;2)未定义指令( undefined instruction)异常(未定义模式) ;3)软件中断( SWI)异常(管理模式) ;4)指令预取中止(Prefect Abort )异常(中止模式) ;5)数据访问中止(Data Abort )(中止模式);6)快速中断请求(FIQ)( FIQ 模式);7)外部中断请求(IRQ)( IRQ 模式)。异常返回指令: 1) SWI,未定义的返回:MOVS PC,R14; 2) IRQ,FIQ, 预取中止的返回: SUBS PC,R14,#4; 3)数据中止返回并重新存取

7、:SUBS PC,R14,#8异常中断的优先级: 复位(最高优先级) -> 数据异常中止 ->FIQ-> IRQ-> 预取指异常中止 ->SWI->未定义指令(包括缺协处理器) 。12.什么是小端和大端存储器组织?答:1) 小端存储器组织是较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址(同同小)。2) 大端存储器组织是较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址(正反大)。13. 什么是数据的边界对齐?答:默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类

8、型是 n 个字节的,那么该数据类型就按n 字节对齐。14. ARM核现在有哪几种?答: ARM7、 ARM9、 ARM9E、ARM10E,、SecurCore 、 ARM1115. ARM的寻址方式有哪些?各写一条说明。答: 1)立即寻址( 1) ADDR0 , R0, 1/*R0 R0 1*/R0=R0+1( 2) ADDR0, R0, 0x3f/*R0 R0 0x3f*/R0=R0+0x3f2)寄存器寻址ADDR0, R1, R2/*R0 R1 R2*/R0=R1+R23)寄存器间接寻址( 1) LDRR0 , R1/*R0 R1*/;( 2) STRR0 , R1/*R1R0*/ ;4)

9、基址加偏址寻址 (1) LDR R0, R1 , 4; R0 R1 4( 2) LDR R0,R1 , 4 !; R0 R14 、R1R14( 3) LDR R0,R1 , 4; R0 R1 、 R1R1 45)堆栈寻址(1) STMFD SP! R1-R7,LR;( 2) LDMFD SP! R1-R7,LR;6)块拷贝寻址( 1) LDMIA R0!, R2-R9;( 2) STMIA R1,R2,R9;7 )相对寻址16. 在 ARM的立即寻址方式下其立即数如何在指令编码中表示?答:在 ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8 位的常数循环右移偶

10、数位而间接得到。其中循环右移的位数由一个4 位二进制的两倍表示,如果立即数记作<immediate> , 8 位-可编辑修改 -。常数记作 immed_8,4 位的循环右移值记作 rotate_imm ,有效的立即数是由一个 8 位的立即数循环右移偶数位得到。因此有效立即数 immediate 可以表示成: <immediate>=immed_8 循环右移( 2× rotate_imm )17. 指令 ADR, ADRL、 LDR、 NOP是如何处理地址值读入到寄存器中的?答: ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR 伪指令通常被替换成一条

11、ADD指令或 SUB指令来实现该ADR指令的功能。而ADRL伪指令与ADR指令的最大不同之处是, 它可以读取更大范围内的地址, 而且被编译器替换成2 条数据处理指令。LDR将一个 32 位的立即数或者一个地址值读取到寄存器中。大范围的地址读取。NOP在汇编时将被替换成ARM中的空操作。18.指令 LDR R1,=0xFFF 是如何将立即数0xfff读入到 R1 的?答:由于需要读取的寄存器的数据超过了MOV及 MVN指令可操作的范围, 编译器将该常数放在数据缓冲区中,同时用一条基于PC的 LDR指令读取该常数。LDR R1, PC, offset_to_LPOOL.LTORG ;声明数据缓冲池

12、LPOOL DCD OxFFF; OxFFF 放在数据缓冲池中。19. 如何在 c 语言程序中内嵌汇编?答:内嵌的汇编指令包括大部分的 ARM指令和 Thumb指令,但是不能直接引用 C 的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。20. 如何在汇编语言程序访问 C 语言的全局变量?答:汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。通过使用IMPORT关键词引人全局变量,并利用 LDR和 STR指令根据全局变量的地址可以访问它们。对于不同类型的变量,需要采用不同选项的LDR和 STR指令,如下所示:1) unsigned charLDRB/

13、STRB;2) unsigned short LDRH/STRH;3) unsigned int LDR/STR;4) char LDRSB/STRSB;5) Short LDRSH/STRSH21.在 C 语言程序如何调用汇编语言程序?答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在汇编程序中需要使用 EXPORT伪操作来声明,使得本程序可以被其它程序调用。同时,在C程序调用该汇编程序之前需要在C 语言程序中使用 extern关键词来声明该汇编程序。22.汇编语言程序调用C 语言程序?答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在 C 程序中

14、不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该 C 程序。在汇编程序中通过BL 指令来调用子程序。23. 在嵌入式 C 语言程序设计中为提高程序效率的相关设计技巧。答: 1)变量定义; 2)参数传递; 3)循环条件; 4)以空间换时间;5)数学方法解决问题; 6)使用位操作; 7)嵌入汇编。24.Linux操作系统的内核、文件系统、编程接口等。答: Linux 的内核也有很多种,例如普通的Linux 内核、 uClinux内核、 RTLinux 内核等25. 嵌入式 Linux 操作系统的特点。答:广泛的硬件

15、支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制,26.Windows CE 操作系统及其特点。答: Windows CE是一个 32 位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:一、 CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能。二、 CE具有便于携带的优点,可以运行于多种微处理器上三、 CE拥有很好的电源管理系统,能延长移动设备的电池寿命-可编辑修改 -。四、 CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。* 程序解释AREA COPYBS,C

16、ODE,READONLY;定义一个代码段ENTRY;程序入口LDR RO,=SRC;取得原数据表的表头LDR R1,=DST;取得目标数据表的表头MOV R2,#20; R4 作为循环控制BCOPYMOVS R3,R2,LSR,#3; R3=R2 <<3 逻辑右移3 位BEQ CWORD;若 Z=1, 跳转到 CWORDOCOPYLDMIA R0!,R4-R11;加载 R0 指向的地址上的多字数据,保存到R4R11中, R0 值更新STMIA R1!,R4-R11;将 R4-R11 的数据存储到R1 指向的地址上,R1 值更新SUBS R3,R3,#1; R3=R3-1BNE OC

17、OPY;若 Z=0, 跳转到 OCOPYCWORDAND R2,R2,#7; R2=R2&7BEQ STOP;若 Z=1,跳转到STOPWCOPYLDR R3,R0,#4;将 R3 中的字数据读入以R0 为地址的存储器中,并将新地址R0+4 写入 R1STR R3,R1,#4;将 R3 中的字数据写入以R1为地址的存储器中,并将新地址R1+4 写入 R1SUBS R2,R2,#1; R2=R2-1BNE WCOPY;若 Z=0, 跳转到 WCOPYSTOP在程序中常常需要根据一定的参数选择执行不同的子程序。跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移

18、量。在本例中R3 寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址) 。 R0寄存器的值用于选择不同的子程序;当R0 为 0 时,选择的是子程序DoAdd;当 R0 为 1 时,选择的是子程序DoSub。在 ADS编译环境程序如下:AREA Jump, CODE, READONLY;设置本程序的名称及属性NUM EQU 2;跳转表中的子程序个数ENTRY;程序执行的入口点StartMOV R0,#0;设置 3 个参数, R0选择调用哪个子程序MOVR1,#3; R1 为子程序要用的参数MOVR2,#2; R2 为子程序要用的参数BLFunc;调用子程序Func,进行算术运算StopMOV R0 ,#0x18;本条与下条指令的作用是参数传递LDRR1,=&20026SWI0x123456;将 CPU的控制权交给调试器FuncCMP R0, #NUM;判断 R0 是否在有效范围之内MOVHS PC, LR;如果超出范围则程序返回ADRR3, JTable;读取跳转表的基地址-

温馨提示

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

评论

0/150

提交评论