#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
#define Struct_Section __attribute__ ((unused,section (".u_boot_cmd")))
U_BOOT_CMD(
version, 1, 1, do_version,
"version - print monitor version\n",
NULL
);
(1)将 U_BOOT_CMD
替换成 cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
(2)将Struct_Section 替换成 __attribute__ ((unused,section (".u_boot_cmd")))
(3)实际上是将
U_BOOT_CMD(
version, 1, 1, do_version,
"version - print monitor version\n",
NULL );替换成cmd_tbl_t __u_boot_cmd_##name __attribute__ ((unused,section (".u_boot_cmd"))) = {#name, maxargs, rep, cmd, usage, help}
命令参数所带表的函数
#version是命令名,1是最大传参·个数maxargs,1是可以重复执行repeatable,do_version执行命令的函数,version - print monitor version\n是段帮助信息,NULL是长帮助信息
U_BOOT_CMD(
version, 1, 1, do_version,
"version - print monitor version\n",
NULL
);