专题04-我是bootloader设计师
主目录
行业老大uboot
Uboot源码网站:ftp://ftp.denx.de/pub/u-boot/
bootloader作用
相当于助推器,把系统带到预定轨道
嵌入式Linux系统构造:bootloader+kernel+rFS
bootloader设计方法
设计方法(模仿),谢老师相信90%的优秀设计都是从模仿开始的,然后慢慢模仿过程中逐渐有了自己的想法,然后就设计出自己的作品。
行业老大uboot
uboot支持多种嵌入式处理器,多种嵌入式操作系统。
自主模式:发行版
开发模式:uboot用于软件开发过程中。
uboot.tar.gz解压:不能windows下解压(因为windows不区分字母大小写)
uboot代码分析工具:vim+插件,或者sourceinsight
ARM处理器启动流程
这节课我将要学到什么?
开发板支持的启动方式,开发板的地址布局,开发板的启动流程。
如何了解到2440开发板的处理器启动流程?
2440开发板的启动方式主要为nand方式启动,地址布局可以参考芯片手册的内存控制器章节,启动流程可以参考芯片手册的nandflash控制器章节。
那么我们2440如何通过nand方式启动的呢?
根据上面参考章节得知,我们ARM处理器一旦上电,首先从0地址开始执行,而我们的片内IRAM(垫脚石)也被安排在这个0地址,总大小为4KB,然而我们的垫脚石和没有参与统一编址的nand有什么联系呢?CPU上电之后,CPU会自动把nand中最前端的4KB内容复制到垫脚石中去,且这4KB内容的其中一个重要任务是把nand中所有剩下内容拷贝到内存中去,并跳转到内存中继续执行并启动操作系统。可以参考芯片手册nand章节的overview描述。
当CPU上电之后,会自动从nand最前端取4KB内容到片内垫脚石中,并利用这4K功能来把nand中剩下全部内容拷贝到0x30000000处,然后跑到0x30008000处继续执行(4KB)。
2440-nand方式启动流程
CPU上电之后,会自动从nand最前端取4K食物到垫脚石中垫垫肚子(垫脚石:iram),并且利用这4K食物所获得的能量来把nand中剩下的食物取到胃中(胃的位置在0x30000000地址处),然后跑到胃中继续消化以吸取能量。
如何获取6410支持的启动方式?
可以参考芯片手册系统控制器章节。IROM
如何获取6410地址布局?
可以参考芯片手册内存映射章节。
如何获取6410启动流程?
可以参考片内芯片手册来获取。
210支持的启动方式?
210地址布局如何?
210启动流程?
参考芯片手册内存章节的nandflash控制器章节的overview小结。