一、嵌入式处理器分类、ARM系列分类、ARM技术演进一、嵌入式处理器可以有哪些分类?答:嵌入式处理器基本上可以分为嵌入式微处理器(EMPU)、嵌入式微控制器(EMCU)、嵌入式数字信号处理器(EDSP)、嵌入式片上系统(ESoC)二、ARM系列的分类有哪些?答:(1)ARMV4T系列:包括ARM7TDMI、ARM720T、ARM7EJ;(2)ARMV5TE系列:ARM9E、ARM10E;(3)ARMV6系列:ARM11;(4)ARMV7系列:Cortex系列都属于V7系列,主要有Cortex-A8、Cortex-R4、Cortex-M3和Cortex-M1等处理器。三、ARM技术的演进中都改变了什么?答:ARM核心的体系结构从ARMV1发展到ARMV7;ARM系列的处理器从ARM1发展到了ARM11乃至Cortex系列;ARM系列的指令集包括了32位的ARM指令集、16位的Thumb指令集、16/32位的Thumb-2指令集;流水线从ARM7的3级发展到了Cortex-A8的13级;制造工艺从0.18um发展到32nm;内部的其他技术也在不断地升级和发展。四、典型嵌入式系统的组成结构答:从硬件上大致分为:处理器内核层、芯片级外设层、用户级外设层;从软件上大致分为:启动层、操作系统层、应用层。二、ARM7TDMI的工作模式、工作方式、CPSR1.ARM7TDMI有几种处理器工作模式,分别是什么?ARM7TDMI处理器一共有7种工作模式用户模式(usr)快速中断模式(fiq)外部中断模式(irq)管理模式(svc)数据访问中止模式(abt)未定义指令中止模式(und)系统模式(sys)2.ARM7TDMI有几种工作方式,分别是什么?ARMARM7TDMI有两种工作方式:ARM方式和Thumb方式3.ARM7TDMI的CPSR中的条件标志位有哪些,分别表示什么意义?N:负标志位,运算结果的第31位值,记录标志设置的结果。Z:零标志位,如果标志设置操作的结果为0,则置位。C:进位标志位,记录无符号加法溢出,减法无错位,循环移位。V:溢出标志位,记录标志设置操作的有符号溢出。4.编程实现将CPSR的值保存到通用寄存器R0中,将SPSR保存到R1中,然后使用通用寄存器R2的值修改CPSR,使用R3修改SPSR。MRSR0,CPSRMRSR1,SPSRMSRCPSR,R2MSRSPSR,R3三、ARM7TDMI的寄存器文件、CPSR1.ARM处理器是__RISC_结构,共有__37__个寄存器,其中__31__个通用寄存器,__6__个状态寄存器。2.ARM状态寄存器和Thumb状态寄存器之间的关系Thumb状态寄存器与ARM状态寄存器有如下的关系(1)Thumb状态r0-r7与ARM状态r0-r7相同(2)Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同(3)Thumb状态SP映射到ARM状态r13(4)Thumb状态LR映射到ARM状态r14(5)Thumb状态PC映射到ARM状态PC(r15)3.列出ARM处理器的37个32位物理寄存器。答:未分组寄存器R0~R7;分组寄存器R8_fiq~R12_fiq,R8_usr~R12_usr,R13_usr、R13_fiq、R13_irq、R13_svc、R13_abt、R13_und,R14_usr、R14_fiq、R14_irq、R14_svc、R14_abt、R14_und;程序计数器PC(R15);CPSR,SPSR_fiq、SPSR_irq、SPSR_svc、SPSR_abt、SPSR_und。4.用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1。参考答案:COUNTEQU0x40003100;定义一个变量,地址为0x40003100AREAExample2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1=COUNTMOVR0,#0;R0=0STRR0,[R1];[R1]=R0,即设置COUNT为0LDRR1,=COUNTLDRR0,[R1];R0=[R1]ADDR0,R0,#1;R0=R0+1LOOPBLOOPEND四、中断异常、响应过程、中断返回、优先级等问答题1、简要叙述ARM处理器对异常中断的响应过程。2、ARM体系中的异常中断类型有哪些?3、异常中断结束后,CPU是如何返回到主程序断点的?编程题4、ADC中断从汇编程序到C程序中的中断服务程序跳转,写出基本格式答案:1、1)保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。2)设置当前程序状态寄存器CPSR中相应的位。包括:进入ARM状态;设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁IRQ中断,当进入FIQ模式时,禁止FIQ中断。3)将寄存器Ir_mode(R14)设置成返回地址。4)将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应异常中断处理程序处执行。2、复位(Reset)未定义的指令软件中断(softwareinterruptSWI)指令预取中止数据访问中止外部中断请求快速中断请求3、异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将所有修改过的用户寄存器从处理程序的保护栈中恢复。将SPSR复制回CPSR中,将连接寄存器LR的值减去相应的偏移量后送到PC中。若在进入异常处理时设置了中断禁止位,要在此清除。复位异常处理程序不需要返回。4、汇编.s文件中定义:BHandlerADC...HandlerADCIMPORTADC_ISRBADC_ISRSUBSPC,R14,#4.c文件中定义中断服务程序:__irqvoidADC_ISR(void);//注意两个___irqvoidADC_ISR(void){…}五、ARM指令系统与功能测试:分类总结问题一:ARM指令系统的寻址方式有哪几种?1立即寻址2寄存器寻址3寄存器间接寻址4基址寻址5相对寻址6多寄存器寻址7堆栈寻址问题二:列出ARM的指令集(至少四种)1跳转指令2数据处理指令3乘法指令与乘加指令4程序状态寄存器访问指令5加载/存储指令6数据交换指令7移位指令8协处理器指令9异常产生指令问题三:请分别说明下列语句的含义1、ADDR0,R0,#1;R0←R0+1ADDR0,R0,#0x3f;R0←R0+0x3f2、LDRR0,[R1,#4];R0←[R1+4]问题四:以下程序段执行后,A=,(30H)=。MOV30H,#0AHMOVA,#0D6HMOVR0,#30HMOVR2,#5EHANLA,R2ORLA,@R0SWAPACPLAXRLA,#0FEHORL30H,A答:A=E4H(30H)=EEH六、ARM汇编伪指令与程序设计:分类总结1.什么是ARM伪指令?ARM汇编语言的伪指令包括什么?答:ARM伪指令并不是真正的ARM指令,在编译器进行汇编时,被替换成相应的ARM指令。其包括:ADRADRLLDRNOP2.一个ARM工程都包括些什么?答:多个ARM汇编语言源程序、C语言源程序、头文件等。3.ARM程序设计包括几种方法?ARM汇编语言程序设计、嵌入式C++语言程序设计、嵌入式C语言与ARM汇编语言混合程序设计等3种方法。4.请将以下程序改写为体检码方法的程序CMPR0,#5;比较R0与5,设置条件码BNEBYPASS;不相等则转移ADDR1,R1,R0;相等:R1=R1+R2SUBR1,R1,R2;相等:R1=R1-R2BYPASS;答:CMPR0,#5;比较R0与5,设置条件码ADDEQR1,R1,R0;相等:R1=R1+R2,条件执行SUBEQR1,R1,R2;相等:R1=R1-R2,条件执行七、汇编语言与C语言交叉设计技术与程序设计题目一:在C51程序中使用汇编语言有哪两种情况?答案:C51程序调用汇编程序模块的变量和函数和嵌入式汇编题目二:汇编语言和C语言混和编程的三种方法:答案:1,对C语言程序编译后形成的汇编程序进行手工修改与优化;2,在C语言程序中直接嵌入汇编语句;3,分别编写C语言程序和汇编语言程序,然后独立编译成目标模块再进行链接题目三:C语言和汇编语言在单片机编程中各自的优缺点?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。题目四(编程题):定义一个C语言函数cFun实现三个变量的求和,并在汇编语言中调用该函数EXPORTasmfileAREAasmfile,CODE,READONLY___(1)___cFunENTRYmovr0,#11movr1,#22movr3,#33___(2)____cFunEND/*Cfile,calledbyasmfile*/intcFun(inta,intb,intc){___(3)______(4)___;_____(5)_________;rerutn__(6)____;}答案:(1)IMPORT(2)BL(3)int(4)result(5)result=a+b+c(6)result注:result可以使任意的符合要求的变量八、.sct文件的编写与分析使用1.)分散加载能够将加载和运行时存储器中的_____和_____描述在被称为分散加载描述文件的一个文本描述文件中,以供连接时使用。2.)分散加载区域分为两类:加载区和执行区。其中加载区包含应用程序_____和______时的代码和数据。3.)执行区,包含应用程序执行时的代码和数据。应用程序启动过程中,从每个加载区可创建__________执行区。4.)写一个简单的.sct文件。参考答案:1.代码和数据;2.复位和加载;3.一个或多个;4.LR_ROM10x000000000x00008000{;loadregionsize_regionER_ROM10x000000000x00008000{;loadaddress=executionaddress*.o(RESET1,+First)*(InRoot$$Sections).ANY(+RO)}RW_RAM10x100000000x00002000{;RWdata.ANY(+RW+ZI)}}九、S3C44B0X的内特性与CPUWrapper、SFR初始化1.C44BOX以CPU单元为核心,通过_系统总线___实现与总线仲裁器、高速部件及电源管理等连接。2.S3C44BOX的CPUrapper由_CPU核_、__写缓冲区__、__Cache__组成。3.描述S3C44BOX的地址空间答:包含8个独立地址空间(BANK0~7);每个地址空间为32MB,合计256MB;4.存储器配置:配置13个存储控制器,只能用汇编语言编写。存储控制器的13个SFR存储器名称地址赋值BWSCON0x1C800000x22221210BANKCON00x1C800040x00000600BANKCON10x1C800080x00000700BANKCON20x1C8000C0x00000700BANKCON30x1C800100x00000700BANKCON40x1C800140x00000700BANKCON50x1C800180x00000700BANKCON60x1C8001C0x0001002aBANKCON70x1C800200x0001002aREFREASH0x1C800240x00960000BANKSIZE0x1C800280x00000000MRSRB60x1C8002C0x0000