移植u-boot-1.3.4到qq2440开发板(1)

                                       移植u-boot-1.3.4到qq2440开发板(1)

                                       作者:makethyme

 

以前曾经将u-boot-1.1.6移植到QQ2440 (cpuS3c2440)开发板,前几天有空闲时,计划重新将新的u-boot-1.3.4移植到开发板上,cross toolchain就用ELDK(Embedded Linux Development Kit)

经过一通merge后,编译时发现qq2440.h提示包含的头文件<cmd_confdefs.h>找不到。在u-boot-1.1.6中,头文件<cmd_confefs.h>定义了一些command,如下所示:

     #define CFG_CMD_BDI              0x00000001ULL    /* bdinfo               */

     #define CFG_CMD_LOADS        0x00000002ULL    /* loads                 */

然后将需要支持的command通过逻辑或( | )的形式汇聚在CONFIG_COMMANDS中,如下:

     #define CONFIG_COMMANDS /

                     (CONFIG_CMD_DFL   | /

                     CFG_CMD_CACHE      | /

            …

 

而最后在源文件中,通过逻辑与(&)判断CONFIG_COMMANDS是否包含某个命令,从而决定是否编译该命令相关的代码。例如在common/cmd_bdinfo.c中:

     #if (CONFIG_COMMANDS & CFG_CMD_BDI)

     static void print_num(const char *, ulong);

     …

     #endif

 

u-boot-1.3.4中,采用了另一种策略。不再有头文件cmd_confdefs.h,取而代之的是config_cmd_all.hconfig_cmd_default.h。而CONFIG_CMD_XXXX也不定义成具体的值,只需要用define定义即可。

     #define CONFIG_CMD_BDI             /* bdinfo               */

在源文件中则根本不对CONFIG_CMD_XXXX是否存在进行判断,转而通过对Makefile进行控制,来决定CONFIG_CMD_XXXX对应的代码是否链接进库中。例如在common/Makefile中,

    COBJS-y += cmd_autoscript.o

    COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o

    COBJS-$(CONFIG_CMD_BEDBUG) += cmd_bedbug.o

    COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o

    COBJS-y += image.o

这样就能决定该相应代码是否链接进库中。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值