




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 嵌入式系统开发的基本流程? 答:1)系统定义与需求分析;2
3、)系统设计方案的初步确立;3)初步设计方案性价比评估与方案评审论证;4)完善初步方案、初步方案实施;5)软硬件集成测试;6)系统功能性能测试及可靠性测试。6. 什么是可编程片上系统? 答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC.它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。7. 有时要使用Thumb技术的原因答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性
4、能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。8. ARM处理器的工作模式有哪几种? 答:1)正常用户模式(usr);2)快速中断模式(fiq);3)普通中断模式(irq);4)操作系统保护模式(svc)或 管理模式 ;5)数据访问中止模式(abt);6)处理未定义指令的未定义模式(und);7)运行特权级的操作系统任务的系统模式(sys)。9. 寄存器R13,R14,R15的专用功能各是什么? 答:1)寄存器R13保存堆栈指针SP;2
5、)寄存器R14用作子程序链接寄存器,也称为LR ,用以保存返回地址;3)R15(PC)用作程序计数器。10. 寄存器CPSR,SPSR的功能各是什么?答:1)CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。所有处理器模式下都可以访问当前的程序状态寄存器CPSR。2) 在每种异常模式下都有一个对应的物理寄存器程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存 CPSR的状态,以便异常返回后恢复异常发生时的工作状态。11. ARM的异常有哪几种,各进入何种工作模式?他们退出各采用什么指令?答:1)复位(Reset)异常(管理模式);2)未定义指令(undefine
6、d instruction)异常(未定义模式);3)软件中断(SWI)异常(管理模式);4)指令预取中止(Prefech Abort)异常(中止模式);5)数据访问中止(Data Abort)(中止模式);6)快速中断请求(FIQ)(FIQ模式);7)外部中断请求(IRQ)(IRQ模式)。异常返回指令:1)SWI,未定义的返回:MOVS PC,R14;2)IRQ,FIQ,预取中止的返回:SUBS PC,R14,#4;3)数据中止返回并重新存取:SUBS PC,R14,#8 异常中断的优先级:复位(最高优先级)-> 数据异常中止->FIQ -> IRQ->预取指异常中止-
7、>SWI->未定义指令(包括缺协处理器)。12. 什么是小端和大端存储器组织?答:1)小端存储器组织是较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址(同同小)。 2) 大端存储器组织是较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址(正反大)。13. 什么是数据的边界对齐? 答:默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。14. ARM核现在有哪几种? 答:ARM7、 ARM9、ARM9E 、ARM10E,、SecurCore 、A
8、RM1115. ARM的寻址方式有哪些?各写一条说明。答:1)立即寻址 (1) ADD R0,R0,1/*R0R01*/ (2)ADDR0,R0,0x3f /*R0R00x3f*/;2)寄存器寻址(ADDR0,R1,R2/*R0R1R2*/);3)寄存器间接寻址 (1)、LDR R0,R1/*R0R1*/;(2)STR R0,R1/*R1R0*/;4)基址加偏址寻址(1)、LDR R0,R1,4;R0R14;(2)、LDR R0,R1,4!;R0R14、R1R14;(3)、LDR R0,R1 ,4;R0R1、R1R14 5)堆栈寻址(1)、 STMFD SP! R1-R7,LR;(2)、LDM
9、FD SP! R1-R7,LR;6)块拷贝寻址(1)、LDMIA R0!, R2-R9;(2)、STMIA R1,R2,R9; 7)相对寻址16. 在ARM的立即寻址方式下其立即数如何在指令编码中表示? 答:在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作<immediate>,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。因此有效立即数immediate可以表示成:<im
10、mediate>=immed_8循环右移(2×rotate_imm)17. 指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的? 答:ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD指令或SUB指令来实现该ADR指令的功能。而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令。LDR将一个32位的立即数或者一个地址值读取到寄存器中。大范围的地址读取。NOP在汇编时将被替换成ARM中的空操作。18. 指令LDR R1,=0xFFF是如何将立即数0xfff读入到R1的?答
11、:由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。LDR R1,PC,offset_to_LPOOL.LTORG ;声明数据缓冲池 LPOOL DCD OxFFF; OxFFF放在数据缓冲池中。19. 如何在c语言程序中内嵌汇编? 答:内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。 20. 如何在汇编语言程序访问C语言的全局变量?答:汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。通过
12、使用IMPORT关键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:1)unsigned charLDRB/STRB;2)unsigned shortLDRH/STRH;3)unsigned intLDR/STR;4)charLDRSB/STRSB;5)ShortLDRSH/STRSH 21. 在C语言程序如何调用汇编语言程序? 答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。同时,在C程序调用该汇编程序之
13、前需要在C语言程序中使用extern关键词来声明该汇编程序。 22. 汇编语言程序调用C语言程序? 答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。在汇编程序中通过BL指令来调用子程序。 23. 在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。 答:1)变量定义;2)参数传递;3)循环条件;4)以空间换时间;5)数学方法解决问题;6)使用位操作;7)嵌入汇编。24.Linux操作系统的内核、文件系统、编程接口等。P19
14、2 P201答:Linux的内核也有很多种,例如普通的Linux内核、uClinux内核、RTLinux内核等25.嵌入式Linux操作系统的特点。答:广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制,26.Windows CE操作系统及其特点。答:Windows CE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点: 一、CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能。 二、CE具有便于携带的优点,可以运行于多种微处理器上 三、CE拥有很好的电源管理系统,能延长移动设备的电池寿命
15、四、CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。程序解释AREA COPYBS,CODE,READONLY ;定义一个代码段ENTRY ;程序入口 LDR RO,=SRC ;取得原数据表的表头 LDR R1,=DST ;取得目标数据表的表头 MOV R2,#20 ;R4作为循环控制BCOPY MOVS R3,R2,LSR,#3 ;R3=R2 <<3 逻辑右移3位 BEQ CWORD ;若Z=1,跳转到CWORDOCOPY LDMIA R0!,R4-R11 ;加载R0指向的地址上的多字数据,保存到R4R11中,R0值更新 STMIA R
16、1!,R4-R11 ;将R4-R11的数据存储到R1指向的地址上,R1值更新 SUBS R3,R3,#1 ;R3=R3-1 BNE OCOPY ;若Z=0,跳转到OCOPYCWORD AND R2,R2,#7 ;R2=R2&7 BEQ STOP ;若Z=1,跳转到STOPWCOPY LDR R3,R0,#4 ;将R3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写入R1 STR R3,R1,#4 ;将R3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1 SUBS R2,R2,#1 ;R2=R2-1 BNE WCOPY ;若Z=0,跳转到WCOPYSTOP 在程
17、序中常常需要根据一定的参数选择执行不同的子程序。跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。在本例中R3寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。R0寄存器的值用于选择不同的子程序;当R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSub。在ADS编译环境程序如下:AREA Jump,CODE,READONLY ;设置本程序的名称及属性NUM EQU 2 ;跳转表中的子程序个数 ENTRY ;程序执行的入口点Start MOV R0,#0 ;设置3个参数,R0选择调用哪个子程序 MOV R1,#3
18、;R1为子程序要用的参数 MOV R2,#2 ;R2为子程序要用的参数 BL Func ;调用子程序Func,进行算术运算Stop MOV R0 ,#0x18 ;本条与下条指令的作用是参数传递 LDR R1,=&20026 SWI 0x123456 ;将CPU的控制权交给调试器 Func CMP R0,#NUM ;判断R0是否在有效范围之内 MOVHS PC,LR ;如果超出范围则程序返回 ADR R3,JTable ;读取跳转表的基地址 LDR PC,【R3,R0,LSL #2】;根据参数R0的值跳转到相应的子程序JTable DCD DoAdd ;当参数R0为0时上面的代码将选择D
19、oAdd DCD DoSub ;当参数R0为1时上面的代码将选择DoSubDoAdd ADD R0,R1,R2 ;子程序DoAdd执行加法操作 MOV PC,LR ;子程序返回DoSub SUB R0,R1,R2 ;子程序DoSub执行减法操作 MOV PC,LR ;子程序返回END ;结束汇编嵌入式系统基础复习题一、简答题1、 什么是嵌入式系统?嵌入到对象体系中的专用计算机应用系统。2、 嵌入式系统的3个基本特点?嵌入性、专用性、计算机3、 什么是嵌入式处理器,嵌入式处理器可以分为几大类?嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。分为嵌入式微处理器、嵌入式微控制器、嵌入式DS
20、P处理器、嵌入式片上系统(SOC)。4、 广泛使用的三种类型的操作系统?多道批处理操作系统、分时操作系统以及实时操作系统。5、 常见的4种嵌入式操作系统?嵌入式Linux、Win CE、VxWorks、C/OS-II6、 ARM是什么样的公司?它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。7、 什么是RISC?什么是CISC?RISC是精简指令集计算机的缩写。CISC是复杂指令集计算机的缩写。8、 举出2个ARM公司当前应用比较多的ARM处理器核?ARM7系列
21、、ARM9系列、ARM10系列、ARM11系列、intel的Xscale系列和MPCore系列。9、 ARM7TDMI中的T、D、S、I分别表示什么含义?T:支持高密度16位的Thumb指令集D:支持片上调试S:ARM7TDMI 的可综合(synthesizable)版本(软核)I:支持EmbededICE观察硬件M:支持64位乘法10、 ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?ARM处理器使用冯.诺依曼结构使用单个平面的232个8位字节地址空间。地址空间可以看作是包含230个32位字,或231个16位半字。11、 ARM7TDMI处理器采用几级流水线处理,使用何种存
22、储器编址方式?ARM7TDMI处理器采用三级流水线。ARM处理器将存储器看做是一个从0开始的线性递增的字节集合。12、 ARM处理器模式和ARM处理器状态有什么区别?ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。ARM处理器状态指ARM状态和Thumb状态ARM两种处理器状态下均有上述7种模式。13、 ARM7TDMI内部寄存器特点?分别为31个通用32位寄存器和6个状态寄存器。它们不能在同一使劲同时被访问,对其的访问取决于处理器状态和处理器模式。14、 ARM7TDMI有几种寻址方式?寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址
23、、多寄存器寻址、堆栈寻址、相对寻址。15、 ARM7的内部寄存器R13、R14、R15的主要功能和作用?R13:堆栈指针,用于保存堆栈的出入口处地址、保存待使用寄存器的内容R14:连接寄存器,当使用BL指令调用子程序时,返回地址将自动存入14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址;其他时候作为通用寄存器。 R15:程序寄存器,总是指向正在“取指”的指令16、 请说明MOV指令与LDR加载指令的区别和用途?LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器。LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外
24、围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。17、 LPC2000系列器件有几种常见的封装形式和其封装特点?常见的封装有64脚封装,144脚封装功耗低,有多个32位定时器,多达9个外部中断,16K字节静态RAM,1/128/256k字节片Flash存储器,128为宽度接口加速器,4路10位ADC或8路10位ADC(64脚和144脚封装),46或76112个GPIO(64脚和144脚封装)。18、 简要说明一下LPC2000系列器件片内存储器的特点?片内存储器分为片内Flash和片内静态RAM。片内Flash通过128位宽度的总线与ARM内核
25、相连,具有很高的速度,特有的存储器加速功能,可以将程序直接放在Flash上运行。SRAM支持8位、16位和32位的读写访问。19、 为什么要进行存储器重映射?存储器重映射是为了实现引导块和异常向量表地址的固定。重映射引导块,有利于用户调用其中的某些程序,增加代码的可移植性;异常向量表重映射为了能让ARM内核通过访问0x00000x003F地址访问到其他存储区域的向量表。20、 LPC2000系列ARM7微控制器对向量表有什么要求(向量表中的保留字)?向量表中有一个空隙以确保软件能与不同的ARM结构兼容;表中异常入口地址处放置的是跳转指令,已转向中断子程序。FIQ地址要放在向量表的最后;21、
26、ARM7微控制器内FLASH是多少位宽度的接口?它是通过哪个功能模块来提高FLASH的访问速度?FLASH是128位宽度的接口,通过存储器加速模块提高其访问速度。22、 FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;非向量IRQ支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。23、 LPC2000系列芯片共有几个外接中断输入?它们是FIQ,还是IRQ?共有4个外
27、接中断输入,它们既可以是IFQ也可以是IRQ。24、 LPC2000系列芯片常用的开发工具?ADS、IAR、JATG、ISP25、 什么是嵌入式处理器的最小系统?最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。26、 嵌入式处理器的最小系统包含那些基本电路?最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测试系统(可选)。基本电路包括:末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可选)、调试接口电路(可选)。二、问答题1、 ARM7TDMI支持哪几种指令集,各有什么特点?支持ARM指令集和Thumb指令集两种。ARM指令
28、集:指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的 。Thumb指令集:指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功能。保持ARM的大多数性能上的优势,是ARM指令集的子集。2、 ARM7TDMI有几种处理器模式,简单介绍该几种模式的工作特点?ARM7TDMI有7种处理器模式。用户模式:正常程序运行的工作模式,不能直接从用户模式切换到其它模式系统模式:用于支持操作系统的特权任务等,可以直接切换到其它模式快中断模式:用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ异常响应时,才进入此模式。中断模式:用于通用中断处理,只有在IRQ异常响应时,才进
29、入此模式。管理模式:供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进入此模式。中止模式:用于虚拟内存和/或存储器保护。未定义模式:支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。3、 什么是引导程序?什么是启动程序?两者有什么区别?引导程序是ARM微处理器在上电或复位后首先运行Boot Block中的一段代码;启动程序是在运行引导程序后,正式运行用户main函数之前,还需要运行一段代码引导程序由芯片厂商固化在芯片中,功能包括:判断运行哪个存储器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。启动
30、程序由用户添加,功能包括:向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化,地址重映射等操作。4、 简要描述LPC2000系列芯片内部GPIO的功能特点?(1) 可以独立控制每个GPIO口的方向;(2) 可以独立设置每个GPIO的输出状态;(3) 所有GPIO口在复位后默认位输入状态。5、 试说明LPC2000系列芯片的引脚设置寄存器PINSEL0、PINSEL1、PINSEL2的具体功能?PINSEL0控制引脚P0.0P0.15的连接状态,每两位控制一个引脚。PINSEL1控制引脚P0.16P0.31的连接状态,每两位控制一个引脚。PINSEL2控制P1端口和
31、P2端口。6、 试说明LPC2000系列芯片的存储器映射的结构特点?(看图回答问题4)(1)0GB向上为128KB或256KB的片内非易失性存储器;(2)1GB向上为16KB片内静态RAM;(3)2GB向下为Boot Block重映射;(4)3.5GB向上为VPB外设;(5)4GB向下为AHB外设。7、 试说明LPC2000系列芯片内部向量中断控制器(VIC)的功能特点?(看图回答问题5)(1) 可以管理最多32个中断请求,可将其编程为FIQ、向量IRQ或非向量IRQ;(2) 有16个向量IRQ中断;(3) 16个优先级,可动态分配优先级;(4) 可产生软件中断。8、 试说明LPC2000系列
32、芯片的向量中断和非向量中断的功能特点?向量中断支持16个向量IRQ中断;16个优先级;每个优先级指定一个服务程序入口地址。非向量中断支持1个非向量IRQ中断; 所有非向量IRQ的入口地址都相同。9、 试说明LPC2000系列芯片内部定时器的功能特点?(看图回答问题6)(1) 各含有一个可编程32位预分频器;(2) 具有4路捕获通道,当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生中断。(3) 有4个32位匹配寄存器,匹配时动作有3种:定时器继续工作,可选择产生中断;停止定时器,可选择中断;复位定时器,可选择中断(4) 有4个对应于匹配寄存器的外部输出,匹配时输出有4种:设置为低电平
33、;设置为高电平;翻转;无动作。10、 简要描述LPC2000系列芯片内部定时器的预分频功能,匹配功能,捕获功能?预分频功能:通过设置某个常量来控制pclk(定时器的时钟源)的分频。匹配功能:当定时器值等于预设的匹配值时,从引脚输出特定的信号。捕获功能:如果输入信号满足设定的要求,将触发捕获动作,将定时器的计数值保存到捕获寄存器中。11、 试说明LPC2000系列芯片内部都具有那些外设接口,及其特点?12、 试比较说明JATG工具和ISP工具的异同点?两者都可以将程序下载到开发板上。JATG通过计算机的并口和开发板的JATG口下载程序;ISP通过计算机的串口和开发板的UART0下载程序。三、看图
34、回答问题1、 下图是ARM7处理器的当前程序状态寄存器,请简单说明各位的功能。N:负标志位,运算结果的第31位值,记录标志设置的结果。Z:零标志位,如果标志设置操作的结果为0,则置位。C:进位标志位,记录无符号加法溢出,减法无错位,循环移位。V:溢出标志位,记录标志设置操作的有符号溢出。I:中断禁止标志位,置位时禁止IRQ中断,否则允许IRQ中断使能。F:中断禁止标志位,置位时禁止FIQ中断,否则允许FIQ中断使能。T:控制位,置位时处理器运行在Thumb状态下,清零时处理器运行在ARM状态下。M0M4:模式控制位,定义处理器的7中模式。其余位为保留位,留作将来使用。2、 下图是LPC2000
35、内部的时钟发生系统图,试对该图进行简单的描述说明。晶体振荡器为系统提供基本的时钟信号(Fosc);在复位或处理器从掉电模式唤醒时,唤醒定时器为输入的时钟信号做计数延时,使芯片内部有时间进行初始化;PLL把Fosc信号提高到一个符合用户需要的频率(Fcclk),用于CPU内核;VPB分频器用于把Fcclk信号降低到一个合适的Fpclk(也可以不降低),用于外设部件。3、 下图是ARM7系统内部的存储器加速模块(MAM)连接结构示意图,试针对该示意图说明MAM如何实现存储器加速功能。存储器加速模块中Flash存储器可以存放4个32位ARM指令或8个16位Thumb指令,它们被分成两组,轮番工作,及
36、时的为CPU提供需要的指令和数据,以防止CPU取指暂停。程序顺序执行时,一个Flash组包含当前正在取指的指令和包含该指令的整个Flash行,而另一个Flash组则包含或正在预取指下一个连续的代码行。程序出现分支时,在预取指缓存区中保存着将要执行的指令,在分支跟踪缓存区中保存着程序跳转后可执行到的指令。程序获取数据时,如果数据不在MAM的数据缓冲区,那么MAM会执行一次Flash读操作,把一个128位的数据行存入数据缓冲区,这样就加快了按顺序访问数据的速度。4、 下图是ARM7系统存储器映射图,试对该映射图进行简单的描述说明。(问答题6)5、 下图是ARM7系统中断向量控制器(VIC)内部结构
37、示意图,试说明VIC的功能特点。(问答题7)6、 下图是ARM7系统每个I/O端口的内部寄存器控制结构示意图,看图填写下表的寄存器功能说明内容。序号通用名称功能说明1IOPIN从该寄存器中可以读出引脚的当前状态,和方向模式无关2IOSET该寄存器控制引脚输出高电平,为1时高电平,为0无效3IODIR该寄存器单独控制每个IO口的方向,为1时输出,为0时输入4IOCLR该寄存器控制引脚输出低电平,为1时低电平为0无效7、 下图是ARM7系统内部的定时器结构示意图,试说明内部定时器的功能特点。(问答题9)四、计算题1、 设有一个基于LPC2114的系统,所使用的石英晶振为10MHz。请计算出最大的系
38、统时钟(Fcclk)频率为多少?此时PLL的M值和P值各为多少?请列出计算公式,并编写设置PLL的程序段。依题得,Fosc=10MHz因为Fcclk范围为10MHz60MHz,所以最大的系统所时钟Fcclk=60MHzM=Fcclk/Fosc=60/10=6因为Fcco范围为156MHz320MHz,P=Fcco/(2Fcclk)所以当Fcco取最小值时,P=156/(2*60)=1.3当Fcco取最大值时,P=320/(2*60)=2.67因为P的值必须是1、2、4、8中的一个,所以P=2uint8 PLLSet(uint32 Fcclk, uint32 Fosc, uint32 Fcco)
39、 uint8 i; uint32 plldat; i = (Fcco / Fcclk); / 计算PLL分频值,i的值为2P switch(i) / 检测参数是否合法 case 2: / 2P为2,P为1 plldat = (Fcclk / Fosc) - 1) | (0 << 5); / 设置M的值,实际写入M-1 break; case 4: / P为2 plldat = (Fcclk / Fosc) - 1) | (1 << 5); / 设置M的值,实际写入M-1 break; case 8: / P为4 plldat = (Fcclk / Fosc) - 1)
40、| (3 << 5); / 设置M的值,实际写入M-1 break; case 16: / P为4 plldat = (Fcclk / Fosc) - 1) | (3 << 5); / 设置M的值,实际写入M-1 break; default: / P的值不是1、2、4、8中的一个,不合法 return(FALSE); break; / 错误返回 PLLCON = 1;/ 使能PLL PLLCFG = plldat;/ 设置PLL分频值 PLLFEED = 0xaa;/ PLL馈送序列 PLLFEED = 0x55; while(PLLSTAT & (1 <
41、;< 10) = 0); / 等待PLL锁定 PLLCON = 3; / 连接PLL PLLFEED = 0xaa; / PLL馈送序列 PLLFEED = 0x55; return(TRUE); / 正确返回阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。看门狗定时器控制寄存器(WTCON)寄存器地 址读/写描 述初 始 值WTCON0x53000000读/写看门狗定控制寄存器0x8021WTCON的标识位WTCONBit描 述初 始 值Prescaler Value15:8预装比例值,有效范围值为02550x80Reserved7:6保留00Watchdog Timer5使能
42、和禁止看门狗定时器禁止看门狗定时器使能看门狗定时器0Clock Select4:3这两位决定时钟分频因素00:1/16 01:1/3210:1/64 11:1/12800Interrupt Generation2中断的禁止和使能0=禁止中断产生1=使能中断产生0Reserved1保留0ResetEnable/Disable0禁止很使能看门狗复位信号的输出1=看门狗复位信号使能0=看门狗复位信号禁止1看门狗定时器数据寄存器(WTDAT)寄 存 器地 址读/写描 述初 始 值WTDAT0x53000004读/写看门狗数据寄存器0x8000看门狗计数寄存器(WTCNT)寄 存 器地 址读/写描 述初
43、 始 值WTCNT0x53000008读/写看门狗计数器当前值0x8000#define rWTCON (*(volatile unsigned *)0x53000000) / 第1行#define rWTDAT (*(volatile unsigned *)0x53000004) / 第2行#define rWTCNT (*(volatile unsigned *)0x53000008) / 第3行void watchdog_test(void)rWTCON = (PCLK/1000000-1)<<8)|(3<<3)|(1<<2); / 第4行rWTDAT
44、 = 7812;/ 第5行rWTCNT = 7812; / 第6行rWTCON |=(1<<5); / 第7行第1-3 行:定义看门狗控制寄存器、数据寄存器和计数寄存器为rWTCON、rWTDAT和rWTCNT。第4 行:设置看门狗的预装比例值为1000000,分频因素为1/128,并使能中断。(6分)第5-6 行:对数据寄存器和计数寄存器赋值为7812。(2分)第7 行:启动看门狗。(2分)7、阅读以下S3C2410部分用户手册求:当PCLK 或 UCLK 为40 MHz时,串口的波特率为 bps ,串口的波特率为bps,相应的控制寄存器如何设置UART BAUD RATE DI
45、VISOR REGISTERThere are three UART baud rate divisor registers(寄存器)including UBRDIV0, UBRDIV1 and UBRDIV2 in the UARTblock(模块).The value stored in the baud rate divisor register (UBRDIVn), is used to determine the serial Tx/Rx clock rate(baud rate) as follows:UBRDIVn = (int)(PCLK / (bps x 16) ) 1 or
46、 UBRDIVn = (int)(UCLK / (bps x 16) ) 1Where, the divisor should be from 1 to (216-1) and UCLK should be smaller than PCLK.Register AddressR/WDescriptionReset ValueUBRDIV00x50000028R/W Baud rate divisor register 0UBRDIV10x50004028R/WBaud rate divisor register 1UBRDIV20x50008028R/WBaud rate divisor re
47、gister 2UBRDIVnBitDescriptionInitial StateUBRDIV 15:0Baud rate division value UBRDIVn >0答: 根据UBRDIVn = (int)(PCLK / (bps x 16) ) 1寄存器寄存器UBRDIV1=( int)(40000000/115200*16)-1=20=10100(B)任务控制块(TCB)的数据结构OS-TCB表示任务的状态。当任务的CPU控制权被枪战后,任务控制块用来保存该任务的状态。当任务重新获得CPU的控制权后,任务控制块能够保证任务从被中断的位置继续正确执行。 任务控制块提供了任务的
48、基本信息,如任务的执行状态、优先级和堆栈位置等。1.计算机中的两种典型体系结构是什么,各自的特点是什么?冯·诺依曼体系和哈佛体系结构 冯·诺依曼体系:1)数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。2)被早期大多数计算机所采用3)ARM7冯诺依曼体系结构简单,但速度较慢。取指不能同时取数据哈佛体系结构:1)程序存储器与数据存储器分开.2)提供了较大的存储器带宽,各自有自己的总线。3)适合于数字信号处理.4)大多数DSP都是哈佛结构.5)ARM9是哈佛结构6)取指和取数在同一周期进行,提高速度,改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用2.
49、在ARM系列中,ARM7, ARM9分别是什么体系结构。ARM7是冯·诺依曼体系结构 ARM9是哈佛体系结构3ARM7处理器,PXA270处理器分别采用几级流水线;ARM7采用的是3级流水线 PXA270采用的是7级流水线4. ARM处理器有几种工作状态,各自的特点。工作状态之间如何进行转换,异常响应时,处理器处于何种状态。答:ARM有两种工作状态:ARM状态,此时处理器执行32位的字对齐的ARM指令。Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令.在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且不影响处理器运行模式和相应寄存器中的内容。ARM指令集
50、和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在上电或复位后,应该处于ARM状态。执行BX跳转指令,将操作数的状态位(位0)设置为1时,可以使处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。执行BX跳转指令,将操作数的状态位(位0)设置为0时,可以使处理器从Thumb状态切换到ARM状态。此外,当处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。 THU
51、MB指令集在功能上只是ARM指令集的一个子集,某些功能只能在ARM状态下执行,如CPSR和协处理器的访问.进行异常响应时,处理器会自动进入ARM状态.即使是一个单纯的THUMB应用系统,必须加一个汇编的交互头程序,因为系统总是自动从ARM开始启动 5.ARM体系结构所支持的最大寻址空间为4GB;6.ARM处理器数据存储格式有哪几种?各自的特点?能否举例进行说明。答:ARM存储器有大端格式和小端。大端格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;小端格式则相反。7.ARM处理器数据类型包括哪些?各自特点。答:字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年小自考行政管理考生的应变能力提升试题及答案
- 个人拖欠材料款合同标准文本
- 信息技术助力生本课堂变革与实践方案
- 房地产管理岗试题及答案
- 提升县域中职教育质量的有效策略与实践路径
- 个人车子售卖合同样本
- 乳制品保税加工项目创新发展方案
- 买房定金协议合同样本
- 修建新房合同样本
- 视觉传播设计小自考展览策划技巧与试题及答案
- GB/T 35624-2025应急避难场所通用技术要求
- 1688运营培训课件
- DeepSeek 15天培训教材从入门到精通
- 箱式变电站迁移施工方案
- 道路运输企业安全风险辨识分级管控清单
- 北师大版六年级数学下册试题第三单元测试卷(含答案)
- 城市轨道交通桥隧维修与养护 课件 1.1桥梁设施基础知识
- 物理-广东省大湾区2025届高三第一次模拟试卷和答案
- 李清照(课堂课件)
- 工程项目代建管理
- 华南理工大学自主招生个人陈述自荐信范文
评论
0/150
提交评论