CPU上电后进入初始状态,需谨慎配置处理器模式、中断控制及内存管理单元等关键参数。随后依据硬件架构完成主板相关初始化操作,执行代码重定位,并逐步建立运行环境,最终转入命令行界面,等待用户输入指令并进行相应处理。整个过程涉及多个底层环节的有序衔接。
1、 关闭中断并切换至SVC模式
2、 关闭内存管理单元及转换检测缓冲区关键寄存器,同时禁用时钟与看门狗相关寄存器。
3、 配置堆栈运行环境
4、 完成串口、定时器、环境变量及I2C、SPI等外设的初始化,为代码重定向前的板级配置做好准备。
5、 执行代码跳转
6、 系统重定向后执行板级初始化,涵盖板上定义的各类初始化操作,如eMMC、NAND Flash、网络模块及中断系统的配置与启动。
7、 进入命令行界面
8、 等待并处理终端输入的命令,是uboot运行流程中的核心环节。
9、 疑惑
10、 在SPL阶段虽然已经完成了架构级别的初始化,但在U-Boot中仍需再次进行相同操作,主要原因在于SPL并非所有平台启动U-Boot的必经环节。某些系统上电后,U-Boot可能直接从ROM或Flash开始执行,并未经过SPL阶段。不同硬件平台的启动流程存在差异,因此U-Boot无法假设架构初始化已被完成。为了确保系统可靠运行,U-Boot会自主执行完整的初始化流程,涵盖CPU、寄存器及关键硬件状态的配置,从而保证处理器始终处于预期的工作状态,避免因依赖前置阶段而导致的不确定性或启动失败问题。
11、 6. spl启动过程中的不同之处是什么?
12、 对于tiny210来说,前期架构初始化流程基本相同,本质差异出现在board_init_f阶段才开始显现。
13、 代码起始点
14、 关闭中断并切换至SVC模式。
15、 配置堆栈运行环境。
16、 执行代码跳转,进入命令行模式即可操作。
评论
更多评论