嵌入式练习题12.docx

上传人:b****4 文档编号:3136446 上传时间:2022-11-17 格式:DOCX 页数:14 大小:258.76KB
下载 相关 举报
嵌入式练习题12.docx_第1页
第1页 / 共14页
嵌入式练习题12.docx_第2页
第2页 / 共14页
嵌入式练习题12.docx_第3页
第3页 / 共14页
嵌入式练习题12.docx_第4页
第4页 / 共14页
嵌入式练习题12.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

嵌入式练习题12.docx

《嵌入式练习题12.docx》由会员分享,可在线阅读,更多相关《嵌入式练习题12.docx(14页珍藏版)》请在冰豆网上搜索。

嵌入式练习题12.docx

嵌入式练习题12

1.什么是嵌入式系统其特点有些什么

答:

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

特点:

(1)通常是面向特定应用,低功耗、体积小、集成度高;

(2)是技术密集、资金密集、高度分散、不断创新的知识集成系统;

(3)软硬件必须高效率地设计,根据应用需求量体裁衣,去除冗余;

(4)与具体应用有机结合,具有较长的生命周期;

(5)为提高执行速度和系统可靠性,软件一般固化在存储器芯片或单片机本身中;

(6)本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发。

2.嵌入式系统的BooTLoader的功能是什么

答:

BooTLoader是系统加电后,操作系统内核或用户应用程序运行之前,首先必须运行的一段程序,即引导加载程序。

通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。

3.什么是嵌入式操作系统为何要使用嵌入式操作系统

答:

嵌入到对象体系中的专用计算机应用系统。

4.目前嵌入式操作系统有哪些

答:

(1)WindowsCE

(2)VxWorks(3)pSOS(4)QNX(5)PalmOS(6)嵌入式Linux

5.构造嵌入式开发环境有哪几种形式

答:

(1)交叉开发环境

(2)软件模拟环境(3)评估电路板

6.嵌入式系统开发的基本流程

答:

(1)系统定义与需求分析

(2)规格说明

(3)系统结构设计

@

(4)构件设计

(5)系统集成

7.什么是可编程片上系统

答:

用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统PSOC.它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。

8.有时要使用Thumb技术的原因

答:

16位Thumb指令集是32位ARM指令集的子集,用16位代码密度的指令获得32位处理器的性能既节省存储空间及成本,又不降低处理性能,低功耗,小体积,低成本。

9.ARM处理器的工作模式有哪几种

答:

用户模式,系统模式,管理模式,中止模式,未定义模式,IRQ模式,FIQ模式

10.寄存器R13,R14,R15的专用功能各是什么

答:

R13寄存器的作用通常是堆栈指针,SP;

;

R14用作子程序链接寄存器,LR;

R15的功能是程序计数器,PC。

11.寄存器CPSR,SPSR的功能各是什么

答:

(1)CPSR寄存器称为当前程序状态寄存器,又称R16,在所有处理器模式下CPSR都是同一个物理寄存器,保存了程序运行的当前状态。

包括各种条件标志、中断禁止/允许位、处理器模式位以及其它状态和控制信息。

(2)在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR,当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

12.PC和LR分别使用哪个寄存器

答:

PC使用R15,LR使用R14

13.ARM的异常有哪几种,各进入何种工作模式他们退出各采用什么指令

答:

(1)复位异常,(管理模式);

(2)未定义指令异常,(未定义模式);

(3)软件中断(SWI)异常,(管理模式);

(4)指令预取中止异常,(中止模式);

(5)数据访问中止(DataAbort)(中止模式);

(6)外部中断请求(IRQ)(IRQ模式);

(7)快速中断请求(FIQ)(FIQ模式)。

异常返回指令:

(1)SWI,未定义的返回:

MOVSPC,R14;

(2)数据中止返回并重新存取:

SUBSPC,R14,#8

(3)IRQ,FIQ,预取中止的返回:

SUBSPC,R14,#4

14.什么是小端和大端存储器组织

!

答:

(1)小端存储系统中,字的地址对应该字最低有效字节所对应的地址;半字的地址对应该半字最低有效字节所对应的地址

(2)大端存储系统中,字的地址对应该字最高有效字节所对应的地址;半字的地址对应该半字最高有效字节所对应的地址

15.什么是数据的边界对齐

答:

默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。

数据的自然对其方式是指:

如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

16.ARM核现在有哪几种

答:

ARM7、ARM9、ARM9E、ARM10E,、SecurCore、StrongARM、Xscale

17.ARM的寻址方式有哪些各写一条说明。

答:

(1)立即寻址:

ADDR6,R6,#128;R6=R6+128

(2)寄存器寻址:

ADDR2,R3,R5;R2=R3+R5

(3)寄存器移位寻址:

ADDR0,R1,#3;R0=R1+8*R2

(4)寄存器间接寻址:

LDRR6,[R7];R6=[R7]

(5)变址寻址:

LDRR2,[R3,#128];R2=[R3+128]

LDRR2,[R3,#4]!

;R2=[R3+4],R3=R3+4

LDRR2,[R3],#4;R2=[R3],R3=R3+4

(6)多寄存器寻址:

LDMIAR2,{R3,R5,R7};R3=[R2],R5=[R2+4],R7=[R2+8]

(7)堆栈寻址:

STMFDSP!

{R1-R7,LR}

LDMFDSP!

{R1-R7,LR}

(8)块拷贝寻址:

LDMIAR0!

{R2-R9}

STMIAR1,{R2-R9}

(9)相对寻址

@

18.在ARM的立即寻址方式下其立即数如何在指令编码中表示

答:

在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。

其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。

因此有效立即数immediate可以表示成:

=immed_8循环右移(2×rotate_imm)

19.指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的

答:

ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD指令或SUB指令来实现该ADR指令的功能;而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令;LDR将一个32位的立即数或者一个地址值读取到寄存器中,大范围的地址读取;NOP在汇编时将被替换成ARM中的空操作。

20.指令LDRR1,=0xFFF是如何将立即数0xfff读入到R1的

答:

由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。

LDRR1,[PC,offset_to_LPOOL]

LTORG;声明数据缓冲池

LPOOLDCDOxFFF;OxFFF放在数据缓冲池中。

21.如何在c语言程序中内嵌汇编

答:

内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。

嵌入式汇编在形式上表现为独立定义的函数体

22.如何在汇编语言程序访问C语言的全局变量

答:

汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。

通过使用IMPORT关键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。

对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:

(1)unsignedchar——LDRB/STRB

(2)unsignedshort——LDRH/STRH

(3)unsignedint——LDR/STR

(4)char——LDRSB/STRSB

(5)Short——LDRSH/STRSH

23.在C语言程序如何调用汇编语言程序

}

答:

为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。

在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。

同时,在C程序调用该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。

24.汇编语言程序调用C语言程序

答:

为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。

在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。

在汇编程序中通过BL指令来调用子程序。

25.在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。

答:

变量定义;参数传递;循环条件;以空间换时间;数学方法解决问题;使用位操作;

嵌入汇编。

操作系统的内核、文件系统、编程接口等。

P192P201

25.嵌入式Linux操作系统的特点。

答:

广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制。

CE操作系统及其特点。

~

答:

WindowsCE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:

CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能;

CE具有便于携带的优点,可以运行于多种微处理器上;

CE拥有很好的电源管理系统,能延长移动设备的电池寿命;

CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。

27.程序解释

(1)

AREACOPYBS,CODE,READONLY;定义一个代码段

ENTRY;程序入口

LDRRO,=SRC;取得原数据表的表头

LDRR1,=DST;取得目标数据表的表头

MOVR2,#20;R4作为循环控制

BCOPYMOVSR3,R2,LSR,#3;R3=R2<<3逻辑右移3位

BEQCWORD;若Z=1,跳转到CWORD

OCOPYLDMIAR0!

{R4-R11};加载R0指向的地址上的多字数据,保存到R4~R11中,R0值更新

STMIAR1!

{R4-R11};将R4-R11的数据存储到R1指向的地址上,R1值更新

SUBSR3,R3,#1;R3=R3-1

BNEOCOPY;若Z=0,跳转到OCOPY

CWORDANDR2,R2,#7;R2=R2&7

BEQSTOP;若Z=1,跳转到STOP

WCOPYLDRR3,{R0},#4;将R3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写入R1

STRR3,{R1},#4;将R3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1

SUBSR2,R2,#1;R2=R2-1

BNEWCOPY;若Z=0,跳转到WCOPY

STOP……

……

(2)

在程序中常常需要根据一定的参数选择执行不同的子程序。

跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。

在本例中R3寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。

R0寄存器的值用于选择不同的子程序;当R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSub。

在ADS编译环境程序如下:

&

AREAJump,CODE,R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

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

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