在uboot里面添加环境变量使用run来执行

本文发布时间: 2019-Mar-22
在移植uboot的时候,可以在uboot里面添加定义一些自己的环境变量,这些环境变量可以大大提高以后的工作效率,比如我在uboot里面添加如下环境变量:bbl=sf probe 0;mw.b 82000000 ff 80000;loady0x82000000 uboot_logo.bin;sf erase 0 80000;sf write 82000000 0 80000然后使用run命令来执行:hisilicon # run bbl 16384 KiB hi_sfc at 0:0 is now currentdevice## Ready for binary (ymodem) download to0x82000000 at 115200 bps...CCCStarting ymodem transfer. Press Ctrl+C to cancel.100% 222 KB 6 KB/s 00:00:36 1 Errors## Total Size = 0x000379ec = 227820 BytesErasing at 0x80000 -- 100% complete.Writing at 0x80000 -- 100% complete.那么这样就不用每次都输入很长的一串字符串,如:hisilicon # sf probe 0;mw.b 82000000 ff80000;loady 0x82000000 uboot_logo.bin;sf erase 0 80000;sf write 82000000 080000那么方法如下:一、 在uboot里面添加环境变量1、 在u-boot-2010.06/include/configs目录下的xxx.h(xxx是board,如hi3520d.h)里面定义环境变量:/* Burn bootloader, linux kernel and rootfscommand */#define CONFIG_BURNBL "sf probe 0;mw.b 82000000 ff80000;loady 0x82000000 uboot_logo.bin;sf erase 0 80000;sf write 82000000 0 80000"#define CONFIG_BURNKERNEL"sf probe 0;mw.b 82000000 ff 480000;loady 82000000 root_cramfs.img;sferase 80000 0x480000;sf write 82000000 80000 480000"#define CONFIG_BURN_APP"sf probe 0;mw.b 82000000 ff 0xa00000;loady 82000000 app_jffs2.img;sferase 500000 0xa00000;sf write 82000000500000 0xa00000"#define CONFIG_BURN_FLASH"sf probe 0;mw.b 82000000 ff 1000000;loady 0x82000000ZMD-PROGRAMMING-FLASH.binl;sf erase 0 1000000;sf write 82000000 0 1000000"2、 然后在u-boot-2010.06/common目录下的evn_common.c里面添加如下代码:#ifdef CONFIG_BURNBL /* Burn bootloader image to SPIflash*/"bbl=" CONFIG_BURNBL ""#endif#ifdef CONFIG_BURNKERNEL /* Burn kernel image to SPIflash*/"blx="CONFIG_BURNKERNEL ""#endif#ifdef CONFIG_BURN_APP /* Burn APP image to SPIflash*/"bapp= "CONFIG_BURN_APP ""#endif#ifdef CONFIG_BURN_FLASH /* Burn Flash APP image to SPIflash*/"bfl="CONFIG_BURN_FLASH ""#endif3、 重新编译uboot,并烧录到单板,用printenv或pri可以看到已定义的环境变量:hisilicon # prbootargs=mem=96M console=ttyAMA0,115200root=1f01 rootfstype=cramfsmtdparts=hi_sfc:512K(boot),4M(romfs),10M(app),1536K(config)bootcmd=sf probe 0;sf read 86000000 500000x1B6B2;decjpg;setvobg 0 0x00;stopvo0;startvo 0 4 15;startvo 0 32 15;startgx 0 0x86000000 2560 0 0 1280 1024;sfread 0x84000000 0x80000 0x400000;cramfsload;bootm 0x82000000bootdelay=1baudrate=115200ethaddr=00:00:23:34:45:66ipaddr=192.168.28.110jpeg_addr=0x86000000jpeg_size=0x1b6b2vobuf=0x86000000cramfsaddr=0x84000000cramfsldaddr=0x82000000serverip=192.168.28.100netmask=255.255.255.0bootfile=/boot/hikernelbbl=sf probe 0;mw.b82000000 ff 80000;loady 0x82000000 uboot_logo.bin;sf erase 0 80000;sf write82000000 0 80000blx=sf probe 0;mw.b82000000 ff 480000;loady 82000000 root_cramfs.img;sf erase 80000 0x480000;sfwrite 82000000 80000 480000bapp= sf probe 0;mw.b82000000 ff 0xa00000;loady 82000000 app_jffs2.img;sf erase 500000 0xa00000;sfwrite 82000000 500000 0xa00000bfl=sf probe 0;mw.b82000000 ff 1000000;loady 0x82000000 ZMD-PROGRAMMING-FLASH.binl;sf erase 01000000;sf write 82000000 0 1000000stdin=serialstdout=serialstderr=serialverify=nver=U-Boot 2010.06 (Nov 11 2014 - 21:27:51)filesize=379ECEnvironment size: 1202/65532 bytes二、 在uboot里面添加run命令1、 在u-boot-2010.06/common目录下添加一个文件cmd_run.c,代码如下:/********************************************************************************** Copyright: (C) 2014 YangZheng<[email protected]>* All rights reserved.** Filename: cmd_run.c* Description: This file** Version: 1.0.0(11/11/2014~)* Author: Yang Zheng<[email protected]>* ChangeLog: 1, Release initialversion on "11/11/2014 09:05:08 PM"*********************************************************************************/#include <common.h>#include <watchdog.h>#include <command.h>#include <image.h>#include <malloc.h>#include <u-boot/zlib.h>#include <bzlib.h>#include <environment.h>#include <lmb.h>#include <linux/ctype.h>#include <asm/byteorder.h>int do_run(int argc, char **argv){if (run_command (getenv (argv[1]), flag)< 0){return -1;}return 0;}U_BOOT_CMD(boot, 1, 1, do_run"boot default, i.e., run 'bootcmd'","");2、 然后在u-boot-2010.06/include/configs目录的xxx.h(xxx是board,如hi3520d.h)里面添加如下宏定义:#define CONFIG_CMD_RUN3、 重新编译uboot,并烧录到单板三、 运行hisilicon # run bbl16384 KiB hi_sfc at 0:0 is now current device## Ready for binary (ymodem) download to0x82000000 at 115200 bps...C


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表