C 如何在u-boot中启用源和bootm命令?

C 如何在u-boot中启用源和bootm命令?,c,linux,u-boot,C,Linux,U Boot,下面是U-Boot代码中文件common/Makefile的一部分 obj-$(CONFIG_SOURCE) += cmd_source.o obj-$(CONFIG_CMD_SOURCE) += cmd_source.o 我已经阅读了U-Boot代码,但在任何地方都找不到定义的这两个宏。但是,此命令在运行时U-Boot中可用。 这个宏是在哪里定义的 与bootm命令相同,它在运行时也可用,但我无法找到宏的定义位置。如果有人知道,请告诉我。这取决于您的u-boot的构建配置系统。 如果是预kc

下面是U-Boot代码中文件common/Makefile的一部分

obj-$(CONFIG_SOURCE) += cmd_source.o
obj-$(CONFIG_CMD_SOURCE) += cmd_source.o
我已经阅读了U-Boot代码,但在任何地方都找不到定义的这两个宏。但是,此命令在运行时U-Boot中可用。
这个宏是在哪里定义的


bootm
命令相同,它在运行时也可用,但我无法找到宏的定义位置。如果有人知道,请告诉我。

这取决于您的u-boot的构建配置系统。

  • 如果是预kconfig配置系统[1],则可以在以下可能的位置之一找到这些宏(或定义这些宏的位置/文件):
    • include/config.mk
    • include/config.h
    • arch/${arch}/include/asm/arc
    • boards.cfg
  • make之后,可以在autoconf.mk中找到它的值。
    例如,下面是grep在我的'pre-kconfig'u-boot目录中的结果(删除了板名):

  • 如果是基于KConfig的配置系统[1],可以在
    configs/_defconfig
    文件中找到定义。

    例如,下面是来自最新u-boot源的grep结果:

  • 参考文献
    [1] :第12页和第13页,共

    我有
    cmd_source.c
    common
    文件夹内。我正在用
    Yocto
    来表示
    I.mx6
    是的,我也用过。但要编译该文件,CONFIG_CMD_SOURCE应该在某个地方定义,我的问题是它是在哪里定义的?
    include/configs/your_board_support.h
    它不在那里,这就是我在这里问的原因。我不明白。例如:对于
    at91 Atmlel SoC
    ,您可以在
    /include/configs/at91sam9rlek.h
    中查看它。顺便说一句,使用控制台,在
    configs
    文件夹中,键入:
    grep-rnw--color-e“配置CMD源代码”
    
    
        /u-boot-dir$ egrep -rnsH "CONFIG_CMD_SOURCE|CONFIG_SOURCE" *
        //snip...
    
        ./include/autoconf.mk:3:CONFIG_CMD_SOURCE=y
        ./include/config_cmd_default.h:49:#define CONFIG_CMD_SOURCE /*
        ./include/configs/board1.h:109:#undef CONFIG_CMD_SOURCE
        ./include/configs/board2_common.h:135:#define CONFIG_CMD_SOURCE
        ./include/config_cmd_all.h:32:#define CONFIG_CMD_SOURCE /* "source" command support */
    
        //snap...
        /u-boot-dir$
    
    
    
    
        $ git clone git://git.denx.de/u-boot.git
        Cloning into 'u-boot'...
        Resolving deltas: 100% (305309/305309), done.
        $ cd u-boot/
        /u-boot$ egrep -rnsH "CMD_SOURCE"
        //snip...
    
        cmd/source.c:145:#if defined(CONFIG_CMD_SOURCE)
        cmd/Makefile:20:obj-$(CONFIG_CMD_SOURCE) += source.o
        cmd/Kconfig:384:config CMD_SOURCE
        configs/at91sam9g10ek_dataflash_cs3_defconfig:11:# CONFIG_CMD_SOURCE is not set
        configs/vct_premium_small_defconfig:13:# CONFIG_CMD_SOURCE is not set
        configs/ap_sh4a_4a_defconfig:17:# CONFIG_CMD_SOURCE is not set
        configs/at91sam9g20ek_dataflash_cs0_defconfig:11:# CONFIG_CMD_SOURCE is not set
    
        //snap...
        /u-boot$