UBOOT学习总结

本文详细介绍了UBOOT的主要功能,包括硬件初始化、CPU寻址空间映射、两个执行阶段的职责,以及编译和启动内核的过程。通过分析UBOOT的目录结构,展示了其在不同开发板上的应用,并提供了编译和转换内核镜像的步骤,以成功引导内核启动。
摘要由CSDN通过智能技术生成

1. UBOOT的主要功能

UBOOT的主要任务是初始化硬件(如:串口,内存),然后将内核从Flash中读到RAM中,然后跳转到内核的入口点去运行,也就是启动操作系统。

 

UBOOTBIOS的差异:PC机的引导程序由BIOS和位于硬盘MBR中的引导程序(GRUBLILO)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘中的引导程序(GRUB/LILO)读到系统内存中然后将控制权交给引导程序。引导程序的组要任务是将内核从硬盘读到内存,然后跳转到内核的入口点去运行。

传统的个人电脑上面BIOS会有一个int19软件中断功能,在初始化完成后,BIOS会进入int19中断,寻找启动介质,如软盘,光盘,硬盘,flash或者网络等等,读取第一个扇区的内容到内存的0000:7C00处,跳入这个地址执行。这里int19就是一个bootloader,启动引导器。所以BIOS具有Boot Loader的功能。当然,目前的BIOS功能已经被扩充了很多,例如电源管理方面的ACPI接口,USB驱动PXE网络引导功能,硬盘加密,TPM接口,BIOS配置界面,BIOS自动恢复等等。

 

2. 零地址跳转

下面介绍一下系统上电后如何跳转到程序执行的第一条指令。系统上电后,所有的处理器通常都从处理器制造商预先安排的地址开始执行。如X86处理器复位后一般在4G-8字节处,而ARM处理器一般是在0x00000000起开始执行。

3. UBOOT执行的2stage

UBOOT的执行分为两个阶段,第一个阶段stage1主要使用汇编语言编写,第二个阶段stage2主要使用C语言编写。

 

UBOOT stage1阶段的主要任务:

1)系统复位转入UBOOTstage1入口点

2)设置异常向量

3)设置CPU

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值