本文主要是介绍关于uboot的CONFIG_SPL_BUILD宏的一个小知识点(定义位置),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载于 :
https://www.cnblogs.com/tureno/articles/6639461.html
我们知道uboot分为BL0, BL1, BL2。其中BL0就是我们常说的ROM Code。BL1就是我们常说的SPL1,BL2就是我们常说的狭义的uboot。其中SPL 和uboot共用一个源码体系。他们之间的产生是通过一个重要的宏CONFIG_SPL_BUILD来在源码中分开的。
SPL
SPL是uboot第一阶段执行的代码. 主要负责搬移uboot第二阶段的代码到内存中运行. SPL是由固化在芯片内部的ROM引导的. 我们知道很多芯片厂商固化的ROM支持从nandflash, SDCARD等外部介质启动. 所谓启动, 就是从这些外部介质中搬移一段固定大小(4K/8K/16K等)的代码到内部RAM中运行. 这里搬移的就是SPL. 在最新版本的uboot中, 可以看到SPL也支持nandflash, SDCARD等多种启动方式. 当SPL本身被搬移到内部RAM中运行时, 它会从nandflash, SDCARD等外部介质中搬移uboot第二阶段的代码到外部内存中.
这篇关于关于uboot的CONFIG_SPL_BUILD宏的一个小知识点(定义位置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!