arm处理器启动流程分析

简介: 2440: 启动方式:nor , nand 地址布局:   启动流程: 开发板在上电后,会从0x0地址处运行。 如果从nor flash启动,则代码要放在nor 的0地址处;   如果从nand flash启动,nand flash是不能直接访问的,必须通过相应的寄存器才能访问到,所以nand flash 不能参与ARM处理器的统一编址。

2440:

启动方式:nor , nand

地址布局:

 

启动流程:

开发板在上电后,会从0x0地址处运行。

如果从nor flash启动,则代码要放在nor 的0地址处;

 

如果从nand flash启动,nand flash是不能直接访问的,必须通过相应的寄存器才能访问到,所以nand flash 不能参与ARM处理器的统一编址。从图上可以看出,我们从nandflash启动的0地址处是BootSRAM(垫脚石),从我们的BootSRAM取第一条指令,好像并没有从我们nand flash取代码。其实在我们上电的时候,

1) 处理器会自动从nand flash拷贝最前面4k代码到BootSRAM,这就间接从nand flash取到代码启动了。

2) 由于我们的bootloader通常不止4k,所以剩下的代码就会被复制到内存(由BootSRAM的一部分代码实现)

 

 


 

6410:

启动方式:SRAM(nor), OneNAND(具有nor和nand双重属性),

         MODEM, IROM(包括SD卡启动和nand启动)

地址布局:

 

启动流程:

上电之后,从镜象区域启动,镜象区域就是以上启动方式的映射

nand启动流程:

 

1) nand启动属于IROM启动的一种,所以上电后首先访问IROM里的BL0,芯片厂商固化好的一段代码,除了初始化硬件以外,还会把我们nand flash里的BL1(8k)拷贝到stepping stone运行,而BL1又会把剩下的BL2拷贝到内存SDRAM去运行。

 

 


 

210:

启动方式:IROM,USB,UART

地址布局:

启动流程:

 

先执行BL0----->拷贝BL1到I-SRAM----->拷贝剩下的BL2还是到I-SRAM(容量很大96k)----->当BL2很大超过80k时候,BL2就不能拷贝到I-SRAM,就要让BL1把它拷贝到内存SDRAM了。

 

目录
相关文章
|
边缘计算 编译器 数据中心
X86架构与Arm架构的主要区别分析
X86架构与Arm架构的主要区别分析
2221 0
ARM处理器函数调用时的参数传递
ARM处理器函数调用时的参数传递
|
存储 机器学习/深度学习 人工智能
嵌入式中一文搞懂ARM处理器架构
嵌入式中一文搞懂ARM处理器架构
2005 1
|
存储 算法 Linux
内存系列学习(五):ARM处理器中的Cache和Write Buffer
内存系列学习(五):ARM处理器中的Cache和Write Buffer
1308 0
内存系列学习(五):ARM处理器中的Cache和Write Buffer
|
存储 编译器 Linux
完全理解ARM启动流程:Uboot-Kernel
完全理解ARM启动流程:Uboot-Kernel
1998 0
|
存储 缓存 物联网
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
723 0
|
缓存 算法
内存系列学习(七):ARM处理器的快速上下文切换技术
内存系列学习(七):ARM处理器的快速上下文切换技术
558 0
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
2182 0
|
存储 缓存 Linux
内存系列学习(三):ARM处理器地址变换过程
内存系列学习(三):ARM处理器地址变换过程
1815 0
|
存储 缓存 算法
内存系列学习(二):ARM处理器中CP15协处理器
内存系列学习(二):ARM处理器中CP15协处理器
614 0

热门文章

最新文章