uboot 添加hello命令

2014-11-24 07:37:05 · 作者: · 浏览: 0

平台:MPC8315(POWERPC)


1.在/common/ 目录下创建自己的文件,最好前缀为cmd_.


cmd_hello.c

*********************************************************

#include

#include

#ifdef CONFIG_CMD_HELLO

int do_hello(cmd_tbl_t *cmdtp,int flag,int argc,char *argv)

{

printf("my test \n");

return 0;

}

U_BOOT_CMD(

hello,1,0,do_hello,"usage:test\n","help:test\n"

);

#endif

*********************************************************

2.在当前目录下修改Makefile


在目标变量最后面添加:


#ifdef CONFIG_CMD_HELLO

COBJS-y += cmd_hello.o

#endif


3.在头文件mpc83xx.h中添加对CONFIG_CMD_HELLO的定义

#define CONFIG_CMD_HELLO


编译下载后,在uboot中运行hello:

\

4.U_BOOT_CMD< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPsv8tcS2qNLl1NppbmNsdWRlL2NvbW1hbmQuaNbQo6w8L3A+CjxwPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvcD4KPHA+PHN0cm9uZz4jZGVmaW5lIFN0cnVjdF9TZWN0aW9uICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQsIHNlY3Rpb24o".u_boot_cmd"), aligned(4)))


#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \

{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}


#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \

cmd_tbl_t __u_boot_cmd_##name Struct_Section = \

U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)


#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \

U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)

/*******************************************************/

展开就是:#define U_BOOT_CMD(hello,1,0,do_hello,"usage:test\n","help:test\n")

cmd_tbl_t __u_boot_cmd_hello __attribute__((unused, section(".u_boot_cmd"), aligned(4)))

= {hello, 1, 0, do_hello, "usage:test\n","help:test\n" }


这儿定义了属性,就是所有的命令都存储在.u_boot_cmd节中,可以在连接脚本找到这个节。