嵌入式系统课后习题部分答案 联系客服

发布时间 : 星期一 文章嵌入式系统课后习题部分答案更新完毕开始阅读75a29bf2f90f76c661371a7d

第一章

1-1.简述嵌入式系统的定义。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 1-2.简述嵌入式系统的组成。

从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。其中嵌入式处理器通常是单片机或微控制器,支撑硬件主要包括存储介质、通信部件和显示部件等,嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件及应用中间件等。 嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。嵌入式系统硬件平台为各种嵌入式器件、设备(如ARM 、PowerPC、Xscale、MIPS等);嵌入式操作系统是指在嵌入式Linux、uCLinux、WinCE等。

1-3.ARM7处理器使用的是(ARMv4)指令集。ARM7内核采用冯·诺依曼体系结构,数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。

1-6.ARM9采用的是(5)级流水线设计。存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分数据总线和指令总线。 第二章

2-1.简述ARM可以工作在几种模式。

ARM处理器共有7种工作模式:用户模式(User)、快速终端模式(FIQ)、外部中断模式(IRQ)、特权模式(svc)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)。除用户模式外其他6种模式称为特权模式。在特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。再除去系统模式,其余5种模式又称为异常模式。 2-2.ARM核有多少个寄存器?

ARM处理器有如下37个32位长的寄存器: (1)30个通用寄存器; (2)6个状态寄存器:1个CPSR(Current Program Status Register,当前程序状态寄存器),5个SPSR(Saved Program Status Register,备份程序状态寄存器);

(3)1个PC(Program Counter,程序计数器)。 2-3.什么寄存器用于存储 PC和LR寄存器? 寄存器R15称为程序计数器(Program Counter,PC),寄存器R14又被称为连接寄存器(Link Register,LR)。 2-4.R13通常用来存储什么?

R13(the Stack Point,SP,栈指向),用于存储堆栈指针。

2-5.系统模式使用的寄存器最少。(不确定) 2-6.CPSR的(第5位T位)反映了处理器的状态。P15

2-7.ARM有哪几个异常类型?P20

ARM体系结构中,存在7种异常处理。

复位异常、未定义指令异常、软中断、预取指令异常、数据访问中止异常、外部中断请求、快速中断请求。 2-8.复位后,ARM处理器处于何种模式、何种状态? ARM状态?!(不清楚) 2-9.BIC指令有什么作用?

BIC(Bit Clear)位清零指令,将寄存器Rn的值与第2个源操作数shifter_operand的值的反码按位做“逻辑与”操作,结果保存到Rd中。指令的语法格式

BIC{}{S} ,, 2-10.当指令SWI指令时,会发生什么?

软件中断指令(Software Interrupt,SWI)用于产生软中断,从而实现从用户模式变换到管理模式,CPSR保存到管理模式的SPSR中,执行转移到SWI向量,在其他模式下也可以使用SWI指令,处理器同样切换到管理模式。

第三章

3-2.如何从ARM状态切换到Thumb状态?P54

对于汇编程序来说,可以有两种方法来实现程序状态的切换。第一种方法是利用连接器提供的交互子程序Veneer来实现程序状态的切换,这时用户可以使用指令BL来调用子程序;第二种方法是用户自己编写状态切换的程序。 BX指令

ARM状态下的BX指令,使程序跳转到指令中指定的参数Rm所指定的地址执行程序,Rm的第0位复制到CPSR中的T位,bits[31∶1]移入PC。 指令的语法格式如下: BX{}

3-3.在ARM汇编中如何定义一个全局的数字变量?P61

GBLA、GBLL和GBLS伪操作用于定义一个ARM程序中的全局变量并将其初始化。其中GBLA伪操作用于定义一个全局的数字变量并初始化为0。格式为:

GBLA 3-5.AAPCS过程调用标准的内容是什么?(书上没有,一下为网上收集的内容,如果有听课的同学,请更正并通知大家) 过程调用标准ATPCS(ARM-Thumb Produce Call Standard)规定了子程序间相互调用的基本规则, ATPCS规定子程序调用过程中寄存器的使用规则、数据栈的使用规则及参数的传递规则。 ? 寄存器使用规则

(1) 子程序间通过寄存器R0~R3传递参数,寄存器R0~R3可记作A1~A4。被调用的子程序在返回前无

须恢复寄存器R0~R3的内容。

(2) 在子程序中,ARM状态下使用寄存器R4~R11来保存局部变量,寄存器R4~R11可记作V1~V8;Thumb

状态下只能使用R4~R7来保存局部变量。

(3) 寄存器R12用作子程序间调用时临时保存栈指针,函数返回时使用该寄存器进行出栈,记作IP;在子

程序间的链接代码中常有这种使用规则。

(4) 通用寄存器R13用作数据栈指针,记作SP。 (5) 通用寄存器R14用作链接寄存器 ;

(6) 通用寄存器R15用作程序计数器,记作PC 。

? 数据栈使用规则

过程调用标准规定数据栈为FD类型,并且对数据栈的操作时要求8字节对齐的。 ? 参数传递规则

1. 参数个数可变的子程序参数传递规则

对于参数个数可变的子程序,当参数个数不超过4个时,可以使用寄存器R0~R3来传递;当参数个数超过4个时,还可以使用数据栈进行参数传递。

2. 参数个数固定的子程序参数传递规则

如果系统不包含浮点运算的硬件部件且没有浮点参数时,则依次将各参数传送到寄存器R0~R3中,如果参数个数多于4个,将剩余的字数据通过数据栈来传递;

如果包括浮点参数则要通过相应的规则将浮点参数转换为整数参数,然后依次将各参数传送到寄存器R0~R3中。如果参数多于4个,将剩余字数据传送到数据栈中,入栈的顺序与参数顺序相反,即最后一个字数据先入栈。

? 如果系统包含浮点运算的硬件部件,将按照如下规则传递: 各个浮点参数按顺序处理 为每个浮点参数分配寄存器。分配方法是:找到编号最小的满足该浮点参数需要的一组连续的FP寄存器进行参数传递。

? 子程序结果返回规则

(1)结果为一个32位的整数时,通过寄存器R0返回;结果为一个64位整数时,通过寄存器R0,R1返回。

(2)结果为一个浮点数时,可以通过浮点运算部件的寄存器F0、D0或者S0来返回;结果为复合型的浮点数(如复数)时,可以通过寄存器F0~Fn或者D0~Dn来返回。 (3)对于位数更多的结果,需要通过内存来传递。 3-7.汇编代码中如何调用C代码中定义的函数?P90

如C中定义函数int g(int,int,int);先在汇编程序开始处声明C程序g(),如:IMPORT g 汇编中调用指令为:BL g

网上资料:在ARM开发工具编译环境下,汇编程序中要使用IMPORT伪操作声明将要调用的C程序。

第四章

主要考ARM汇编指令实验一、二基本上是MOV、LDR、STR指令的应用。P110 第五章

5-4.Nor Flash的特点是什么?P134

(以上为网上的说法)

Flash存储器是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作。

1) Nor Flash带有通用的SRAM接口,可以轻松的挂接在CPU的地址、数据总线上,对CPU接口要求低。其特点

是芯片内执行(XIP),这样,应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。 2) 容量较小,一般在1~16M之间,但是价格要比 Nand Flash高。 3) 不存在坏块问题,位翻转现象出现的几率较小。 4) 寿命:擦写次数在十万次。

5) 其升级比较麻烦,更换不同容量的器件时不方便。

6) 读写性能:要求在进行擦除前先要将目标块内所有的位都写为1.,执行一个写入/擦除操作的时间约为5s,而

Nand为4ms,但是读速度稍快一些。

5-5.比较 Nand Flash和Nor Flash的不同 。(同上,见P134)6方面不同

1.接口对比

2.容量和成本对比 3.可靠性对比 4.寿命对比 5.升级对比 6.读写性能对比

本章还会考察存储空间细节,OM引脚设置。 第六章

主要考6.1实验程序,应该会考IO口的数据赋值(见P150)。 void led_on(void) { int i,nOut; nOut = 0xF0; //rGPFDAT=nOut & 0x10; rGPFDAT=nOut & 0xd0; //该形式的语句为赋值语句。 for(i=0;i<100000;i++); rGPFDAT = nOut & 0x50; //0x70 for(i=0;i<100000;i++); rGPFDAT=nOut & 0x40; //0x00 for(i=0;i<100000;i++); rGPFDAT=nOut & 0x00; //0x30 for(i=0;i<100000;i++); rGPFDAT=nOut ; }

第七章

7-3.简述Bootloader的作用。(P208,并且注意其组成及结构。)

Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映

像表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。

对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。

嵌入式系统世界已经有各种各样的Bootloader,种类划分也有多种方式。除了按照处理器体系结构不同划分以外,还有功能复杂程度的不同。

7-8.利用NFS调试新文件系统有什么好处?(P253,还要熟悉其搭建过程和指令) 包括以下几个方面:

1) 本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。 2) 用户不必在每个网络上机器里头都有一个home目录。Home目录可以被放在NFS服务器上并且在网络上处处可用。 3) 诸如软驱、CD-ROM之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的

数量。