U-BOOT源码分析及移植
#define CONFIG_COMMANDS \
(CONFIG_CMD_DFL | \
CFG_CMD_CACHE | \
/*CFG_CMD_NAND |*/ \
/*CFG_CMD_EEPROM |*/ \
/*CFG_CMD_I2C |*/ \
/*CFG_CMD_USB |*/ \
CFG_CMD_REGINFO | \
CFG_CMD_DATE | \
CFG_CMD_ELF)
定义这个选项主要是为了编译命令需要的源文件,大部分命令都在common文件夹下对应一个源文件
cmd_*.c ,如cmd_cache.c实现cache命令。 文件开头就有一行编译条件: #if(CONFIG_COMMANDS&CFG_CMD_CACHE)
也就是说,如果配置头文件中CONFIG_COMMANDS不或上相应命令的选项,这里就不会被编译。
2)定义命令结构体变量,如:
U_BOOT_CMD(
dcache, 2, 1, do_dcache,
"dcache - enable or disable data cache\n",
"[on, off]\n"
" - enable or disable data (writethrough) cache\n"
);
其实就是定义了一个cmd_tbl_t类型的结构体变量,这个结构体变量名为
__u_boot_cmd_dcache。
其中变量的五个域初始化为括号的内容。分别指明了命令名,参数个数,重复数,执行命令的函数,命令提示。
每个命令都对应这样一个变量,同时这个结构体变量的section属性为.u_boot_cmd.也就是说每个变量编译结束
在目标文件中都会有一个.u_boot_cmd的section.一个section是连接时的一个输入
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育U-BOOT源码分析及移植(26)全文阅读和word下载服务。
相关推荐: