]>
Commit | Line | Data |
---|---|---|
0d498393 WD |
1 | |
2 | Commands are added to U-Boot by creating a new command structure. | |
3 | This is done by first including command.h | |
4 | ||
5 | Then using the U_BOOT_CMD() macro to fill in a cmd_tbl_t struct. | |
6 | ||
7 | U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help") | |
8 | ||
9 | name: is the name of the commad. THIS IS NOT a string. | |
10 | maxargs: the maximumn numbers of arguments this function takes | |
11 | command: Function pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]); | |
12 | usage: Short description. This is a string | |
13 | help: long description. This is a string | |
14 | ||
15 | ||
16 | **** Behinde the scene ****** | |
17 | ||
18 | The structure created is named with a special prefix (__u_boot_cmd_) | |
19 | and placed by the linker in a special section. | |
20 | ||
21 | This makes it possible for the final link to extract all commands | |
22 | compiled into any object code and construct a static array so the | |
23 | command can be found in an array starting at __u_boot_cmd_start. | |
24 | ||
25 | If a new board is defined do not forget to define the command section | |
26 | by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these | |
27 | 3 lines: | |
28 | ||
29 | __u_boot_cmd_start = .; | |
30 | .u_boot_cmd : { *(.u_boot_cmd) } | |
31 | __u_boot_cmd_end = .; |