嵌入式面试题——ARM面试题(三)

来源:互联网 发布:树上10只鸟 程序员 编辑:程序博客网 时间:2024/06/10 03:17

填空题

1.在线仿真包括3个过程:_____、______、______。

答案:装载映像文件、程序执行、查看寄存器和内存空间

 

2.目标机上的Angel可以实现的功能为:_____、______、______、_____、______。

答案:基本的调试功能、C语言库的支持、通信支持、任务管理功能、异常中断处理

 

3.使用Angel开发应用程序包括下面的步骤:_____;______;______;_____。

答案:在ARMulator或开发板上开发应用程序;建立严重依赖Angel的应用程序;建立很少依赖Angel的应用程序;生成最终的产品

 

4.当应用程序在特权模式下调用Angel的SWI时,必须保证它的特权模式数据栈为_____类型,并且有足够Angel进入SWI时需要的可用空间。

答案:FD(满且地址递减)

 

5.JTAG调试接口的结构由____、______、______及______组成。

答案:测试访问端口TAP(Test Access Port)控制器、旁路(bypass)寄存器、指令寄存器和数据寄存器、ARM架构处理器

 

 

 

问答题:

1.初始化存储器有哪几种方法?

答:初始化存储器就是设置ARM处理器的某些寄存器,这可以通过两种方法完成:第一种,如果ARM处理器内部有SRAM,则可以建立一个简单的工程,该工程对涉及存储器映射的寄存器初始化;

第二种,利用AXD的命令行配置那些寄存器,具体步骤如下:

首先在C:\下建立文本文件memory_map.txt,该文件设置寄存器的值,其格式为:

setmem ADDRESS,DATA,SIZE

其中,ADDRESS是寄存器的地址,DATA是该寄存器要设置的值,SIZE是数据宽度,一般为32,可以设置多个寄存器;然后打开AXD Debugger的命令行窗口,执行下面的命令,配置对应的控制寄存器。

>obey C:\memory_map.txt

执行完毕后,memory_map.txt中的寄存器就配置完毕,存储器就映射到预定的地址空间了。

 

2.基于Angel的调试系统由哪两部分组成?请详细描述。

答:基于Angel的调试系统由下面两部分组成,这两部分之间通过一定的通信信道连接起来,通常使用的信道是串行口。

位于主机上的调试器(debugger)。它接受用户命令,将其发送到目标机上的Angel,使其执行一定的操作,并将目标机上Angel返回的数据以一定的格式显示用户。ARM公司提供的各调试器都支持Angel。对于其他的调试器,如果它支持Angel所使用的调试协议ADP,则也可以支持Angel。

位于目标机上的Angel调试监控程序。它接受主机上调试器传来的命令,返回相应的数据。通常Angel有两个版本:完整版本包含所有的Angel功能,主要可以用于调试应用系统;最小版本包含一些有限的功能,可以包含在最终的产品中。

 

3.使用Angel所需要的资源有哪些,请描述。

答:使用Angel所需要的资源包括:

系统资源。Angel使用的系统资源包括可配置的系统资源和不可配置的系统资源。可配置的系统资源包括一个ARM程序的SWI号和一个Thumb程序的SWI号;不可配置的资源包括两条未定义的ARM指令和一条未定义的Thumb指令。

ROM和RAM资源。Angel需要使用ROM来保存其代码,使用RAM来保存其数据。当需要下载一个新版本的Angel时,还需要使用额外的RAM资源。

异常中断向量。Angel通过初始化系统的异常中断向量表来安装自己,从而使得Angel有机会接管系统的控制权,来完成相应的功能。

FIQ及IRQ异常中断。Angel需要使用下面的异常中断来实现主机和目标机之间的通信功能。推荐使用IRQ异常中断。

FIQ异常中断;

IRQ异常中断;

同时使用FIQ异常中断和IRQ异常中断。

数据栈。Angel需要使用自己的特权模式的数据栈。如果用户应用程序需要调用Angel功能,则用户需要建立自己的数据栈。

 

4.使用完整版本的Angel开发应用程序时有什么编程限制?

答:在使用完整版本的Angel开发应用程序时,由于Angel需要一定的资源,给程序设计带来了一定的限制。这些限制包括:

Angel需要使用自己的处理器特权模式下的数据栈,因此在Angel和实时操作系统RTOS一起使用时,必须确保在Angel运行时,RTOS不会切换处理器的模式。否则可能造成死机。

用户应用程序尽量避免使用SWI 0x123456以及SWI 0xab。这两个SWI异常中断号保留给Angel使用。Angel使用它们来实现目标程序中C语言运行时库的semihosting请求。

如果用户应用程序中使用了SWI,则在退出SWI时必须将各寄存器的值还原成进入SWI时的值。

如果应用程序中需要使用未定义的指令异常中断,必须注意Angel使用了未定义的指令异常中断。

 

5.JTAG测试信号由哪五个信号组成,并分别描述。

答:JTAG测试信号由下面五个信号组成,分别描述如下。

TRST:测试复位输入信号,测试接口初始化。

TCK:测试时钟,在TCK时钟的同步作用下,通过TDI和TDO引脚串行移入/移出数据或指令;同时,也为测试访问端口TAP控制器的状态机提供时钟。

TMS:测试模式选择信号,控制测试接口状态机的操作。

TDI:测试数据输入线,其串行输入数据至边界扫描寄存器或指令寄存器(由TAP控制器的当前状态及已保存在指令寄存器中的指令来控制)。

TDO:测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片。

0 0
原创粉丝点击