首页 > 编程知识 正文

uboot有几个启动模式,进入uboot模式

时间:2023-05-03 14:50:24 阅读:14992 作者:2726

u引导系统启动过程

大多数引导加载器分为stage1和stage2两大部分,u-boot也不例外。 依赖于CPU体系结构的代码(如设备初始化代码)通常放在stage1中,可以用汇编语言实现。 另一方面,stage2通常用c语言实施,提供复杂的功能,提高可读性和可移植性。

2.1stage1(start.s代码结构)。

u-boot的stage1代码通常放置在start.s文件中,并以汇编语言编写。 主要代码部分为以下:

)1)条目定义)由于可执行Image需要入口点,而且只有一个全局入口,因此该条目通常位于rom(flash )0x0地址。 因此,必须通知编译器知道这个条目。 可以通过修改连接器脚本来执行此操作。

)2)设定异常向量(Exception Vector )。

(3)设置CPU的速度、时钟频率和中断控制寄存器。

(4)存储器控制器初始化

)5)将ROM内的程序复制到RAM中。

(6)初始化堆栈

(7)传输到RAM执行。 此工作可以使用命令ldr pc完成。

2.2 stage2 C语言代码部分

lib_arm/board.c中的start_armboot是以c语言开头的函数,是整个启动代码中c语言的主函数,也是整个u-boot(armboot )的主函数。 此函数主要执行以下操作:

(1)调用一系列初始化函数。

)2)初始化闪存设备。

(3)初始化系统的内存分配函数。

)4)如果目标系统上有NAND设备,请初始化NAND设备。

)5)如果目标系统上有显示设备,则初始化该设备。

)6)初始化相关网络设备,填写IP、MAC地址等。

)7)进入命令环(即整个引导的工作环),接收用户通过串行端口输入的命令并进行相应的工作

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。