主题 : Barebox for Tiny6410(添加自定义命令) 复制链接 | 浏览器收藏 | 打印
专注于嵌入式&Linux
级别: 骑士
UID: 12802
精华: 3
发帖: 237
金钱: 1355 两
威望: 271 点
贡献值: 3 点
综合积分: 534 分
注册时间: 2010-01-13
最后登录: 2014-03-18
楼主  发表于: 2013-05-29 14:30

 Barebox for Tiny6410(添加自定义命令)

管理提醒: 本帖被 xoom 执行加亮操作(2013-05-29)
作者: lknlfy@ 163.com          2013-5-29

一、目的
       为Barebox添加自定义命令。

二、开发环境
主机:WIN7 32位旗舰版
虚拟机:VMware Workstation 7.0
Linux:Ubuntu 12.04
编译器:arm-linux-gcc-4.5.1-v6-vfp-20101103
开发板:Tiny6410(256M Nand Flash,128M DDR)

三、步骤
1.用的是这个链接
http://www.aiothome.net/read.php?tid-80186.html里的补丁文件。先按这个链接里的方法打好补丁,选好配置选项。
 
2.编写命令程序
在Barebox根目录下的commands目录里新建一个hello.c文件,内容如下:
复制代码
  1. #include <common.h>
  2. #include <command.h>
  3. #include <errno.h>
  4. static int do_hello(int argc, char *argv[])
  5. {
  6.  if(argc == 1) {
  7.   printf("hello command\n");
  8.   return 0;
  9.  }
  10.  if(argc > 2) {
  11.   /* printf("Enter help %s to see the usage\n", argv[0]); */
  12.   return COMMAND_ERROR_USAGE;   
  13.  }
  14.  printf("%s %s\n", argv[0], argv[1]);
  15.   
  16.  return 0;
  17. }
  18. BAREBOX_CMD_HELP_START(hello)
  19. BAREBOX_CMD_HELP_USAGE("hello or hello args\n")
  20. BAREBOX_CMD_HELP_SHORT("very simple, just for test\n")
  21. BAREBOX_CMD_HELP_END
  22. BAREBOX_CMD_START(hello)
  23.  .cmd  = do_hello,
  24.  .usage  = "hello or hello args",
  25.  BAREBOX_CMD_HELP(cmd_hello_help)
  26. BAREBOX_CMD_END


3.修改commands目录里的Kconfig文件,添加下面红色框的内容(注意添加的前后位置):


4.修改commands目录里的Makefile文件,在最后追加一行:
obj-$(CONFIG_HELLO)  += hello.o

5.使hello命令被编译
在源码根目录下执行make menuconfig后,进入commands  --->,
再进入my command  --->,选上里面的hello command






退出保存。最后,执行make,即可在源码根目录下生成barebox.bin文件,将它烧写到开发板的Nand Flash中,然后从Nand Flash启动。



6.测试
         Barebox启动后,分别输入hello和hello world的效果如下:



命令参数说明:
hello:表示hello命令。其后最多可带一个参数(可不带)。