还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
.在和实验系统中,都采用了核心板及母板1PXA270Exynos4412(主板)结构,请简述这种结构设计的优点和缺点答核心板是一个六层的小板,主板是一个两层的大板两种板子的特征以及要求不同核心板的特征是集成性高,结构复杂,成本相对较高,要求要能够高速运行主板的特征是扩展性强,可搭载外围设备,成本低廉,相对低速设计成两块板子,让成本高的核心板尽量缩小,成本低廉,也便于设计以及维修更换,而且让两种板子都发挥了各自的特性,因此一般设计成两块板如果设计成一块板子,两种板子的速度不匹配,设计过程、制作工艺复杂,成本高,出现问题也不好解决,同时主板扩展性强的特性也不好发挥可是设计成两块电路板,可能出现的问题集中在两块板子的连接上,如电路设计,传输信息的方式,速度(传输时延),准确性等处理器有哪些工作模式和状态?
2.Arm答工作模式用户模式、系统模式、快速中断模式、中断模式、管理模式、终止模式、未定义指令模式,从编程的角度看,处理器的工作状态一般有两种,并能够在两种ARM状态下切换第一种为状态,此时处理器执行位的字对齐的指令;第ARM32ARM二种为状态,此时处理器执行位的、半字对齐的Thumb16Thumb指令S1S2zwmo第四题图2OOTnsL omseooJ
5.3的主要内容是什么?答
3.ATPCS ARM-Thumb ProduceCall Standard为了使单独编译的语言和汇编语言之间能够相互调用,必须为子程序间的调用规定一C定的规则就是程序和程序中子程序调用的基ATPCS ARMThumb本规则其使用规则为子程序经过寄存器来传递参数.这时寄存器能够记作
1.R0~R3A1〜被调用的子程序在返回前无需恢复寄存器的内容.A4,R0〜R3在子程序中,使用来保存局部变量.这时寄存器能
2.R4〜R11R4〜RU够记作:.如果在子程序中使用到的某些寄存器,子程VI〜V8VI〜V8序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值,对于子程序中没有用到的寄存器则不必执行这些操作.在THUMB程序中,一般只能使用寄存器来保存局部变量.R4〜R
7.寄存器用作子程序间寄存器,记作在子程序的连接3R12scratch ip;代码段中经常会有这种使用规则.寄存器用作数据栈指针,记做在子程序中寄存器不能用
4.R13SP,R13做其它用途.寄存器在进入子程序时的值和退出子程序时的值必须SP相等.寄存器用作连接寄存器,记作它用于保存子程序的返回地
5.R14lr;址,如果在子程序中保存了返回地址,则可用作其它的用途.R14寄存器是程序计数器,记作它不能用作其它用途.
6.R15PC;中的各寄存器在编译器和汇编器中都是预定义的
7.ATPCS ARM.在嵌入式系统设计中,的主要作用是什么4JTAG答用于烧写烧写的软件有很多种包括1FLASH,FLASH jatg.exe等等,可是所有这些软件都是经过接口来烧写fluted flashpgmjtag的,由于机上是没有接口的,因此利用并口来传递信息给flash pc jtag目标板的接口因此就需要并口转接口的电路jtag jtag用于调试程序,同时应该注意到接口还能够用来调试程序而2jtag调试程序(如开发组件中的)为了经过接口去调试目ARM AXDjtag标板上的程序,同样是使用的并□转接口来实现与目标板的pcjtag通信这样,并口转接口的电路就有了两种作用jtag仿真器,根据和的总结,并口转接口的电路是两种应用的关312jtag键,而这种电路在嵌入式开发中就叫仿真器并口转接口的电路jtag有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,等这些所谓的仿真器的内部电路都是并口转接口,Multi-ICE jtag区别只是电路不同或使用的技术不同而已二.原理图设计部分在实验系统中,有四个七段数码管,其中每两个数码管PXA270为一组两组数码管的地址分别为和假定系0x103000000xl0400000o统的驱动程序和测试程序都能够正常运行,测试程序的功能是使四个数码管显示请回答如下问题EEEE,⑴如果将驱动程序中数码管的地址误写为0x10300000驱动程序的其它内容不变,执行测试程序会出现0x10500000,什么现象?答:移了一组数码管EEEE如果将驱动程序中数码管的地址误写为
(2)0x10300000驱动程序的其它内容不变,执行测试程序会0x103000A0,出现什么现象?答程序正常运行由于系统的需要,与数码管对应的两组地址
(3)0x10300000和需要修改为和其0x10400000,0x043000000x04400000,原理图应当做如何修改?答将和和的连线交换B_CS4CS5三.工作模式及汇编部分(分)Arm10在下面的程序注释中,表小问题编号,七(口)(口qij4,j6)请回答如下问题4o所在行的指令执行的是什么操作?如果系统在使能的l q00,q01IRQ情况下,有发生的话,系统能够正常运行吗?IRQ答所执行的是中断操作;不能所在行的指令执行的是什么操作?是什么工作模式?2:qll□ql3arm答初始化此时处于管理模式R0,所在行的指令执行后,处于什么工作模式?2:q21□q24arm答处于用户模式执行完行的指令后,是什么模式?3:q31arm答向量中断模式执行完行的指令后,二?4:q41RO答RO=OxlFAREA INIT,CODE,READONLYENTRYB RESET_HANDIERUNDEFINED_HANDIERB UNDEFINED_HANDIERB SWI_HANDIERPREFETCH_HANDIERB PREFETCH_HANDIERABORT_HANDIERB ABORT_HANDIERNOPIRQ_HANDIER;q00B IRQ_HANDIER;q01FIQ_HANDIERB FIQ_HANDIERSWI_HANDIERMOV PC,LRRESET_HANDIERMOV RO,#0x000001F0;qllSTR RO,[RI];ql3mov rl3,#3MOV RI4,#4MRS RO,CPSR;q21BIC R0,R0,#0x1f;q22ORR RO,RO,#0x10;q23MSR CPSR_c,RO;q24mov rl3,#lMOV RI4,#2MRS RO,CPSRBIC R0,R0,#0xlfORR R0,R0,#0xl2MSR CPSR_c,R0;q31ADD R13,R13,R14MOV R0,R13ADD PC,PC,#0x8ADD RO,RO,#0x7ADD RO,RO,#0x6ADD RO,RO,#0x5ADD RO,RO,#0x4ADD RO,RO,#0x1STOPB STOPEND四.驱动程序部分(分)20--2-0^5ROW2_____________________嵌入式系统的结构和编号如图所示Exynos4412Keypad1--2-0^9ROW3,.S13--2-0^13R0W4—LsnIozwnlo Gimo
3.5JO0在驱动程序中,扫描键码的程序如下:Keypadfori=0;i4;i++{*keypad_row_addr=tmp[i];value=*keypad_col_addrOxOf;ifvalue0{fork=0;k4;k++{ifvalue==tmp[k]{value=j+i*4;ifvalue!=0x00goto stop_poll;j++;stop_poll:试结合驱动程序和测试程序说
1.fpga_keypad.c fpga_keypad_test.c,明测试程序是怎样获取按键的编号的答首先,驱动程序将存储键盘输入数据的缓冲区清空按下按钮后,测试程序将按下按钮的返回的数据存入缓冲区驱动程序中,程序对键盘输入数据缓冲区中的数据逐个对比,当对比发现当前对比的存储空间存在数据时,经过行列值计算,得出按键的编号请说明当有号键按下时,驱动程序扫描按键并获取键号的过程
2.13答按下号键时,测试程序将按键数据存入缓冲区测试程序将13开始,将每行所对应缓冲区数值与空值比较COL1ROW
1.ROW2对应缓冲区数值为空值,非空值则依次将、、、号ROW39101112键值对应的数值、、、分别与COL0x010x020x040x08ROW3缓冲区数值比较,到扫描到号键对应数值时,判断与90x01ROW3缓冲区数值相等,经过当前行列值的计算,得出按键号由于系统设计的需要,如果希望编号顺时针旋转,如
3.Keypad270图所示请问如何设计程序,达到扫描键盘的目的?用文字说2明实现原理,并写出具体程序答用数值减去将原程序得出的编号即可13Keypadfori=0;i4;i++{*keypad_row_addr=tmp[i];value=*keypad_col_addrOxOf;ifvalue0{fork=0;k4;k++{ifvalue==tmp[k]{value=13-j-i*4;if value!=0x00goto stop_poll;。
个人认证
优秀文档
获得点赞 0