Uboot启动流程分析
2015-07-11 23:23
344 查看
Uboot是嵌入式系统中最常用的bootloader,这里我们以s3c2410为例分析一下uboot的启动流程。首先通过uboot的链接文件,我们可以看到uboot运行是执行的第一段代码在start.S中。
ENTRY(_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
*(.text)
}
. = ALIGN(4);
.rodata : { *(.rodata) }
. = ALIGN(4);
.data : { *(.data) }
. = ALIGN(4);
.got : { *(.got) }
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
_end = .;
}
我们找到这个文件,以这个文件为起点看uboot的启动流程。这里我们通过一个图来说明这个过程。
最后我们把整个uboot在执行过程中,代码的搬移籍内存的使用情况通过一个图,来说明一下。
相关文章推荐
- jQuery学习笔记
- drdb 安装
- 使用brackets编译scss文件
- Android的AsyncTask的用法
- 【Git使用】强制推送代码到多个远程仓库
- openjudge 蛇形填充数组
- HDU 5281 BestCoder Round #47 1002
- 绿色mysql初始化以及遇到一些问题解决方法
- galera mysql cluster
- CF 18B Platforms
- hdu 5280 Senior's Array
- Adapter模式
- 用里氏代换原则来处理动画类的继承问题
- 从零学编程2-做个工资计算器
- No suitable driver found for jdbc:mysql://localhost/dbname
- 一个Servlet可以被映射成多个mapping
- 顶着台风,也要去参加的一次“磨课”
- [leetcode-]Climbing Stairs(C语言)
- 具有编译功能支持无限大数计算器的实现
- 不能再挺着了