出处:http://blog.sina.com.cn/s/blog_686ced250102vyml.html
(***************好一个彻头彻尾的光棍节,希望这是我的最后一次光棍节吧***************)
时至现在才有空继续写笔记,不得不好好回忆一番。
u-boot的稍微复杂了一些,不过跟内核比起来还是“有章可循”的多了。主要参考资料:《U-boot在AT91RM9200上的全线移植分析原始版》的二、三章,《u-boot代码详细分析》,《Readme》,《Uboot中start.S源码的指令级的详尽解析 v1.6》。
参考《U-boot在AT91RM9200上的全线移植分析原始版》3.5节来看,移植的工作并不多。主要是对include/configs/at91sam9m10g45ek.h进行修改,这个文件主要是针对板子资源做一些配置,所以需要对板子比较熟悉,配置过程需要建立在了解每一个参数的意义的基础上。
(1)
(2)
(3)
(4)
不过很高兴,这个过程中有了收获。因为之前做的工作基本都是参考别人的移植文档,然后去做去改去移植,心里没有一点底,我不知道如果没有别人的参考文档或者我没找到合适的,那要我去移植一个东西我该怎么办,所以之前的这些工作我并不觉得有多少收获。现在在这个过程中,我发现了做移植的方法,而且我孤芳自赏的认为这是很正确的方法。这个方法才是我的收获:首先,检查硬件。包括硬件连接的错误,与参考版的差别,最好能对每个引脚链接的方式问个为什么,做到可以解释得通,这个不是最难的,确实极其重要的,因为它是先决条件;然后,跟代码。这就是考验你追代码的能力了,也是最难的一个部分,有的移植源码本身就很复杂庞大,比如linux内核源码,我想以我现在的水平是没有能力追下去的,但是话又说回来,只是追代码,有个深浅的问题。我们不需要对每一句代码刨根问底,有时候一大段代码只要看他的一句注释就行了,我们只关心与我们移植移植相关的实现细节。你会发现,源代码是最好的参考资料,而你对源代码了解的越多越深,移植工作会越清晰越简单,你的各种问题疑惑也会迎刃而解。