u-boot移植工作主要是添加需要移植的开发版的条件头文件,比如在我所做的fl2440开发板中在 include/configs/fl2440.h中存在大量的头文件需要选择性编译,在读代码和改代码以及添加和注释代码和头文件的过程中,一一配置好fl2440开发板所需要的文件。
之后需要进行make fl2440_config对修改的配置进行使能,如果不使能则会出现
之后再进行make 生成 .bin文件。
若是之前进行make成功过,在修改配置了之后再进行make时,需要用make distclean进行清除出源代码之外的所有生成的.o和.bin之类的临时文件。否则编译有可能仍是按照之前的配置进行编译。
在make之后会生成大量中间文件,在下次make时Makefile发现这些中间文件存在,则不会再次编译,因此第二次编译用的配置仍然是第一次的配置,修改无效,必须先make distclean。
以下补充:
在修改了c文件时,再进行make会重新生成中间文件,不会出现这种使用老配置进而影响了make结果的情况。
make menuconfig在修改配置之后会重新生成 .config文件。但是如果make distclean,会删除.config文件,这样,之前对make menucofig 的配置就完全还原,之前所做的所有配置就全都没有了。
因此,慎用make distclean,在有make menuconfig配置过的情况下,make distclean之前需要保存.config文件,方法很简单,修改.config文件的名字,在make distclean时就不会被清理掉,只会清理中间文件。 比如 mv .config .cfg_xx。这是一种方法。
还有另一种方法,做一个链接。 修改了.config 的文件名之后,可以用 ln -s /xx/xx/.cfg_xx /xx/xx/.config 这时文件里就有一个.config文件,而且在make distclean时 只会清理掉.config链接,而不会清掉重要的.cfg_xx文件。
在u-boot-2010.09文件夹下有一个u-boot.map的文件
打开之后
这个文件是u-boot各函数在内存上的地址,函数从上往下执行,在调试的过程中哪部分函数出错可以在这个文件夹中寻找,较为方便。