答:ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式;
ARM处理器状态指ARM状态和Thumb状态 8、ARM9内部寄存器特点?
答:ARM9处理器内部共有37个32位的寄存器,其中31个用作通用寄存器,6个用作状态寄存器,每个状态寄存器只使用了其中的12位。
9、请说明MOV指令与LDR加载指令的区别和用途?
答:LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器; LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。
10、 ARM9微控制器内FLASH是多少位宽度的接口?它是通过哪个功能模块来提高FLASH的访问速度?
11、 FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?
答:FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。
向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;
非向量IRQ支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。 12、 什么是嵌入式处理器的最小系统?
答:最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。
13、 嵌入式处理器的最小系统包含那些基本电路?
答:最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测试系统(可选)。
基本电路包括:末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可选)、调试接口电路(可选)。
二、问答题
1、ARM9支持哪几种指令集,各有什么特点? 答:支持ARM指令集和Thumb指令集两种。
ARM指令集:指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的 。 Thumb指令集:指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功能。保持ARM的大多数性能上的优势,是ARM指令集的子集。
2、ARM有几种处理器模式,简单介绍该几种模式的工作特点?
答:用户模式:正常程序运行的工作模式,不能直接从用户模式切换到其它模式
系统模式:用于支持操作系统的特权任务等,可以直接切换到其它模式
管理模式:供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进
入此模式。
中止模式:用于虚拟内存和/或存储器保护。
未定义模式:支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。
快中断模式:用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ异常响应时,才进入此模式。
中断模式:用于通用中断处理,只有在IRQ异常响应时,才进入此模式。 3、什么是引导程序?什么是启动程序?两者有什么区别?
答:引导程序是ARM微处理器在上电或复位后首先运行Boot Block中的一段代码;启动程序是在运行引导程序后,正式运行用户main函数之前,还需要运行一段代码
引导程序由芯片厂商固化在芯片中,功能包括:判断运行哪个存储器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。启动程序由用户添加,功能包括:向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化,地址重映射等操作。 4、试比较说明JATG 工具和ISP 工具的异同点? 答:两者都可以将程序下载到开发板上,
JATG通过计算机的并口和开发板的JATG口下载程序;ISP通过计算机的串口和开发
板的UART0下载程序。
5、下图是ARM 处理器的当前程序状态寄存器,请简单说明各位的功能。
3130292827876543210IFTM4M3M2M1M0ARM7当前程序状态寄存器NZCV
N:负标志位,运算结果的第31位值,记录标志设置的结果。
Z:零标志位,如果标志设置操作的结果为0,则置位。
C:进位标志位,记录无符号加法溢出,减法无错位,循环移位。 V:溢出标志位,记录标志设置操作的有符号溢出。
I:中断禁止标志位,置位时禁止IRQ中断,否则允许IRQ中断使能。 F:中断禁止标志位,置位时禁止FIQ中断,否则允许FIQ中断使能。
T:控制位,置位时处理器运行在Thumb状态下,清零时处理器运行在ARM状态下。 M0~M4:模式控制位,定义处理器的7中模式。 其余位为保留位,留作将来使用。
6、下图是ARM 系统内部的存储器加速模块(MAM)连接结构示意图,试针对该示意图说明MAM 如何实现存储器加速功能。
存储器地址Flash存储器组0ARM7局部总线总线接口预取指缓存Flash存储器组1预取指缓存分支跟踪缓存分支跟踪缓存2×128位2×128位数据缓存区选择存储器数据/指令
答:存储器加速模块中Flash存储器可以存放4个32位ARM指令或8个16位Thumb指令,它们被分成两组,轮番工作,及时的为CPU提供需要的指令和数据,以防止CPU取指暂停。
程序顺序执行时,一个Flash组包含当前正在取指的指令和包含该指令的整个Flash
行,而另一个Flash组则包含或正在预取指下一个连续的代码行。
程序出现分支时,在预取指缓存区中保存着将要执行的指令,在分支跟踪缓存区中保
存着程序跳转后可执行到的指令。
程序获取数据时,如果数据不在MAM的数据缓冲区,那么MAM会执行一次Flash读操
作,把一个128位的数据行存入数据缓冲区,这样就加快了按顺序访问数据的速度。 7、 下图是ARM 系统存储器映射图,试对该映射图进行简单的描述说明。
4.0GB3.75GB3.5GB3.0GB2MBAHB外设保留2MBVPB外设0xFFFF FFFF0xF000 00000xE000 00000xC000 00000x8400 00000x8300 00000x8200 00000x8100 00000x8000 00000x7FFF E0000x4000 40000x4000 00000x0004 00000x0002 00000x0000 0000
保留给片外存储器2.0GB16MBBank316MBBank216MBBank116MBBank08KBBoot Block(片内ROM存储器重映射)保留给片内RAM存储器16KB 片内静态RAM保留给片内FLASH存储器256KB 片内非失忆性存储器(LPC2124/2214)1.0GB0.0GB128KB 片内非失忆性存储器(LPC2114/2212)ARM7系统存储器映射8、下图是ARM 系统中断向量控制器(VIC)内部结构示意图,试说明VIC 的功能特点。
软件中断使能寄存器VICSoftInt软件中断清零寄存器VICSoftIntClear中断源[31:0]IRQ中断状态寄存器VICIRQStatus中断状态寄存器VICRawIntr中断使能清零寄存器VICIntEnClrFIQIRQFIQ中断状态寄存器VICFIQStatusFIQ中断信号中断使能寄存器VICIntEnable中断选择寄存器VICIntSelect高向量IRQ0向量IRQ0控制寄存器VICVectCntl0向量IRQ0使能中断源IRQ0VectAddr0优先级向量IRQ15向量地址0寄存器VICVectAddr0硬件优先级选择IRQ0IRQ中断信号向量IRQ15控制寄存器VICVectCntl15向量IRQ15使能中断源IRQ15VectAddr15向量地址15寄存器VICVectAddr15IRQ15DefIRQ向量地址寄存器VICVectAddr低非向量IRQ默认向量地址寄存器VICDefVectAddrDefIRQDefVectAddr
9、下图是ARM 系统每个I/O 端口的内部寄存器控制结构示意图,看图填写下表的寄存器功能说明内容。 序号 1 2 3 4 通用名称 IOPIN IOSET IODIR IOCLR 功能说明 从该寄存器中可以读出引脚的当前状态,和方向模式无关 该寄存器控制引脚输出高电平,为1时高电平,为0无效 该寄存器单独控制每个IO口的方向,为1时输出,为0时输入 该寄存器控制引脚输出低电平,为1时低电平为0无效 outinIOxDIRIOxDIRIOxCLRIOxSET10向量地址选择PINSELxPINSELxIOxPIN 10、下图是ARM7系统内部的定时器结构示意图,试说明内部定时器的功能特点。
中断标志寄存器(IR)匹配功能匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配控制寄存器(MCR)MAT[3:0]外部匹配寄存器(EMR)0x0000 0000比较器定时器计数值捕获功能捕获寄存器0(CR0)捕获寄存器1(CR1)捕获寄存器2(CR2)捕获寄存器3(CR3)CAP[3:0]捕获控制寄存器(CCR)定时器、计数器(TC)复位定时器控制寄存器(TCR)使能预分频器(PR、PC)PCLK