1、什么是系统引导程序?其作用是什么?
系统引导程序是在硬件上执行的第一段程序代码。它通常安排在系统复位异常向量地址处。其主要功能:
关中断、初始化各模式的堆栈、初始化存储器等功能后,执行指令“BL __main”跳转到C语言的主函数处执行。
2、ARM微处理器的指令流水采用了典型的RISC五级流水线结构,将指令执行过程分为取指、译码、执行、访存和写回5个步骤。
3、 ARM处理器支持下列数据类型:字节8位;半字16位(占用两个字节)、字32位(占用4个字节)、双字。
4、ARM的存储组织结构: 32位长的地址,它把存储器看成是0地址开始的字节的线性组合,即一个地址对应于一个存储字节,其范围是232个字节(8位二进制数)。
5、 S5PV210微处理器的内部总共有40个32位的寄存器,其中33个用作通用寄存器,7个用作状态寄存器,每个状态寄存器只使用了其中的12位。这40个寄存器根据处理器的状态及其工作模式的不同而被安排成不同的组。
6、几个重要的寄存器功能及使用方法:
R13—堆栈指针;R14—链接寄存器;R15—程序计数器;
CPSR-状态寄存器;SPSR—备份的状态寄存器
7、什么是异常和异常向量表
异常是系统处理外部异步事件的方法。
异常出现后处理器强制从异常类型所对应的固定存储器地址开始执行程序,这些存储器地址称为异常向量表。
8、进入异常时,ARM内核完成以下动作:
(1)将下一条指令的地址保存在相应的LR寄存器中。
(2)将CPSR复制到相应的SPSR中。
(3)迫使CPSR模式位M[4:0]的值设置成对应的异常模式值
(4)迫使PC从相关的异常向量取下一条指令。
(5)用户可以设置中断禁止位来阻止或打开异常嵌套。如果在异常发生时处理器是在Thumb状态下,那么当用中断向量地址加载PC时,自动切换进入ARM状态。
9、在完成异常处理后,ARM9完成以下动作:
(1)将LR寄存器的值减去相应的偏移量(偏移量根据异常的不同而不同),送到PC中。
(2)将SPSR复制回CPSR中。
(3)清除中断禁止位标志。
10、跳转指令
跳转指令B;带链接的跳转指令BL;
带状态切换的跳转指令BX;带返回和状态切换的跳转指令BLX。
示例:
ADRL R0,ThumbFun+1 ;将Thumb程序的入口地址加1存入R0
BX R0 ; 跳转到R0指定的地址,
;并根据R0的最低位来切换处理器状态
11)状态寄存器存取指令MRS和MSR
例如:编程实现禁止IRQ中断且将处理器切换至管理模式。
12)什么是系统引导程序?其作用是什么?
系统引导程序是在硬件上执行的第一段程序代码。它通常安排在系统复位异常向量地址处。其主要功能:
关中断、初始化各模式的堆栈、初始化存储器等功能后,执行指令“BL __main”跳转到C语言的主函数处执行。
13、arm上实现内存管理的单元叫存储器管理单元。
MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM中还是在大容量存储器设备中。如果数据不在RAM中,MMU将产生缺页中断。
MMU的两个主要功能如下:
1.将虚地址转换成物理地址。
2.控制存储器存取允许。 嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如FLASH、SRAM、SDRAM、ROM等,这些不同类型的存储器件速度和宽度等各不相同;在访问存储单元时,可能采取平板式的地址映射机制对其操作,或需要使用虚拟地址对其进行读写;系统中,需引入存储保护机制,增强系统的安全性。为适应如此复杂的存储体系要求,ARM处理器中引入了存储管理单元来管理存储系统。
14、S5PV210微处理器的启动过程
S5PV210上电将从IROM处执行固化的启动代码BL0,它对时钟等初始化、对启动设备进行判断,并从启动设备中复制BL1(最大16KB)到IRAM(地址0xd0020000处,其中0xd0020010之前的16个字节储存的BL1的校验信息和BL1尺寸)中,并对BL1进行校验,校验成功后转入BL1进行执行。
15、随机存储器和只读存储器有何区别?
只读存储器就是 一旦存储上数据后就无法更改,比较BIOS存储芯片, 举个简单例子一次性光盘就是只读存储器.
随机存储器就是可以随时读数据,随时写数据. 比如内存条, 这种存储器是靠电信号来保存数据的. 如果断电则数据将全部丢失.
16、请解释SRAM,DRAM,SDRAM
ROM是只读内存(Read-OnlyMemory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失
DRAM(Dynamic RandomAccess Memory),即动态随机存取存储器最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。(关机就会丢失数据)
SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据
SRAM是single-transistorDRAM的缩写,中文全称是单晶体管DRAM。[1]
SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。所以在主板上SRAM存储器要占用一部分面积
SDRAM:Synchronous Dynamic Random AccessMemory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写.
17、MMU(Memory Management Unit,内存管理单元)在现代处理器中扮演着非常重要的角色。操作系统通过使用处理器的MMU功能,能实现以下功能:
1)虚拟内存。有了虚拟内存,可以在处理器上运行比实际物理内存大的应用程序。为了使用虚拟内存,操作系统通常要设置一个交换分区(通常是硬盘),通过将不活跃的内存中的数据放入交换分区,操作系统可以腾出其空间来为其它的程序服务。虚拟内存是通过虚拟地址来实现的。
2)内存保护。根据需要对特定的内存区块的访问进行保护,通过这一功能,我们可以将特定的内存块设置成只读、只写或是可同时读写。
18、bootloader如何加载
BL0是已固化,然后从0xD0020000~0xD003fff,
BL1前16个字节存储,后16K-16为BL1,如果代码段大于16k-16,则有BL2。
u-boot的作用
(1)实现串口的功能
(2)加载后续程序
19、异常向量表与中断向量表的区别
中断向量和异常向量通常放在同一个表中,在8086cpu中并没有区分中断和异常,也就是在8086cpu中两者的概念是一样的,在80386以后的cpu中两者在概念上有所区别,但处理的方式差不多,异常是由内部事件引起的,比如,在进行除法运算时,除数为零,就会引发一个除法错误异常.异常有几种类型:故障,陷阱,中止
而中断是外部事件引发的,常常由硬件用于通知cpu一个操作的完成.