您的位置 首页 国产IC

ARM嵌入式体系初始化进程

基于ARM内核微处理器的系统一般为复杂的片上系统,这种复杂系统的多数硬件模块都是可配置的,需要软件设置为特定的工作状态,因此在用户

根据ARM内核微处理器的体系一般为杂乱的片上体系,这种杂乱体系的大都硬件模块都是可配 置的,需求软件设置为特定的作业状况,因而在用户的使用程序之前,需求有一些专门的代码完结对体系的初始化。由于这类代码直接面临ARM处理器内核和硬件 控制器,一般都运用汇编语言完结。初始化代码完结的操作与具有的硬件渠道相关,但一般包含一下的内容:

--初始化反常向量表(间断向量表)
--初始化存储器体系
--初始化仓库
--初始化有特殊要求的端口和设备
--初始化使用程序的运转环境
--调用主使用程序
1、初始化反常向量表(间断向量表)
ARM微处理器结构要求间断向量表有必要放置在从0x00地址开端的接连8×4字节的空间内,每逢一个间断(反常)产生今后,ARM微处理器便强制把PC置 为对应的间断向量。由于每个间断只占用向量表中一个字(4个字节)的存储空间,只能放一条ARM指令,所以一般为跳转指令,使程序从向量表跳转到存储器的 其他方位,履行真实的间断处理。
详细代码完结如下:
AREA Init,CODE,READONLY
ENTRY
B Reset_Handler ;反常复位
B Undef_Handler ;未定义指令反常
B SWI_Handler ;软件间断
B PreAbort_Handler ;指令预取间断
B DataAbord_Handler ;数据间断
B . ;体系保存
B IRQ_Handler ;一般外部间断
B FIQ_Handler ;快速外部间断
……….
2、初始化存储器体系
首要是对体系存储器控制器(MMU)的初始化。由于存储器控制器并不是ARM架构的一部分,不同芯片的完结办法各不相同。由于运算才能和寻址才能的强壮, 根据ARM内核的微处理器体系一般都需求外扩展各种类型的存储器。关于存储器体系的初始化一般包含如下几个方面:
--存储器类型、时序和总线宽度的装备
--存储器地址的装备
(1)存储器类型
根据ARM微处理体系的存储器一般有如下几类:SARM,DRAM,Flah,一起,即便同类存储器也有拜访速度上的不同。其间,SRAM和Flah归于 静态存储器,能够共用存储器端口,而DRAM有动态刷新和地址复用等特征,需求专门的存储器端口。
(2)时序
存储器端口的接口时序优化对体系功用影响十分大,由于体系运转的速度瓶颈一般都存在于存储器的拜访,因而期望存储器的拜访尽可能快,但又要考虑由此带来的 体系安稳性问题。
(3)总线宽度
ARM微处理器架构支撑8/16/32位的数据总线宽度拜访存储器和外设,关于特定的存储器来说,需求设定数据总线的宽度。
(4)存储器地址的装备
ARM微处理器架构理论上能够支撑4GB的地址空间,而关于一个实践的体系来说,装备的物理地址远没有这么多,因而,怎么装备存储器的地址,也是一个重要 的问题。
(5)存储器地址重映射
存储器地址重映射便是能够经过软件装备来改动一块存储器物理地址的办法,是当时许多先进控制器所具有的功用。
进行地址重映射的原因:进步体系的运转功率。
进行地址重映射的留意:确保程序流程的接连性。
有的ARM处理器不具有地址重映射的功用,能够采样代码搬移加跳转的办法完结上述功用。
3、初始化仓库
由于ARM微处理器有7中运转形式,每一种形式的仓库指针(SP)都是独立的(其间体系形式和用户形式运用相同的SP)。因而,需求对每一种形式的SP进 行初始化。
选用的办法是:改动当时程序状况寄存器(CPSR)内的状况位,使处理器切换到不同的状况,然后初始化SP。可是对用户形式下SP的初始化应该放在最终, 由于ARM微处理器进入用户形式之后就无法再切换到其他形式。
设置仓库应该留意的问题是:仓库的巨细根据需求确认,要尽可能给仓库分配高速存储器(例如片内的SRAM)。仓库功用的进步对进步体系全体功用的影响十分 明显。
初始化仓库的代码如下:
MRS R0, CPSR
BIC R0, R0, #MODEMASK
ORR R1, R0, #IRQMODE
MSR CPSR_c, R1
LDR SP, =IRQStack
BIC R0, R0, #MODEMASK
ORR R1, R0, #FIQMODE
MSR CPSR_c, R1
LDR SP, =FIQStack
………
4、初始化使用程序和有特殊要求的端口和设备
该部分的初始化由详细的体系和用户需求决议,一般的外设初始化能够放在体系初始化今后进行。比较典型的使用是驱动一些简略的输出设备,例如LED等,用来 指示体系启动的进程和状况。初始化使用程序的运转环境,便是完结必要的从ROM到RAM的数据传输,初始化有特殊要求的端口、设备和使用程序的运转环境。
5、改动处理器的形式
ARM微处理器支撑7种形式,其间:
超级形式(Supervisor):复位后的缺省形式。
多种特权形式改变:首要完结各形式的仓库设置,留意不要进入用户形式。
用户形式:用户程序运转形式。
6、调用使用主程序
当完结一切的体系初始化作业之后,就需求把程序流程转入主使用程序。最常见的操作是:
IMPORT C_Entry
……
B C_Entry

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/258830.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部