可以自行在uboot中增加命令,扩充
命令的定义在uboot源码下的include中
命令写在cmd文件夹下,写好后要在Makefile中加入此文件的.o文件
然后在上一个文件夹下输入“make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-“命令
然后输入命令“sudo dd if=./u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1k seek=8”下载到内存卡,
1 //添加一个自己的命令,调用uboot内loady命令 的加载函数
#include <common.h>
2 #include <command.h>
3
4 extern int do_load_serial_bin(cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]);//引用外部的函数
5 char *addr[]={"loady", "0x40008000"}; //命令执行字符串
6 int do_haha(cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[])
7 {
8
9 do_load_serial_bin(NULL,0, 2,addr);//调用的uboot函数
10 return 0;
11 }
12
13 U_BOOT_CMD_COMPLETE(haha, 3, 0, do_haha, "usage", "help", "help haha");//usage:通常为
14 //命令的介绍信息 “help”可以写成帮助信息
15 ~
2.通过串口下载u-boot-sunxi-with-spl.bin.bin文件到内存
过程:先通过"loady x040008000" 将编译好的 uboot文件加载到内存,
然后通过mmc write addr blc #cnt 将程序从内存加载到mmc中
如: mmc write 0x40008000 0x10 0x20
意思是从0x400008000 位值开始读取 0x20 *512个字节到偏移8k处(8k=16*512)
3.uboot的裁剪操作
通过命令“ 进入uboot配置菜单,然后打开或关闭部分功能。
打开还需要打开相应的头文件
4.fatload mmc 0:1 0x43000000 /script.bin //内核用的配置文件
解释: mmc:sd卡设备
0:1 :uboot可以最多同时支持3个内存卡,0表示第一个,1表示sd卡的第一个扇区(扇区从1开始,没有0扇区)
0x43000000 :表示将/文件加载到内存的0x43000000地址
/scriptbin :要加载的文件名
意思:将内存卡的第一个扇区的/scaript.bin内核配置文件加载到内存的0x43000000位置
fatload mmc 0:1 0x42000000 /uimage
意思:将内存卡的第一个扇区的/uimage内核镜像文件加载到内存的0x42000000位置