ARM处理器启动流程

Posted chd_zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM处理器启动流程相关的知识,希望对你有一定的参考价值。

1.启动方式
(1)norflash:2MB,从norflash的0地址处开始运行第一条代码,所以代码一定要放在norflash的最前端
(2)nandflash:128MB,但是nandflash没有参与同一编址,不能直接访问,需要访问特殊寄存器才可以访问,所以要从片内的4KB的boot SRAM开始执行,即0地址是排放boot sram(stepping stone),上电之后处理器自动将nandflash前4KB的内容复制到boot sram开始执行,通过bootsram来初始化相关硬件和寄存器从而访问nandflash,接下来把剩余的bootloader复制到内存(SDRAM/DRAM)中,当stepping stone 里面的4KB执行完以后跳转到内存继续执行,再接下来将内核复制到内存,从而启动操作系统。而内存要求从0x30000000开始band6开始(2440)


2.地址布局
关键词:mapping3.具体流程
关键词:booting


4.SROM也就是norflash
oneNAND既有nor的特性也有nand的特性


5.6410还支持MODEM启动


6.SD卡和nand都划归为IROM:处理器内部的固件/存储器,但不是stepping stone


7.6410地址布局
技术分享
8.6410的0地址处开始是镜像区,不放置任何设备,是通过映射关系将其他设备映射到镜像区域。根据启动方式不同可以映射到不同设备。


9.6410的nandflash启动属于irom的一种,而irom里面存放的是厂商给用户写好的一些软件,如bootloader0,上电后就是取irom里面的程序来执行。通过BL0(bootloader0)将nand的前8KB拷贝到stepping stone运行,然后和2440类似。
技术分享


10.   210和6410类似,都支持从irom启动,nand启动是其中的一种。但是在210中stepping stone叫做IRAM,有96KB,由于垫脚石的增大,会拷贝bootloader 2 到垫脚石,而不是直接到内存。一般情况BL1最大是16KB,BL2最大尺寸是80KB。若BL2大于80KB,则要求BL1将BL2直接拷贝到内存,而不能拷贝到垫脚石。0地址也是镜像区域,通过映射关系取代码。


11.210的启动流程(BL0是厂商写好的)
技术分享


12.210的地址布局
技术分享

以上是关于ARM处理器启动流程的主要内容,如果未能解决你的问题,请参考以下文章

ARM处理器启动流程

Zynq启动流程

STM32的中断处理流程是怎样的?与ARM7 ARM9相同吗?

arm 启动流程 2016.08.11

Linux启动流程

Linux启动流程