人人范文网 范文大全

嵌入式试题总结

发布时间:2020-03-02 02:58:35 来源:范文大全 收藏本文 下载本文 手机版

07电信三班13栋216 一:填空(30分、15空)

1、交叉开发环境、嵌入式系统开发的调试方法(填空一)

答:

交叉开发环境:交叉开发环境是指实现编译、链接和调试应用程序代码的环境与运行应用程序的环境不同,它分散在有通信连接的宿主机与目标机环境之中。

嵌入式系统的调试方法: a.源程序模拟器方式 b.监控器方式 c.仿真器方式

2、BSP的定义、作用(填空二) 答:

硬件抽象层称为BSP,即板级支持包(Board Support Package)。板级支持包是操作系统与目标应用硬件环境的中间接口,它是软件包中具有平台依赖性的那一部分。

板级支持包的主要功能包括两部分: a.在系统启动时,对硬件进行初始化

b.为驱动程序提供访问硬件的手段

3、ARM处理器的特点、寄存器数目及作用(填空三) 答:

ARM处理器的三大特点是: a.耗电少、成本低、功能强; b.16位/32位双指令集;

c.全球众多合作伙伴保证供应。

ARM内含37个寄存器,其中: a.31个通用32位寄存器 b.6个状态寄存器

4、中断的处理流程及其寄存器的作用、相关的操作等(填空四) 答:

处理中断的步骤如下:

(1)保存现场。保存当前的PC值到R14,保存当前的程序运行状态到SPSR。 (2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。

(3)获取中断源。以异常向量表保存在低地址处为例,若是IRQ中断,则PC指针跳到0x18处;若是FIQ中断,则跳到0x1C处。IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来PC指针跳入中断服务子程序处理中断。

(4)中断处理。为各种中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识

07电信三班13栋216 别到底哪一个中断发生了。进而调用相应的函数进行中断处理。

(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,进而继续执行被中断的程序。

中断控制器使用的寄存器

• SRCPND (SOURCE PENDING REGISTER) • 中断源挂起寄存器

• INTMOD (INTERRUPT MODE REGISTER) • 中断模式寄存器

• INTMSK (INTERRUPT MASK REGISTER) • 中断屏蔽寄存器

• PRIORITY ( PRIORITY REGISTER) • 中断优先级控制寄存器

• INTPND (INTERRUPT PENDING REGISTER) • 中断挂起寄存器

• INTOFFSET (INTERRUPT OFFSET REGISTER) • 中断偏移寄存器

• SUBSRCPND (INTERRUPT SUB SOURCE PENDING) • 子中断源挂起寄存器

INTSUBMSK (INTERRUPT SUB MASK REGISTER) • 副中断屏蔽寄存器。

a.SRCPND/ SUBSRCPND, 这两个寄存器的作用是用于标示出哪个中断请求被触发。

• b.INTMOD寄存器作用是指定该位相应的中断源处理模式(IRQ还是FIQ)。若某位为0,则该位相对应的中断按IRQ模式处理,为1则以FIQ模式进行处理,该寄存器初始化值为0x00000000,即所有中断皆以IRQ模式进行处理。

c.INTMSK/ INTSUBMSK 寄存器为中断屏蔽寄存器 ,作用是决定该位相应的中断请求是否被处理。若某位被设置为1,则该位相对应的中断产生后将被忽略(CPU不处理该中断请求),设置为0则对其进行处理。这两个寄存器初始化后的值是0xFFFFFFFF和0x7FF,既默认情况下所有的中断都是被屏蔽的。

• d.PRIORITY ( PRIORITY REGISTER),中断优先级控制寄存器,设置中断优先级

• e.INTPND (INTERRUPT PENDING REGISTER) 中断挂起寄存器,INTPND 某个位被置1 ,则表示CPU响应了该位相应的中断进行处理。

f.INTOFFSET (INTERRUPT OFFSET REGISTER)中断偏移寄存器,作用只是用于表明哪个中断正在被处理。

二:简答(30分、6题)

5、单片机系统、嵌入式系统和SOC系统三者有何区别和联系?(简答一)

07电信三班13栋216 答:嵌入式系统与单片机系统的区别

• 目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计;

• 单片机系统多为4位、8位、16位机,不适合运行操作系统,难以进行复杂的运算及处理功能;

• 嵌入式系统强调基于平台的设计、软硬件协同设计,单片机大多采用软硬件流水设计;

• 嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同。

• SoC就是System on Chip,SoC是一种基于IP(Intellectual Property)核嵌入式系统设计技术。 • 它结合了许多功能区块,将功能做在一个芯片上,ARM RISC、MIPS RISC、DSP或是其他的微处理器核心,加上通信的接口单元,例如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE139

4、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。

• 嵌入式片上系统设计的关键是IP核的设计。IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术。

6、嵌入式系统的定义、组成(简答二) 答:

嵌入式系统的狭义定义:使用嵌入式微处理器构成的独立系统,并有自己的操作系统,具有特定功能,用于特定场合的系统。

嵌入式系统的组成:嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。

7、实时系统的概念、RTOS和普通OS的区别(简答三) 答:

实时系统(Real Time System)是指产生系统输出的时间对系统至关重要的系统。从输入到输出的滞后时间必须足够小到一个可以接受的时限内。

RTOS与通用计算机OS的区别:

a.实时性。响应速度快,只有几微秒;执行时间确定、可预测; b.代码尺寸小。10~100KB,节省内存空间,降低成本; c.应用程序开发较难;

d.需要专用开发工具:仿真器、编译器和调试器等。

8、ARM的数据类型和处理器模式(简答四) 答:

ARM处理器支持下列数据类型: a.Byte

字节, 8位;

b.Halfword 半字, 16位(半字必须与2字节边界对准); c.Word

字,32 位(字必须与4字节边界对准)。 ARM体系结构支持7种处理器模式。

07电信三班13栋216 处理用户 FIQ IRQ 管理 中止 未定系统

模 式 usr fiq irq svc abt und sys

说 明

正常程序执行模式

支持高速数据传送或通道处理 用于通用中断处理 操作系统保护模式

实现虚拟存储器和/或存储器保护 支持硬件协处理器的软件仿真 运行特权操作系统任务

9、什么是写直达和写回Cache操作,各有何特点?(简答五) 答:

写直达、写回、标记法是Cache的三种写操作方式,即三种不同的Cache更新算法。

写直达,顾名思义,它的做法是当Cache写命中时,Cache与主存同时发生写修改。写直达法是写Cache与写主存同步进行。其优点是Cache每行无需设置一个修改位及相应的判测逻辑;其缺点是Cache对CPU向主存的写操作无高速缓冲功能,降低了Cache的功效。 •

写回,当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,只当此行被换出时才写回主存。这种策略使Cache在CPU与主存之间的读方向和写方向方面都起到高速缓存的作用。对一Cache行的多次写命中都在Cache中快速完成修改,只是需被替换时才写回速度较慢的主存,减少了访问主存的次数,从而提高了效率。

10、ARM为何集成了32位的ARM指令集和16位的Thumb指令集?(简答六) 答:

ARM指令集是32位的,THUMB是16位的。他们可以动态切换。你可以认为ARM是80386,而THUMB是8086。

在一般的情况下, Thumb 指令与ARM 指令的时间效率和空间效率关系为:

— Thumb 代码所需的存储空间约为ARM 代码的60%~70% — Thumb 代码使用的指令数比ARM 代码多约30%~40% — 若使用32 位的存储器,ARM 代码比Thumb 代码快约40% — 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50%

07电信三班13栋216 — 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30%

11、基于ARM的硬件启动流程(简答七) 答:

硬件启动程序的工作一般包括: (1) 分配中断向量表 (2) 初始化存储器系统

(3) 初始化各工作模式下的堆栈 (4) 初始化有特殊要求的硬件模块 (5) 初始化用户程序的执行环境 (6) 切换处理器的工作模式 (7) 呼叫主应用程序

三:应用(20分、2题)

12、.C程序和汇编的互相调用的应用

答:汇编程序调用C程序的方法为:首先在汇编程序中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数。

C程序调用汇编子程序的方法为:首先在汇编程序中使用EXPORT伪指令声明被调用的子程序,表示该子程序将在其他文件中被调用;然后在C程序中使用extern关键字声明要调用的汇编子程序为外部函数。

举例:

A.汇编程序调用C程序的方法为:首先在汇编程序中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数。

例如在一个C源文件中定义了如下求和函数: int add(int x,int y){

return(x+y); } 调用add()函数的汇编程序结构如下:

IMPORT add

;声明要调用的C函数 …

MOV r0,1 MOV r1,2 BL add

;调用C函数add B.C程序调用汇编子程序的方法为:首先在汇编程序中使用EXPORT伪指令声明被调用的子程序,表示该子程序将在其他文件中被调用;然后在C程序中使用extern关键字声明要调用的汇编子程序为外部函数。

例如在一个汇编源文件中定义了如下求和函数: EXPORT add

;声明add子程序将被外部函数调用 …

07电信三班13栋216 add

;求和子程序add

ADD r0,r0,r1

MOV pc,lr

在一个C程序的main()函数中对add汇编子程序进行了调用: extern int add(int x,int y);

//声明add为外部函数 void main(){

int a=1,b=2,c;

c=add(a,b);

//调用add子程序

… }

13、什么是big-endian和little-endian,编写一段程序测试你所使用的计算机的体系结构采用哪一种存储机制?

答:big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。

int x=0x12345678; int *p=&x; if(*(char*)p==0x78)

printf(“little-endian”) else if(*(char*)p==0x12)

printf(“big-endian”);

四:编程(10分、1题)

14、 GPIO的编程(例:控制LED、有配置图、表)

答:举例:通过对G口的操作控制CPU板左下角的LED1和LED2实现轮流闪烁。

void Main(void){

int flag, i;

Target_Init(); //进行硬件初始化操作,包括对I/O口的初始化操作

for(;;){

if(flag==0){

for(i=0;i

rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000; //配置第

8、第9位为输出引脚

rGPGDAT = rGPGDAT & 0xeff | 0x200; //第8位输出为低电平

//第9位输出高电平

for(i=0;i

flag = 1;

}

07电信三班13栋216

else {

for(i=0;i

rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000; //配置第

8、第9位为输出引脚

rGPGDAT = rGPGDAT & 0xdff | 0x100; //第8位输出为高电平

//第9位输出低电平

for(i=0;i

flag = 0; }

} }

五:分析(10分、1题)

15、分析:中断过程举例

初始化条件:(1) INTMASK的值为0x400, PRIORITY寄存器中的ARB_MODE2值为0,ARB_SEL2的值为00。INTMOD的值为0xffffffff。

(2) INT_TIMER0, INT_TIMER2和INT_UART2三个中断同时触发。 问: (1)此时SRCPND、INTPND、INTOFFSET的值分别是什么?

(2)一次中断处理完毕后, SRCPND、INTPND、INTOFFSET的值又是什么? 我们用INT_TIMER0, INT_TIMER2和INT_UART0三个中断完整地介绍一次中断异常处理。首先我们得做几个假设: 假设1:这三个中断的屏蔽被取消。

假设2:PRIORITY寄存器中ARB_MODE2,ARB_MODE5皆为0,即不进行优先级的自动旋转排序,任何时候ARBITER2,ARBITER5控制的中断组优先级次序分别为0-1-2-3-4-5和1-2-3-4。 假设3:这三个中断皆为IRQ类型。 假设4:这三个中断同时被触发。

INT_TIMER0,INT_TIMER2和INT_UART0三个中断被同时触发,此时三个中断信号流向SRCPND寄存器,使该寄存器中的第10位,12位,28位被置为1,中断信号继续向前流经INTMASK寄存器,这三个中断都没有被屏蔽,于是信号进一步流经INTMODE寄存器,这三个中断皆为IRQ类型,故中断信号继续向前流向PRIORITY寄存器,经过优先级判断,INT_TIMER0中断信号使INTPND寄存器的第10位置1(INT_TIMER0优先级最高),此时INTOFFSET寄存器的值为10,CPU转向相应的中断服务例程进行处理。处理完毕后,我们的程序将INTPND和SRCPND的第10置为0,至此INT_TIMER0中断处理完毕。此时SRCPND的第12位,28位仍为1(这两个中断请求未被处理),故他们会继续被CPU已刚才描述的方式进行处理。

嵌入式总结

嵌入式存储卡总结

嵌入式 知识点总结

嵌入式学习总结

嵌入式论文总结

嵌入式复习总结

嵌入式考试总结

嵌入式Linux总结

嵌入式培训总结

实习总结嵌入式

嵌入式试题总结
《嵌入式试题总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档