一般的开发者是不会涉及到uboot开发或者移植工作的,因为这个真的很有挑战性,要想从网上下载的uboot完全地去做移植工作,一般的这个工作是由板子供应商来完成,然后再做适合研发某种产品的修改。我花了两天的时间才把uboot的执行过程整理出来,uboot启动过程难以用言语来描述清楚,因为汇编是如此晦涩,还有有太多的编译宏把人弄得头昏眼花
1.uboot启动第一阶段
2.uboot 启动第二阶段
3. 关于其它的。
uboot中的start.s汇编文件是如此的晦涩难懂,powerpc体系结构使用自己一套RISC,这两张图比较详细的描述了uboot启动过程,花了两天时间,我自己都怀疑效率是如此的低。下面一张图是原公司的一个哥们画的,现在我都能体会当时他那郁闷的心情。
上面的几张图仅仅帮助理解uboot的执行过程, 为了在以后的uboot移植工作中更好的了解我们需要做哪些工作,哪些东西可以忽视。启动的最后阶段在main_loop中,这个函数处理用户的输入,来决定是否进入下载模式,或者进入操作系统,用过uboot的人你懂的。这里有个问题:uboot是怎么传递参数给内核的,以及怎么转向去执行内核的? 下篇文章<uboot参数传递过程和内核启动>会解决这两个问题
2012.2.24