ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:157.12KB ,
资源ID:24008223      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24008223.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统作业.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统作业.docx

1、嵌入式系统作业嵌入式系统2011作业第1章 嵌入式系统概述1、什么是嵌入式系统?答:嵌入式系统指的是以应用为中心和以计算机技术为基础的,并且软硬件是可裁剪的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标严格要求的专用计算机系统。2、与通用计算机相比,嵌入式系统有哪些特点?答:1:嵌入式系统通常是面向特定应用的;2:嵌入式系统功耗低、体积小、集成度高、成本低;3:嵌入式系统具有较长的生命周期;4:嵌入式系统具有固化的代码;5:嵌入式系统开发需要专用开发工具和环境;6:嵌入式系统软件需要RTOS开发平台;7:嵌入式系统开发人员以应用专家为主;8:嵌入式系统是知识集成系统。3、根据嵌入式系统

2、的复杂程度,嵌入式系统可分为哪4类?答:1:单个微处理器;2:嵌入式处理器可扩展的系统;3:复杂的嵌入式系统;4:在制造或过程控制中使用的计算机系统。4、嵌入式微处理器有哪几类?试举例说明。答:嵌入式微处理器,例如:Am186/88、386EX、SC-400. 嵌入式微控制器,例如:8051、P51XA、MCS-251. 嵌入式DSP处理器,例如:TMS320系列、DSP56000系列. 嵌入式片上系统,例如:TriCore、M-Core、Smarrt-XA。5、从硬件系统来看,嵌入式系统由哪几部份组成?画出简图。答:P11图1-46、嵌入式微处理器和嵌入式微控制器分别由哪些部件组成?两者有何

3、区别?答:(1)组成:嵌入式微处理器:包括指令执行部件与总线接口部件。嵌入式微控制器(单片机):将整个系统集成到一个芯片上。(2)两者区别: 嵌入式微处理器: 如果要构成一个系统,完成特定功能必须扩展Rom、RAM、总线接口等器件.并且将系统集成在一块板上。 嵌入式微控制器:一个芯片就是一个系统,芯片包括Rom、RAM、I/O接口、通用接口(比如UART) 特殊接口(比如网络接口、Can接口). 不用外扩接口电路,即可完成一定功能。第2章 ARM微处理器硬件结构2.1哈佛体系结构和冯诺依曼体系结构有何不同?答:冯诺依曼结构:处理器使用一组总线(数据总线、地址总线、控制总线)连接程序存储器、数据

4、存储器、接口器件。所有器件共享一个地址空间。并且程序存储单元与数据存储单元存储位数一致。冯诺依曼结构由于总线瓶颈,不适合流水线作业。哈佛体系结构:有两组总线。一组总线用于访问程序存储器;一组总线用于访问数据存储器。 程序与数据各自有自己独立的存储空间。 程序存储单元与数据存储单元存储位数可以不一致。 哈佛体系结构非常适合流水线作业。2.2 回答下列关于ARM编程模式的问题(1)在该模式下有多少通用寄存器(2)CPSR的作用是什么(3)Z位的作用是什么(4)程序计数器保存在何处答 (1)31个通用寄存器(2)为状态寄存器 条件标志位:保存指令执行的状态N=0 结果正数=1 结果负数 C借位进位标

5、志 Z=0 结果非0 =1 结果0 O=0 结果未溢出 =1 结果溢出 控制标志位:控制程序的执行T=0 ARM状态 =1 Thumb状态 I=0 允许普通中断 =1 不允许普通中断 Q=0 允许快速中断 =1 不允许快速中断 M4.M0:工作模式(3)Z=1 运算结果为0 Z=0 运算结果不为0(4)R15(PC)2.3 下列的arm条件码的含义是什么(1)EQ(2)NE(3)MI(4)VS(5)GE(6)LT答(1)z=1 相等(2)z=0 不相等(3)n=1 负数(4)v=1 溢出(5)n=v 带符号数大于或等于(6)nv 带符号数小于2.4 arm处理器有几种工作模式?各种工作模式有什

6、么特点?答有七种工作模式,用户模式(usr) 正常的程序执行状态快速中断模式(fiq) 用于高速数据处理或通道处理外部中断模式(irq) 用于通用的中断处理管理模式(svc) 操作系统的保护模式中止模式(abt) 用于虚拟存储及存储保护未定义模式(und) 用于支持硬件协处理器的软件仿真系统模式(sys) 运行特权级的操作系统任务2.5 arm处理器共有多少个寄存器?这些寄存器按其在用户编程中的功能如何进行划分?这些寄存器在使用中有什么特殊之处?答 37个寄存器,其中有31个通用寄存器,其中包括程序计数器pc,6个状态寄存器 寄存器均为32位在七种模式中 R0R7不分组,R8R14按模式分组,

7、R15为程序计数器,CPSR为状态寄存器,SPSR为保存程序状态寄存器。R13为堆栈指针寄存器,R14为链接寄存器。CPSR在各种模式下多可以访问,而在用户模式及系统模式下SPSR不可以被访问。2.6若寄存器R1=0x01020304,分别按照大端模式和小端模式存储在0x30000字单元中,试分别写出两种模式下内存存储内容,并标出内存地址答 大端模式0x30000= 0x010x30001= 0x020x30002= 0x030x30003= 0x04小端模式0x30000= 0x040x30001= 0x030x30002=0x020x30003= 0x012.7 ARM存储器的存储周期有几

8、种类型?对应于Cache访问和存储器访问是何存储周期?答:ARM存储器有4种存储周期:空闲周期,非顺序周期,顺序周期,协处理器寄存器传送周期。一般地,对应于Cache访问的存储周期是:非顺序周期。对应于存储器访问的存储周期是:顺序周期和非顺序周期。2.8何谓Cache?简述Cache的工作原理。答:高速缓存器:弥补主存速度,在CPU与主存之间设置的高速,小容量存储器,构成Cache-主存存储层次,速度是Cache的,容量是主存的。工作原理:当CPU要访问Cache时,CPU送来主存地址,放到主存地址寄存器中。然后通过地址变换部件把主存地址中的块号M变成Cache的块号m,并放到Cache地址寄

9、存器中;同时将主存地址中的块内地址N直接作为Cache的块内地址n装入到Cache地址寄存器中。如果地址变换成功,就用得到的Cache地址去访问Cache,从Cache中取出数据送到CPU中。如果地址变换不成功,则产生Cache失效信息,接着使用主存地址直接去访问主存储器,从主存储器中读出一个字送到CPU,同时将从主存储器中读出来的数据装入到Cache中去。此时如果Cache已经满了,则需要采用某种Cache替换策略把不常用的块先调出到主存储器中相应的块中,以便腾出空间来存放新调入的块。教材:图2-12 Cache工作原理图2.9何谓写通Cache和写回Cache?两者有何区别?答:写通法:

10、write-throught,指CPU在执行写操作时,必须把数据同时写入Cache和主存。写回法: write-back,指CPU在执行写操作时,被写的数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改的Cache块写回到主存中。区别在于写通法在Cache中的内容发生改变时,相应的存储器中的内容会立即被修改,而写回法则是等到替换时才会使存储器中的内容发生改变。2.10 ARM的MMU主要实现什么功能?答:ARM的MMU主要实现的功能:(1)虚拟存储空间到物理存储空间的映射。 (2)存储器访问权限的控制。 (3)设置虚拟存储空间的缓冲特性。 2.11简述MMU使能时存储访问过程。答:

11、当ARM处理器请求存储访问时,对于允许缓存的存储访问,如果Cache命中,直接操作数据即可。对于允许缓存且Cache不命中或不允许缓存的存储访问,首先在TLB中查找虚拟地址。如果该虚拟地址对应的地址变换条目不在TLB中,CPU将从位于内存中的页表中查询对应于该虚拟地址的地址变换条目,并把相应的结果添加到TLB中。如果TLB已经满了,则需要根据一定的替换算法进行替换。当得到了需要的地址变换条目后,将进行以下操作。(1)得到该虚拟地址对应的物理地址。(2)根据条目中C控制位和B控制位决定是否缓存该内存访问的结果。(3)根据存储权限控制位和域访问控制位确定该内存访问是否被允许。如果该内存访问不被允许

12、,CP15将向ARM处理器报告存储访问中止。(4)对于不允许缓存的存储访问,使用步骤(1)中得到的物理地址访问内存。对于允许缓存的存储访问,如果Cache命中,则忽略物理地址;如果Cache没有命中,则使用步骤(1)中得到的物理地址访问内存,并将该块数据读取到Cache中。2.12 ARM支持的物理页有几种类型?其容量为何值?答:ARM支持的物理页通常有4种类型,其容量值如下:段:大小为1MB的存储块。大页:大小为64KB的存储块。小页:大小为4KB的存储块。极小页:大小为1KB的存储块。2.13简述基于段的地址变换过程。答:ARM基于段的地址变换过程如图所示。(教材:图2-19 基于段地址的

13、地址变换)第3章 ARM寻址方式与指令系统1.试述ARM处理器对异常中断的响应过程。答:异常处理过程:当异常发生时,(1)将返回地址存入对应异常模式下寄存器R14。(2)当前寄存器CPSR存入对应异常模式下的SPSR.(3)自动修改CPSR4:0,进入相应的异常模式(4)如果异常模式为复位或快速中断(FIQ),则 设置CPSR F=1 禁止所有FIQ中断 设置 CPSR I=1禁止所有IRQ中断(5)转到中断服务程序去执行2.如何从异常中断处理程序中返回?需要注意哪些问题?答:(1) 中断处理完成后返回指令:LDMFD SP!,RPC (2)注意的问题 进入中断时,如果屏蔽了所有FIQ或IRQ

14、中断,中断返回前要开放所有FIQ或IRQ中断 进入异常时,如果断点保护的是PCLR,依据3流水线技术,恢复时LR-#4=PC 状态保持寄存器SPSRCPSR3.ARM指令的寻址方式有几种?试分别叙述其各自的特点并举例说明。答:9种寻址方式。(1)立即数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也称为立即数。 例: ADD R0,R1,5 ;R0=R15 (2)寄存器寻址:所有操作数都为寄存器 例: ADD R0,R1,R2 ;R0=R1R2 (3)寄存器移位寻址:操作数由寄存器的数值做相应移位而得到,移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存

15、器寻址方式表示。 例: MOV R0,R1,LSL R3 ;R0=R1逻辑左移R3位 (4)寄存器间接寻址:寄存器中的值为存储器地址,存储单元的内容为实际的操作数 例如:LDR R0,R1 (5)基址加变址寻址:将寄存器(称为基址寄存器)的值与指令中给出的偏移地址量相加,所得结果作为操作数的存储器地址 例如:LDR R0,R1,5; /存储器地址=R1+#5 (6)相对寻址:PC作为基址寄存器,操作数地址=PC+偏移量 例如: BEQ process1 process1 (7)多寄存器寻址:在多寄存器寻址方式中,一条指令可实现一组寄存器值的传送。 例如: LDMIA R0,R1-R5 ;R1=

16、R0 ;R2=R0+4 ;R3=R0+8 ;R4=R0+12 ;R5=R0+16 (8)块拷贝寻址块:可实现连续地址数据从存储器的某一位置拷贝到另一位置 例: LDR R0,=0x40003000 LDR R1,=0x40003200 LDMIA R0,R2-R6; STMIA R1,R2-R6;(9)堆栈寻址: 按照“后进先出”(“先进后出”)的原则进行数据存储的寻址方式例如:STMFD R13!,R0,R1,R2,R3,R4; /进栈指令 LDMFD R13!,R0,R1,R2,R3,R4; /出栈指令4.假设R0的内容为0x8000,寄存器R1,R2的内容分别为0x01与0x10,存储器

17、内容为0.连续执行下述指令后,说明每条指令执行后PC如何变化?存储器及寄存器的内容如何变化? STMIB R0!,R1,R2 LDMIA R0!,R1,R2解:执行 STMIB R0!,R1,R2 PC=PC+4 0x8004=0x01 0x8008=0x10 R1,R2内容不变 R0=R0+8=8008 注意:黑色为指令执行前,蓝色为指令执行后执行LDMIA R0!,R1,R2 PC=PC+4 R1=0x8008=0x00000010 R2=0x800C=未知 R0=R0+8=0x80105.在ADS环境下,利用全局变量和局部变量声明伪操作及其赋值伪操作,分别举例来定义算术变量,逻辑变量和串

18、变量。解:(1)局部变量: LCLA num1 ;定义一个局部的数字变量,变量名为num1 LCLL l2 ;定义一个局部的逻辑变量,变量名为l2 LCLS str3 ;定义一个局部的字符串变量,变量名为str3 num1 SETA 0xabcd ;将该变量赋值为0xabcd l2 SETL FALSE ;将该变量赋值为真 str3 SETS “Hello!” ;将该变量赋值为“Hello!” (2)全局变量GBLA num1 ;定义一个全局的数字变量,变量名为num1num1 SETA 0xabcd ;将该变量赋值为0xabcd GBLL l2 ;定义一个全局的逻辑变量,变量名为l2l2 S

19、ETL FALSE ;将该变量赋值为假 GBLS str3 ;定义一个全局的字符串变量,变量名为str3str3 SETS “Hello!” ;将该变量赋值为“Hello!” (3)变量赋值LCLA num1 ;定义一个局部的数字变量,变量名为num1num1 SETA 0x1234 ;将该变量赋值为0x1234LCLS str3 ;定义一个局部的字符串变量,变量名为str3str3 SETS “Hello!”;将该变量赋值为“Hello!” LCLL l2 ;定义一个局部的逻辑变量,变量名为l2 l2 SETL FALSE ;将该变量赋值为真6.写出下述内存变量x,y,z的地址begin e

20、qu 0x2000 map beginx field 4y field 8z field 16解:x,y,z的地址分别为0x20000,0x20004,0x2000c7.写出执行以下计算的指令序列,其中X,Y,Z,R,W均为32位无符号数,两数乘积不超过32位数范围。(1)ZW-(X+6)-(R+9) (2)Z(W*X)/16解:(1) LDR R4,=XLDR R2,R4 ; R2r4,则不需交换STR r4,r0,#4; 交换原r3与r3+4中的内容STR r3,r0,#-4 恢复原r0A3ADD r0,r0,#4; 形成下一个比较地址SUB r2,r2,#1; 内层循环计数减1CMP r

21、2,#0BNE A2SUB r1,r1,#1; 外层循环计数减1CMP r1,#0BNE A1;至此完成X数组中的数据排序,以下是将数组X中已排好序的数据存入数组YLDR r0,=x; 即 源数据地址LDR r1,=y; 即 目的数据地址MOV r2,#num; 传送个数MOV sp,0x400; 设置堆栈指针BlockcopyMOV r3,r2,LSR,#3; 字数/8BEQ copywords; 少于8,转STMFD sp!,r4-r11; 入栈保护octcopyLDMIA r0!, r4-r11; 加载8个字STMIA r1!, r4-r11; 存入目的地址SUBS r3,r3,#1BN

22、E octcopyLDMFD sp!, r4-r11; 恢复copywordsANDS r2,r2,#7BEQ stopwordcopyLDR r3,r0,#4; ;加载1个字STR r3,r1,#4;SUBS r2,r2,#1BNE wordcopystopMOV r0,#0x18LDR r1,=0x20026SWI 0x123456AREA ArrayData,DATA,READWRITEx DCD 32,8F,74,1B,39,0D8,06,0A1,78,23y DCD 0,0,0,0,0,0,0,0,0,0END10、有100个有符号的字数据,存放在内存BUFF中,试编写完整的程序(包

23、括代码段、数据段),从中找出最大值、最小值,并分别放入内存单元MAX、MIN中。答:AREA Search,CODE,READONLY ;代码段CODE32BUFF DCD 23,54,34,64,35,34,98,0F5,39 ;定义100个有符号字数据NUM EQU 100 ;定义数据个数ENTRYstart LDR R3,=BUFF ;设置初始地址LDR R4,NUM ;取数据个数LDR R0,R3 ;R0存放最大数LDR R1,R3 ;R1存放最小数loop LDR R2,R3,#4 ;取比较数据CMP R2,R0MOVGT R0,R2 ;若取出的数大于R0中数据,则更新R0CMP R

24、2,R1CMPLT R1,R2 ;若取出的数小于R1中数据,则更新R1SUBS R4,#0x01 ;计数减1BNE loop ;计数未完,继续LDR R3,=MAXSTR R0,R3LDR R3,=MINSTR R1,R3stop MOV R0,#0x18 ;返回系统LDR R1,0x20026SWI 0x123456AREA DefineData,DATA,READWRITE ;数据段MAX DCD 0 ;最大值单元MIN DCD 0 ;最小值单元END11、编写1+2+3+100的汇编程序。答:/*R0中为最后之和*/AREA GetSum,CODE,READONLYCODE32ENTRY

25、start MOV R0,#0x0 ;R0为累加和MOV R1,#0x01 ;初始值为1,以后逐次加1loop ADD R0,R0,R1ADD R1,R1,#1CMP R1,#100BLS loop ;计数未完,继续stop MOV R0,#0x18 ;返回系统LDR R1,0x20026SWI 0x123456END12、如何实现128位数的减法?举例说明。答:例如:R3R2R1R0R3R2R1R0-R7R6R5R4SUBS R0,R0,R4 ;加“S”会影响状态位,使后面的SBC有意义SBCS R1,R1,R5SBCS R2,R2,R6SBC R3,R3,R713、将存储器中起始地址M1处

26、的4个字数据移动到地址M2处。答:M1 DCD 321,5345,7454,32 ;源,4个字M2 DCD 0,0,0,0 ;目的LDR R0,=M1LDR R1,=M2LDMIA R0!,R2-R5STMIA R1!,R2-R514、参考CPSR寄存器中各标志位的含义,使处理器工作在系统模式下。答:当处理器处于用户模式时,不能进入系统模式;当处理器处于特权模式时,用指令 MSR CPSR_c,#0XDF ,能使处理器进入系统模式。15、用跳转指令实现两段程序间的切换。答:B 跳转指令 可附加条件域,实现-32M+32M范围的跳转;BL 带返回的跳转指令 保存返回地址,多用于子程序调用,实现程序切换;BX 带状态切换的跳转指令 程序切换时,带有ARM和Thumb的状态切换;BLX 带返回和状态切换的跳转指令 保存返回地址,并带有状态切换。举例:LDR R0,=5 ;R0初值为5func1 SUB R0,R0,#1 CMP R0,#2 BEQ func2 ;R0减为2则切换至func2 BNE func1func2 ADD R0,R0,#1 CMP R0,#5 BEQ func1 ;R0增至5时切换至func1 BNE fu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1