uboot 引导kernel杂谈

记录最近调试uboot的心得,供后续总结!


总结:uboot 主要作用是用来引导kernel启动,传递参数给kernel。大致分为2个阶段:

第一阶段: 主要是start.S 汇编阶段,主要完成如下设定:

#1,设定cpu 中断向量表

#2,设定cpu速度,时钟以及终端

#3,初始化SDRAM(内存)

#4,将uboot第二阶段的代码从flash拷贝到sdram;

如何从flash拷贝呢?答案告诉你,由cpu 通过控制spi 控制器,设定从flash中读取数据的起始地址,最后自己

将这部分code 重定向到sdram。

#5 ,设置堆栈


第二阶段:c语言阶段,入口函数为:start_armboot,主要任务如下:

#1 初始化flash,设置系统内存

#2 初始化网络设备,显示设备

#3 将kernel,根文件系统镜像映射到RAM中(do_bootm_linux 函数来引导内核)

#4 设置kernel启动的参数


等kernel启动ok,uboot将控制权交给kernel;


ps,调试中遇到的问题

1,console没有任何打印?

检查console波特率是否设定ok,如设定ok。再检查uboot.bin的第二阶段代码是否从flash中读取到sdram;

sdram是否有初始化正确等!


2,start.S阶段的调试,通常是通过点led来验证;



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值