南工大ARM嵌入式系统参考复习题1_第1页
南工大ARM嵌入式系统参考复习题1_第2页
南工大ARM嵌入式系统参考复习题1_第3页
南工大ARM嵌入式系统参考复习题1_第4页
南工大ARM嵌入式系统参考复习题1_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、ARM嵌入式系统设计参考复习题(2017-11)主要知识点:第一章1. 嵌入式系统:以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”根据应用的要求,沿着体积小、低功耗、高可靠”方向发展,对运算速度、存储容量没有统一要求。三要素:嵌入、专用、计算机。2. 嵌入式系统有哪些部分组成?一般由硬件层,中间层(HAL或BSP)和软件层组成。粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件3. 嵌入式系统特点:系统内核小专用性

2、强系统精简高实时性。4. 嵌入式处理器的分类:嵌入式微处理器(MPU):就是和通用计算机的处理器对应的CPU,可以认为是增强型”通用微处理器。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D等各种必要功能和外设。嵌入式DSP处理器(DSP):是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。第二章1 .ARM

3、:是AdvanceRISCMachine的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。2 .在ARM9TDMI中“9TDMI的含义:9:采用版本为9的ARM微处理器T:支持16为压缩指令集Thumb,D:支持片上Debug,称为D变种M:内嵌硬件乘法器Multiplier,称为M变种I:嵌入式ICE,支持片上断点和调试,称为I变种。3 .ARMCortex-A8处理器的三种工作状态:ARM状态,处理器执行32位的字又t齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令和ThumbEE状态:执行16位的半字对齐的Thum

4、b指令集变种。8种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)和监控模式(mon)。特权模式:除usr之外的其它的7种工作模式都是特权模式。异常模式:除usr和sys之外的其它的6种工作模式都是持权模式。4 .ARMA8寄存器分成哪几类?各类有哪些寄存器?寄存器LR有什么用途?分两类:33个通用寄存器和7个状态寄存器。33个通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8fi

5、q-R14fiq、R13mon、R14mon;。7个状态寄存器:CPSR;SPSRsvc、SPSRabt、SPSRund、SPSRirq、SPSRfiq和SPSRmon。LR(R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14svc、R14irq、R14fiq、R14abt、R14und和R14_mon用来保存R15的返回值。5 .CPSR各位是意义:N:正负号/大小标志位0表示:正数/大于;1表示:负数/小于Z:零标志位0表示:结果不为

6、零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1V:溢出标志位0表示:结果未溢出;1表示:结果溢出I、I和F:irq和fiq中断允许和禁止控制位,=1禁止irq或fiq中断=0允许irq或fiq中断。T:控制(标志)位一一反映处理器的运行状态T=1时,程序运行于Thumb状态,T=0时,程序运行于ARM状态。TM:控制位一一决定了处理器的运行模式模式TM4:0用户10000快中断10001中断10010管理10011中止10111未定义11011系统11111监控101106 .ARM异常响应过程(进入异常)执行哪些操作。保存返回地址、保存当

7、前状态寄存器CPSR的内容、设置当前状态寄存器CPSR中的相应位、转去执行中断处理程序。第三章1 .ARM指令中的第二操作数“operand2有哪些具体形式:三种:寄存器、寄存器移位、8位位图立即数。2 .对于ARM的变址寻址方式,有基地址和偏倚地址两部分组成。(1)基地址可以是哪些寄存器?(2)偏移地址可以有哪些形式?(3)总地址的计算方法有哪些?怎么表示?(4)变址寻址应用于哪些指令?(1)基地址可以是通用寄存器R0-R15中的任意一个。(2)偏移地址可以有三种形式:12位立即数、寄存器、寄存器移位。(3)总地址的计算方法有三种:前变址(前索引):先基址+偏址,生成操作数地址,做指令指定的

8、操作。如:LDRRd,Rn,#m后变址模式(修改基址寄存器):基址寄存器不加偏移作为操作数地址。完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDRRd,Rn,#m自动变址模式(修改基址寄存器):先基址+偏移,生成操作数地址,做指令指定的操作。然后自动修改基址寄存器。如:LDRRd,Rn,#m!(4)有4条指令:LDR、STR、LDM、STM3 .ARM有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、变址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址4 .ARM伪指令:ADR:小范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空

9、操作伪指令。5 .ARM指令集分为哪几种类型?各类有哪些指令(可以不考虑协处理器指令)。五类:存器访问指令、数据处理指令、跳转指令、协处理器指令、杂项指令。存储器访问指令:单存储器存取指令,多存储器存取指令。数据处理指令:算术运算指令,逻辑运算指令,数据传送指令,比较指令,测试指令。跳转指令:B跳转指令BL带链接的跳转指令BX带状态切换的跳转指令BLX带链接和状态切换的跳转指令。杂项指令:程序状态寄存器操作指令,中断操作指令。6 .ARM有哪些条件码?各个条件码的符号及意义。(比较常用的应该会)。条件码00000001001000110100010101100111助记符EQNECS/HSCC

10、/LOMIPLVSVC含义相等不相等无符号数大于或等于无符号数小于负数非负数溢出没有溢出标志Z=1Z=0C=1C=0N=1N=0V=1V=01000HI无符号数大于C=1且Z=01001LS无符号数小于或等于C=0或Z=11010GE有符号数大于或等于N=V1011LT有符号数小于N!=V1100GT有符号数大于Z=0且N=V1101LE有符号数小于或等于Z=1或N!=V1110AL无条件执行arm采用32位架构,基本数据类型4种,填空Byte8位HalfWord16半字2字节对齐Word32字4DoubleWord64双字8内核工作模式,cortexa8,(课本8种)8种usrfiqirqs

11、vc特权模式abt数据访问中止模式und未定义指令中止模式sysmon监控模式,可在安全模式和非安全模式切换8个模式中,除用户模式usr,其他7个全部特权模式7个特权模式中,除了系统模式,剩下6个都属于异常模式异常模式:快速中断请求模式(FIQ)用于高速数据传输外部中断请求模式(IRQ)用于通常的中断处理特权模式(SVC)数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护未定义指令中止模式(und)用于支持硬件协处理器的软件仿真监控模式(mon)Arm微处理器工作模式,分别为:1 .用户模式(Usr)用于正常执行程序2 .快速中断模式(FIQ)用于高速数据传输

12、3 .外部中断模式(IRQ)用于通常的中断处理4 .特权管理模式(SVC)操作系统使用的保护模式(高权限),复位和软件中断进入5 .数据访问中止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护6 .系统模式(sys)运行拥有特权的操作系统任务7 .未定义指令终止模式(und)用于支持硬件协处理器的软件仿真(浮点、微量运算)8 .监控模式(mon),可在安全模式和非安全模式切换异常模式优先级如下:1 (最高)SVC复位2 abt数据中止3 FIQ(快速中断请求)4 IRQ(外部中断请求)5 abt预取指令中止6(最低)und未定义指令,SWI软件中断arm7为止使用流水线

13、3级取指令,从寄存器装载一条指令译码为下一周期准备控制信号执行处理指令,结果写会寄存器arm9,五级流水线3级+缓冲/数据回写arm106级流水线寄存器R13用作数据栈指针,记作SR寄存器R14称为链接寄存器,记作LR它用于保存子程序的返回地址。寄存器R15是程序计数器,记作PC,不能用作其它用途。CPSR当前程序状态寄存器理解CPSFB式,里面标志位含义等等跳转指令,bl跳转32mb范围,跳转pc,如ldrbpc,.可以4GB范围AAPC的准子程序调用,用R0-R3存储参数,R0存返回值I2C总线,通过串行数据线(SDA)和串行时钟线(SCL)在连接到总线的器件间传递信息。传输时包含寻址和数

14、据信息,每个字节8位,每个字节后必须跟一个响应位。A_D转换结束的表达式是!(TSAADCCON0&(1<<15)获取AD转换结果的表达式是(TSDATX0&0xfff)LCD16M色的像素颜色的数据格式是怎样的4个字节,前3个字节分别为红,绿,蓝三原色的色号。64K色的数据则用16位表示一个像素的颜色,三原色配比是5/6/5。android操作系统的源码结构分为3个部分:核心工程(CoreProject),扩展工程(ExternalProject),包(Package),应用程序(Application)在package/apps目录中。二、简答题:1、Corte

15、x-A8是ARMv7-A架构的,共有哪几种工作模式,其中哪几种属于异常模式?usr用户模式fiq快速中断模式irq外部中断模式svc特权模式abt数据访问中止und未定义指令中止模式sys系统模式mon监控模式,安全模式切换8种工作模式,除用户模式,都是特权模式特权模式里面,除系统模式,其他都是异常模式。即异常模式6种:Fiq快速中断异常模式Irq外部中断请求模式svc特权模式abt数据访问中止模式und未定义指令中止模式mon监控模式2.寄存器CPSRSPSRW功能各是什么?CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一

16、些控制和状态位。中断时,保存当前程序状态,处理器模式等等。每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPSRCPS嘴式CPSR格式如下所示。SPSR和CPSR格式相同。31302928272676543210NZCVQIT1:0JIFTM4M3M2M1M0*条件标志位*Nn=1表示运算结果为负数,n=0表示结果为正数或零。zz=1表示运算的名果为零;z=0表示运算的结果不为零。C进位,借位标志VV=1表示符号位溢出JThumbEE状态位M4-0模式

17、位3、简述S5PV210外部中断处理和响应的流程。中断发生后,处理:通过堆栈和spsr寄存器,入栈保存现场,设置cpsr模式位,处理器模式变成外部中断模式。外部中断中断发生后,VIC0IRQSTATUS1应位置改变,中断向量地址VIC0ADDRESS相应位改变,pc跳到向量表的特定地址,从该地址开始执行,跳转调用我们写的中断处理函数,执行中断处理程序。/*4.使能向量地址通道16中断*/rVIC0INTENABLE|=(1<<16);/*5.向量地址通道16选择为IRQ中断*/rVIC0INTSELECT|=(1<<16);/0为日q模式,1irq/*5.安装中断服务函

18、数到VIC0VECTADDR16强制转换提取EINT16_31_IRQHandler函数地址*/rVIC0VECTADDR16=(unsignedint)EINT16_31_IRQHandler;voidEINT16_31_IRQHandler(void)。三、编程应用题:(阅读分析,加注释、填空与编程)1 .将存储器中0x400000开始的200字节的数据,传送到0x400800开始的区域。解:MOVR0,#0x400000LDRR1,=0x400800MOVR7,#200LP:LDRBR2,R0,#1STRBR2,R1,#1SUBSR7,R7,#1BNELPHERE:BHERE2 .编写一

19、程序,查找存储器从0x400000开始的100个字中为0的数目,将其结果存到0x400190中。解:MOVR0,#0x400000MOVR1,#0MOVR7,#100LP:LDRR2,R0,#4CMPR2,#0BNENEXTADDR1,R1,#1NEXT:SUBSR7,R7,#1BNELPSTRR1,R0HERE:BHERE3 .编写一简单ARM汇编程序段,实现1+2+100勺运算。MOVR2,#100MOVR1,#0LOOPADDR1,R1,R2;R1中为累加和SUBSR2,R2,#1;R2控制循环BNELOOP5 .用ARM汇编语言和C语言写一个初始值为0x6000000的延时函数。汇编的

20、为:delay:ldrr0,=0x6000000temp:subr0,r0,#1cmpr0,#0bnetempbxlr上面程序参考c语言的写法voiddelay()volatileinti,j;for(i=0;i<0x6000000;i+);)6 .请对如下程序解释按k2按键,松手,led闪烁#include"stdio.h"#include"s5pv210.h”#definerGPJ2CON*(volatileunsignedlong*)0xe0200280)#definerGPJ2DAT*(volatileunsignedlong*)0xe0200284

21、)voidkey_init()rGPH2CON&=(0xf<<0);/全部清0,设置输入模式,然后按键被按值变成voidled_init()(rGPJ2CON&=(0xf<<0);rGPJ2CON|=(0x1<<0);rGPJ2DAT|=(0x1<<0);)voiddelay()(inti,j;for(i=0;i<100;i+)for(j=0;j<100;j+);)intkeyled(void)(printf("按键灯测试n");key_init();led_init();while(1)(if(r

22、GPH2DAT&(0x1<<0)=0)如果按键2按下,按键值0,(/printf("key2putdown!n");delay();if(rGPH2DAT&(0x1<<0)=0)/重新判断消抖动影响(/printf("keyreallyputdown!n");while(!(rGPH2DAT&(0x1<<0);/松手检测rGPJ2DAT&=(0x1<<0);/亮delay();rGPJ2DAT|=(0x1<<0);/led暗)return0;)ARM部分实验程序(

23、仅供参考):<实验一>ARM开发平台使用入门.equnum,2.section.text.global_start_start:Reset_Handler:movr0,#0;/*setupthethreeparameters*/movr1,#3movr2,#2blarithfunc;/*callthefunction*/stop:bstop;#*;#*AccordingR0valudetoexecutethecodearithfunc:;/*labelthefunction*/cmpr0,#num;/*Treatfunctioncodeasunsignedinteger*/bhsD

24、oAdd;/*Ifcodeis>=2thendooperation0.*/adrr3,JumpTable;/*Loadaddressofjumptable*/ldrpc,r3,r0,LSL#2;/*Jumptotheappropriateroutine*/JumpTable:.wordDoAdd.wordDoSubDoAdd:addr0,r1,r2;/*Operation0,>1*/bxlr;/*Return*/;#*;/*Operation1*/DoSub:subr0,r1,r2bxlr实验二>GPIOLED接口控制实验(LED显示灯控制)控制实验平台的发光二极管LED1,

25、LED2,LED3,LED4,使它们有规律的点亮和熄灭,具体顺序如下:LED1亮,LED2亮,LED3亮->LED4亮->LED1灭->LED2灭->LED3灭->LED4灭->全亮->全灭,如此反复name:*func:led_onturnontheledsonebyone*/voidled_on(void)inti,nOut;nOut=0xF0;rGPFDAT=nOut&0x70;for(i=0;i<100000;i+);rGPFDAT=nOut&0x30;for(i=0;i<100000;i+);rGPFDAT=nOu

26、t&0x10;for(i=0;i<100000;i+);rGPFDAT=nOut&0x00;for(i=0;i<100000;i+);/*name:*func:led_offturnofftheledsonebyone*/*voidled_off(void)(inti,nOut;nOut=0;rGPFDAT=0;for(i=0;i<100000;i+);rGPFDAT=nOut|0x80;for(i=0;i<100000;i+);rGPFDAT|=nOut|0x40;for(i=0;i<100000;i+);rGPFDAT|=nOut|0x20;f

27、or(i=0;i<100000;i+);rGPFDAT|=nOut|0x10;for(i=0;i<100000;i+);/*name:*func:led_on_offturnonthe4ledsandthenturnoffthe4leds*/voidled_on_off(void)*(inti;rGPFDAT=0;for(i=0;i<100000;i+);rGPFDAT=0xF0;for(i=0;i<100000;i+);/*name:0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,);/*/Functionname:delay/Desc

28、ription:延时子程序/Returntype:void/Argument:count,延时的数值*/voiddelay(intcount)intcnt;for(count=count;count>0;count-)for(cnt=0;cnt<1000;cnt+);)voidGpio_init()GPH2.GPH2CON=0x11111111;GPH2.GPH2DAT=0xff;GPH3.GPH3CON=0xff;GPH3.GPH3DAT=GPH3.GPH3DAT|0x3;)intmain()inttemp,i,j,lp,flag=0;intsegN=0;intsg5;uart_

29、init();printf("CVTS5PV210JtagKeyPadTestn");Gpio_init();flag=1;while(flag!=0)&&(lp<6)for(j=0;j<lp;j+)*(U8*)0x88007000)=(0x01<<j);*(U8*)0x88009000)=seg7tablesgj;delay(30);)for(i=0;i<8;i+)/*GPH2.07引脚输出高电平,那么GPH3.01将始终是高电平,依次将GPH2.0-7设置成低电平,那么,当按键按下时,该键对应GPH3.0-1的引脚将会变成低

30、电平,由此判断按键*/GPH2.GPH2DAT=0xff;/GPH2.0-7弓I脚输出高电平GPH2.GPH2DAT&=(0x1<<i);/GPH2.0-7设置成低电平delay(10);temp=GPH3.GPH3DAT&0x3;delay(10);/GPH3.01的引脚将会变成低电平,由此判断按键if(temp!=0x3)switch(i)case0:if(temp=0x1)printf("VOL+Pressn");segN=9;sglp=segN;)break;case1:if(temp=0x1)printf("VOL-Press

31、n");segN=7;sglp=segN;)elseif(temp=0x2)printf("DOWNPressn");segN=8;sglp=segN;)break;case2:break;case3:if(temp=0x1)printf("UPPressn");segN=2;sglp=segN;)break;case4:if(temp=0x2)printf("SLEEPPressn");segN=0;sglp=segN;)break;if(temp=0x1)printf("MENUPressn");se

32、gN=1;sglp=segN;elseif(temp=0x2)printf("RIGHTPressn");segN=6;sglp=segN;break;case 5:if(temp=0x1)printf("BACKPressn");segN=3;sglp=segN;elseif(temp=0x2)printf("ENTERPressn");segN=5;sglp=segN;break;case 6:if(temp=0x2)printf("LEFTPressn");segN=4;sglp=segN;break;def

33、ault:break;/switchflag=0;/ifif(flag=0)*(U8*)0x88007000)=(0x01<<lp);*(U8*)0x88009000)=seg7tablesegN;delay(500);lp=(lp+1)%6;flag=1;/whileIpflagwhile(1);return0;<实验四>A/D转换控制实验部分程序#include"s5pc210.h”#include"uart.h"#include"clock.h"intadc_test(void);intmain(void)intj

34、n,jn1;/系统时钟初始化clock_init();/初始化串口115200uart_init();/设置ADC读取AIN7while(1)jn=adc_test();jn1=jn/1000;GPD0.GPD0CON=(GPD0.GPD0CON&(0xF000)|(0x2<<12)1/Tout3输TIMER.TCFG0=(TIMER.TCFG0&0xFF)|0xFF/配置预分频值为256/TIMER.TCFG1=(TIMER.TCFG1&0xF000)4<<12娟分频的值为1/16分频TIMER3.TCNTB3=jn;设置基数缓冲器的值swit

35、ch(jn1)case1:TIMER.TCFG1=(TIMER.TCFG1&0xF000)1<<12;TIMER3.TCMPB3=jn/1;break;case2:TIMER.TCFG1=(TIMER.TCFG1&0xF000)2<<12;TIMER3.TCMPB3=jn/3;break;case3:TIMER.TCFG1=(TIMER.TCFG1&0xF000)3<<12;TIMER3.TCMPB3=jn/6;break;case4:TIMER.TCFG1=(TIMER.TCFG1&0xF000)4<<12;TI

36、MER3.TCMPB3=jn/8;break;设置比较缓冲器的值TIMER.TCON=0x0e<<16;/手动更新,是缓冲器的值到计数器里面,双缓冲机制TIMER.TCON=0x0d<<16;/清除手动更新位,并启动定时器3delay(1000);)return0;)# 实验五>LCD触摸屏显示控制实验#include"s5pc210.h”#include"clock.h"#include"uart.h"#include"lcd.h"#include"ts_ft5x06.h"

37、#defineWIDTHEIGH800# defineHEIGHT480externstructts_eventTouch_MSG;/保存触控点信息# defineROW(480)# defineCOL(800)intmain()unsignedinti,j,n;unsignedcharpoints;/触控点数量字符信息unsignedcharxch53;/触控点坐标字符信息unsignedcharych53;uart_init(115200);Uart_Select(2);printf("CVTS5PV210Uart_TouchTest.n");iic_init();lc

38、d_init();lcd_clear_screen(0x000000);/使用黑色清除屏幕lcd_draw_hline(ROW/2,100,COL-100,0xff0000);/红色横线lcd_draw_vline(COL/2,50,ROW-50,0x00ff00);/绿色竖线while(1)get_ts_msg();/获取当前触控信息output_ts_xy();用口打印信息/lcd_clear_screen(0x000000);if(Touch_MSG.point_num=0)/点口果触控点数为0,则不显示continue;/坐标信息转化为字符points=Touch_MSG.point_

39、num+'0'for(n=0;n<Touch_MSG.point_num;n+)xchn0=(Touch_MSG.Touch_xyn.x/100)+'0'xchn1=(Touch_MSG.Touch_xyn.x/10)%10)+'0'xchn2=(Touch_MSG.Touch_xyn.x%10)+'0'ychn0=(Touch_MSG.Touch_xyn.y/100)+'0'ychn1=(Touch_MSG.Touch_xyn.y/10)%10)+'0'ychn2=(Touch_MSG.To

40、uch_xyn.y%10)+'0'/显示坐标信息字符lcd_draw_char(16,0,'',0xffff00);lcd_draw_char(16,8,points,0xffff00);lcd_draw_char(16,16,'',0xffff00);for(i=16,j=40,n=0;n<Touch_MSG.point_num;j+=80,n+)lcd_draw_char(i,j+8*0,'(',0xffff00);lcd_draw_char(i,j+8*1,xchn0,0xffff00);lcd_draw_char(i

41、,j+8*2,xchn1,0xffff00);lcd_draw_char(i,j+8*3,xchn2,0xffff00);lcd_draw_char(i,j+8*4,',',0xffff00);lcd_draw_char(i,j+8*5,ychn0,0xffff00);lcd_draw_char(i,j+8*6,ychn1,0xffff00);lcd_draw_char(i,j+8*7,ychn2,0xffff00);lcd_draw_char(i,j+8*8,')',0xffff00);lcd_draw_circle(Touch_MSG.Touch_xyn-1

42、.x,Touch_MSG.Touch_xyn-1.y,100,0x68228B);/紫/手动刷新坐标信息的显示区delay(3000);for(i=16;i<32;i+)for(j=0;j<COL;j+)lcd_draw_pixel(i,j,0x000000);)return0;)ARMft入式系统设计模拟试题一、填空题(请将答案填入题后括号中广每空2分,满分20分。1、对于嵌入式系统来说,(低功耗)设计是许多设计人员必须面对的问题,其原因在于嵌入式系统被广泛应用于便携式和移动式较强的产品中,而且大多数嵌入式设备都有(体积和质量)约束。2、ARMCortex-A8处理器的三种工作状

43、态:(ARM状态,处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令和(ThumbEE状态:执行16位的半字对齐的Thumb指令集变种。3、R14也称作子程序链接寄存器或链接寄存器LR,当执行(BL或BLX)子程序调用指令时,R14中得到R15(程序方十数器P。返回地址的备份。其他情况下,R14可用作(通用寄存器)。4、设R0,R1寄存器对应变量a和b,如下ARM旨令:CMPR0,R1;ADDHIR0,R0,#1;ADDLSR1,R1,#1;对应的C语言程序段为(if(a>b)a+;elseb+;)5、ARM7TDM中,T表示支持16位(Th

44、umb指令集,D表示在片可调试,M表示内嵌乘法器Multiplier,I表示(嵌入式ICE),支持在线断点和调试。6、当多个异常同时发生时,有优先级系统决定异常处理顺序,优先级最高的是(Reset)异常。二、简答题:共4小题,每小题10分,满分40分。1、嵌入式系统的主要特点有哪些?嵌入式系统主要特点如下:1)嵌入式系统是面向具体应用的产品,专用性强2)嵌入式系统软件、硬件生命周期都比较长,内核小、可裁剪。3)需要软硬件开发工具和环境,需要应用专家参与开发4)嵌入式系统需具有高实时性和可靠性。2、ARMA8寄存器分成哪几类?各类有哪些寄存器?寄存器LR有什么用途?分两类:33个通用寄存器和7个

45、状态寄存器。33个通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。7个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq和SPSR_mon。LR(R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_

46、irq、R14_fiq、R14_abt、R14_und和R14_mon用来保存R15的返回值。3、嵌入式微处理器嵌分为那几种?嵌入式微处理器(MPU):就是和通用计算机的处理器对应的CPU,可以认为是增强型”通用微处理器。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D等各种必要功能和外设。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。嵌入式可编程片上系统(SOPC):是用可编程逻辑技术把整个系统放到一块硅片

47、上。嵌入式DSP是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。4、简述嵌入式系统通过查询方式和中断方式获取数据的特点?查询方式:硬件少,程序简单,速度慢,工作并行度差,CPUJ用率低中断方式:硬件多,程序较复杂,速度快,工作并行度高,CPUJ用率高三、分析题:共3小题,每小题10分,满分30分。1、请给如下程序加注释并说明程序的功能:1、请给如下程序加注释并说明程序的功能:.equnum,200.section.text.global_start_start:MOVR0,#0x400000LDRR1,=0x400800MOVR7,#n

48、umLP1:LDRBR2,R0,#1CMPR2,#0BEQLP2STRBR2,R1,#1;/数据个数num为200;/代码段开始;/源区地址指针设初值;/目的区地址指针设初值;/数据块计数;取源区的一个字节数据到R2寄存器该数与0比较;若等于0转LP2处执行;不等于0,将该数存入目的区LP2:SUBSR7,R7,#1;检查数据块是否处理完BNELP;未完,转LP1处继续处理HERE:BHERE;处理完,暂停程序功能:完成将一个数据块(按字节计数)从源区传送到目的区(不含为0的数据)。2、注释下列程序并说明实现的功能:while(1)get_ts_msg();/获取当前触控信息output_ts

49、_xy();用口打印信息if(Touch_MSG.point_num=0)continue;points=Touch_MSG.point_num+'0'/获取触摸点数量for(n=0;n<Touch_MSG.point_num;n+)xchn0=(Touch_MSG.Touch_xyn.x/100)+'0'xchn1=(Touch_MSG.Touch_xyn.x/10)%10)+'0'xchn2=(Touch_MSG.Touch_xyn.x%10)+'0'ychn0=(Touch_MSG.Touch_xyn.y/100)+&

50、#39;0'ychn1=(Touch_MSG.Touch_xyn.y/10)%10)+'0'ychn2=(Touch_MSG.Touch_xyn.y%10)+'0'转换各触摸点的X,Y坐标的百位,十位和个位数字字符lcd_draw_char(16,0,'',0xffff00);lcd_draw_char(16,8,points,0xffff00);lcd_draw_char(16,16,'',0xffff00);for(i=16,j=40,n=0;n<Touch_MSG.point_num;j+=80,n+)lcd_

51、draw_char(i,j+8func:led_offturnofftheledsonebyone*0,'(',0xffff00);lcd_draw_char(i,j+8*1,xchn0,0xffff00);lcd_draw_char(i,j+8*2,xchn1,0xffff00);lcd_draw_char(i,j+8*3,xchn2,0xffff00);lcd_draw_char(i,j+8*4,',',0xffff00);lcd_draw_char(i,j+8*5,ychn0,0xffff00);lcd_draw_char(i,j+8*6,ychn1,0xffff00);lcd_draw_char(i,j+8*7,ychn2,0xffff00);lcd_draw_char(i,j+8*8,')',0xffff00);程序功能:获取触摸点并在在屏幕左上角

温馨提示

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

评论

0/150

提交评论