uboot如何启动内核

uboot和内核的本质

uboot的本质是一个裸机程序,操作系统内核本质也是裸机程序。区别就是操作系统运行起来后,在软件上分为内核层和应用层,分层后两层的权限不同,内存访问和设备操作的管理更加精细(内核可以随便访问各种硬件,而应用程序只能被限制地访问硬件和内存地址)。

直观来看,uboot的镜像是uboot.bin,Linux系统的镜像是zImage,这两个东西其实都是两个裸机程序镜像,从系统启动的角度来讲,内核其实就是一个大的、复杂的裸机程序。

一个完整的软件+硬件的嵌入式系统,静止时(未上电时)bootloader、kernel、rootfs等必须的软件都以镜像的形式存储在启动介质中(X210中是iNand/SD卡);运行时都是在DDR内存中运行的,与存储介质无关。上面两个状态都是稳定状态,第3个状态是动态过程,也就是启动过程。

动态启动过程就是一个从SD卡逐步搬移到DDR内存,并且运行启动代码进行相关的硬件初始化和软件架构的建立,最终达到运行时稳定状态。

静止时uboot.bin、zImage、rootfs都在SD卡中,它们不可能随意存放在SD卡的任意位置,因此需要对SD卡进行一个分区,然后将各种镜像各自存放在各自的分区,这样在启动过程中uboot、内核等就知道到哪里去找谁。

uboot在第一阶段中进行重定位时将第二阶段(整个uboot镜像)加载到DDR的0xc3e00000地址处,这个地址就是uboot的链接地址。

内核也有类似要求,uboot启动内核时将内存从SD卡读取放到DDR中(其实就是个重定位的过程),不能随意放置,必须放在内核的链接地址处&

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值