关闭

专题4-我是bootloader设计师-uboot工作流程分析+G-boot构架设计

标签: bootloader
101人阅读 评论(0) 收藏 举报
分类:

一、uboot工作流程分析

1、程序的入口

首先在uboot的Makefile中查看关键词“smdk2440”,在board/samsung(board代表开发板支持)中有个smdk2440的文件夹,里面有链接器脚本u-boot.lds,在u-boot.lds中找到代码段的第一行cpu/s3c24**/start.o,即start.S(位于cpu/s3c24**)为程序首先执行的文件,再看一下入口指令ENTRY(_start),即_start为程序的入口。
这里写图片描述

找到程序的入口后,通过分析uboot关注程序去实现了什么(看注释),而暂时不关心具体是怎么实现的。

2、第一阶段程序分析(BL1)

(B:相对跳转,不会对pc指针产生实质性的影响,只会相对修改。所以要明确链接地址(用反汇编可以查看链接地址和机器码)和pc指针值之间的区别)
这里写图片描述

3、第二阶段程序分析(BL2)
入口语句:ldr pc,start_armboot(直接修改了pc指针,跳到内存中去执行)
(略)

二、bootloader构架设计(G-boot)

第一阶段:
这里写图片描述

第二阶段:
这里写图片描述
备注:
bootm要做的事情:
1. 读取头部,把内核拷贝到合适的地方
2. 把参数给内核准备好,并告诉内核参数的首地址
3. 引导内核
bootm可以参考

http://blog.csdn.net/the_vampire_diary/article/details/13861021

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6175次
    • 积分:368
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论