uboot启动流程

2025-04-12 16:22:06

1、1.关闭中断,设置svc模式禁用MMU、TLB关键寄存器的设置,包括时钟、看门狗的寄存器

uboot启动流程

2、2.堆栈环境的设置代码重定向之前的板级初始化,包括串口、定时器、环境变量、I2C\SPI等等的初始化

uboot启动流程

3、3.进行代码重定向代码重定向之后的板级初始化,包括板级代码中定义的初始化操作、emmc、nand flash、网络、中断等等的初始化。

uboot启动流程

4、4.进入命令行状态等待终端输入命令以及对命令进行处理上述工作,也就是uboot流程的核心。

uboot启动流程

5、5.疑问在spl的阶段中已经对arch级进行了初始化了,为什么uboot里面还要对arch再初始化一遍? 回答:spl对于启动ub泠贾高框oot来说并不是必须的,在某些情况下,上电之后uboot可能在ROM上或者flash上开始执行而并没有使用spl。这些都是取决于平台的启动机制。因此uboot并不会考虑spl是否已经对arch进行了初始化操作,uboot会完整的做一遍初始化动作,以保证cpu处于所要求的状态下。

uboot启动流程

6、6.spl在启动过程的差异在哪里?回答:以tiny210而言,前期arch的初始化流程基本上是一致的,出现本质区别的是在board_init_f开始的。

uboot启动流程

7、7.代码入口project-X/u-boot/arch/arm/cpu/u-boot.lds

uboot启动流程
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢