在uboot里面添加环境变量使用run来执行
在uboot里面添加环境变量使用run来执行
Author:杨正 Date:2014.11.11 Email:yz2012ww@gmail.com QQ:1209758756
在移植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...
C
Starting ymodem transfer. Press Ctrl+C to cancel.
100% 222 KB 6 KB/s 00:00:36 1 Errors
## Total Size = 0x000379ec = 227820 Bytes
Erasing 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 8
0000"
#define CONFIG_BURNKERNEL"sf probe 0;mw.b 82000000 ff 480000;loady 82000000 root_cramfs.img;sferase 80000 0x480000;sf write 8200000
0 80000 480000"
#define CONFIG_BURN_APP"sf probe 0;mw.b 82000000 ff 0xa00000;loady 82000000 app_jffs2.img;sferase 500000 0xa00000;sf write 82000000
500000 0xa00000"
#define CONFIG_BURN_FLASH"sf probe 0;mw.b 82000000 ff 1000000;loady 0x82000000ZMD-PROGRAMMING-FLASH.binl;sf erase 0 1000000;sf writ
e 82000000 0 1000000"
2、 然后在u-boot-2010.06/common目录下的evn_common.c里面添加如下代码:
#ifdef CONFIG_BURNBL /* Burn bootloader image to SPIflash*/
"bbl=" CONFIG_BURNBL "\0"
#endif
#ifdef CONFIG_BURNKERNEL /* Burn kernel image to SPIflash*/
"blx="CONFIG_BURNKERNEL "\0"
#endif
#ifdef CONFIG_BURN_APP /* Burn APP image to SPIflash*/
"bapp= "CONFIG_BURN_APP "\0"
#endif
#ifdef CONFIG_BURN_FLASH /* Burn Flash APP image to SPIflash*/
"bfl="CONFIG_BURN_FLASH "\0"
#endif
3、 重新编译uboot,并烧录到单板,用printenv或pri可以看到已定义的环境变量:
hisilicon # pr
bootargs=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 0x82000000
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
ipaddr=192.168.28.110
jpeg_addr=0x86000000
jpeg_size=0x1b6b2
vobuf=0x86000000
cramfsaddr=0x84000000
cramfsldaddr=0x82000000
serverip=192.168.28.100
netmask=255.255.255.0
bootfile=/boot/hikernel
bbl=sf probe 0;mw.b82000000 ff 80000;loady 0x82000000 uboot_logo.bin;sf erase 0 80000;sf write82000000 0 80000
blx=sf probe 0;mw.b82000000 ff 480000;loady 82000000 root_cramfs.img;sf erase 80000 0x480000;sfwrite 82000000 80000 480000
bapp= sf probe 0;mw.b82000000 ff 0xa00000;loady 82000000 app_jffs2.img;sf erase 500000 0xa00000;sfwrite 82000000 500000 0xa00000
bfl=sf probe 0;mw.b82000000 ff 1000000;loady 0x82000000 ZMD-PROGRAMMING-FLASH.binl;sf erase 01000000;sf write 82000000 0 1000000
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Nov 11 2014 - 21:27:51)
filesize=379EC
Environment size: 1202/65532 bytes
二、 在uboot里面添加run命令
1、 在u-boot-2010.06/common目录下添加一个文件cmd_run.c,代码如下:
/*********************************************************************************
* Copyright: (C) 2014 YangZheng<yz2012ww@gmail.com>
* All rights reserved.
*
* Filename: cmd_run.c
* Description: This file
*
* Version: 1.0.0(11/11/2014~)
* Author: Yang Zheng<yz2012ww@gmail.com>
* 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(cmd_tbl_t *cmdtp, int flag, int argc, char **argv)
{
if (argc < 2)
{
cmd_usage(cmdtp);
return 1;
}
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_RUN
3、在u-boot-2010.06/common目录的Makefile中添加如下代码:
COBJS-$(CONFIG_CMD_RUN) += cmd_run.o
4、 重新编译uboot,并烧录到单板
三、 运行
hisilicon # run bbl
16384 KiB hi_sfc at 0:0 is now current device
## Ready for binary (ymodem) download to0x82000000 at 115200 bps...
在uboot里面添加环境变量使用run来执行的更多相关文章
- [uboot]在uboot里面添加环境变量使用run来执行
转自:http://blog.csdn.net/yangzheng_yz/article/details/41038259 在移植uboot的时候,可以在uboot里面添加定义一些自己的环境变量,这些 ...
- 在uboot里面加入环境变量使用run来运行
Author:杨正 Date:2014.11.11 Email:yz2012ww@gmail.com QQ:1209758756 在移植uboot的时候,能够在uboot里面加入定义一些自己的环 ...
- Linux下查看和添加环境变量
转自:http://blog.sina.com.cn/s/blog_688077cf01013qrk.html $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您 ...
- postman 添加环境变量 并 读取变量 作为参数 传入,跑整个场景
上篇文章 写了 postman 基本使用 和 检查点. 这篇 记录一下 多个测试用例组成的一个场景下. 如何通过读取变量跑完整个场景. 因为有些场景 的用例是彼此关联的. 所以通过参数来实现. 如 我 ...
- linux命令(11)下查看和添加环境变量
&PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑PATH 声明,其格式为: PATH ...
- 软件 利用 win+R 快速启动(无需添加环境变量)
前言:以 "Typora" 软件 为例 ,无需添加环境变量,实现键盘快速启动 第一步 找到 为知笔记的快捷方式 打开文件位置 鼠标右击该软件的桌面快捷方式 复制该软件的快捷方式 第 ...
- mac 添加环境变量(jmeter添加至环境变量中)
Mac系统的环境变量,加载顺序为:a. /etc/profileb. /etc/pathsc. ~/.bash_profiled. ~/.bash_logine. ~/.profilef. ~/.ba ...
- php 添加环境变量
1.php添加环境变量主要为了能在 cmd和软件的客户端用php来运行 首先我们要做的第一步: 添加环境变量(记住php.exe的路径,然后再环境变量中编辑path 多个用逗号分隔开,保存重启电脑) ...
- 使用setx 命令添加环境变量(Windows)
背景 用GUI的方法可能添加环境变量可能会比较麻烦,为此可采用命令行操作的方式. 步骤 以管理员身份运行 cmd 输入 setx /M "%path%" "%path%[ ...
随机推荐
- 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
一个工具的逻辑得足够完善.意义足够重大,才有资格发在NG上. A gene-based association method for mapping traits using reference tr ...
- getLocation 需要在 app.json 中声明 Permission 字段
小程序开发中,清除授权状态后,重新编译,提示:getLocation 需要在 app.json 中声明 Permission 字段 需要在 app.json 里面增加 permission 属性配置( ...
- Hive跨集群迁移
Hive跨集群迁移数据工作是会出现的事情, 其中涉及到数据迁移, metastore迁移, hive版本升级等. 1. 迁移hdfs数据至新集群hadoop distcp -skipcrccheck ...
- layui的select下拉框太长被遮挡了的解决办法
layui的select下拉框太长采用滚动条的形式出现,可以给select的dl加一个最大高度,具体的效果如下图 .layui-form-select dl { max-height:160px; }
- MAC下快速打开指定目录(转)
使用了这么长时间MAC,打开文件查找目录总是感觉还是不如windows来的爽快 1.通过快捷键搜索 command + 空格,输入关键词 2.通过控制台打开 1) 跳转到指定路径 cd ...
- python获取公网ip的几种方式
python获取公网ip的几种方式 转 https://blog.csdn.net/conquerwave/article/details/77666226 from urllib2 import u ...
- Spring cloud微服务安全实战-5-11实现基于token的SSO(1)
基于服务器session的SSO的方案,用户的登陆状态都是存在服务器端的 基于浏览器cookie的token实现一个sso,在原来的基础上做进一步的改造.让他不依赖session.而是完全由cooki ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- 【k8s label】对node添加删除label,并根据label筛选节点
添加 kubectl label nodes kube-node label_name=label_value kubectl label nodes 1.1.1.1 label_name=label ...
- lodop和c-lodop通过打印状态和任务不在队列获取打印成功
之前的博文有通过判断pirnt的返回值,判断加入队列算打印成功,建议使用这种简单的判断方法.此外还有其他判断方法,例如通过PRINT_STATUS_OK判断,但是这个状态不是所有打印机能支持这种判断成 ...