flash文件制作笔记

简介: 在uboot串口台输入printenv 可以分区以及其他信息,如下 hisilicon # printenv bootdelay=1baudrate=115200ethaddr=00:00:23:34:45:66bootfile="uImage"UPDATE=netupdate JVS-HI351...

在uboot串口台输入printenv 可以分区以及其他信息,如下

hisilicon # printenv 
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
bootfile="uImage"
UPDATE=netupdate JVS-HI3518ES-8188 0x83FFF000 0x780000 0x80000
filesize=1B0000
fileaddr=82000000
netmask=255.255.255.0
ipaddr=172.18.198.189
serverip=172.18.198.141
bootargs=mem=38M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),2M(kernel),3M(system),10M(application)
sf=probe 0;sf read 0x82000000 0x100000 0x200000;bootm 0x82000000
bootcmd=sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000
console=ttyAMA1
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Nov 11 2014 - 18:15:12)
Environment size: 626/65532 bytes

 

我们可以看到分区信息:mtdparts=hi_sfc:1M(boot),2M(kernel),3M(system),10M(application)

分别可以对应到Linux系统启动后的/dev/mtdblock0  /dev/mtdblock1  /dev/mtdblock2  /dev/mtdblock3 

如下:

# ls  /dev/mtdblock* -l
brw-rw----    1 adminlvj root       31,   0 Jan  1 00:00 /dev/mtdblock0
brw-rw----    1 adminlvj root       31,   1 Jan  1 00:00 /dev/mtdblock1
brw-rw----    1 adminlvj root       31,   2 Jan  1 00:00 /dev/mtdblock2
brw-rw----    1 adminlvj root       31,   3 Jan  1 00:00 /dev/mtdblock3

此时我们可以将各个分区存储一一读出来

【flash读命令】

dd if=/dev/mtdblock0 of=u-boot.bin

dd if=/dev/mtdblock1 of=kernel.img

dd if=/dev/mtdblock2 of=rootfs.img

dd if=/dev/mtdblock3 of=app 

 

然后再将读出来的分区文件进行拼接

【文件拼接命令】

dd if=u-boot.bin of=flash-burnfile.img

dd if=kernel.img of=flash-burnfile.img bs=1k seek=1024

dd if=rootfs.img of=flash-burnfile.img bs=1k seek=3072 

dd if=app of=flash-burnfile.bin bs=1k seek=6144 

拼接完成可以生成flash-burnfile.bin,这就是整个flash的bin文件,刚好16M。

 

制作好的flash bin文件可以通过烧录器烧写到flash里面,也可以通过uboot进行整个flash的烧写。


【uboot烧写命令】

mw.b 0x82000000 ff 1000000;tftp 0x82000000 flash-burnfile.img;sf probe 0;sf erase 0x000000 0x1000000;sf write 0x82000000 0x000000 0x1000000;

=====

1000000 是16进制换算成10进制为16777216,16777216/1024/2014 = 16M ,即为整个Flash的大小 ;

所以0x000000 0x1000000就是起始地址和烧写的大小,先erase后write

问题:0x82000000 这个值是什么意思,没想明白,知道的回复一下博客,感谢!(本文是海思hi3518e平台的学习笔记)

 

 

【uboot烧写注意事项】

1、首先开启tftp服务器,再将bin文件拷贝至服务器目录。

2、配置uboot参数:

 

setenv ipaddr 172.18.198.189

setenv serverip 172.18.198.201

saveenv 

3、一定要记得插上网线,配置完uboot参数后,ping一下tftp服务器IP172.18.198.201,检查是否通。

目录
相关文章
|
Java
Pytest----Windows10系统安装配置allure
Pytest----Windows10系统安装配置allure
1378 0
Pytest----Windows10系统安装配置allure
|
安全 大数据 BI
阿里云数据中台发布智能风控引擎Quick Decision和隐私计算DataTrust,升级品牌主张
阿里云数据中台产品矩阵再丰富, Quick Decision和DataTrust双产品公开亮相,同时发布全新品牌视频,升级品牌主张!
15464 0
阿里云数据中台发布智能风控引擎Quick Decision和隐私计算DataTrust,升级品牌主张
|
安全
解决:efi usb device has been blocked by the current security policy
解决:efi usb device has been blocked by the current security policy 问题描述:U盘装系统或者其他操作时,是因为BIOS安全策略,出现上述错误无法进入后续步骤。 解决方法:按F2(Fn+F2)进入BIOS,在secure Boot 中security选择disable。解决! 延伸(可不读): 黑苹
11563 0
|
物联网 测试技术 芯片
Aurora8B10B IP使用 -04- IP例程应用实例
Aurora8B10B IP使用 -04- IP例程应用实例
605 0
Aurora8B10B IP使用 -04- IP例程应用实例
|
存储 消息中间件 缓存
面试官经常问的Redis高频题目,看完面试不再慌
面试官经常问的Redis高频题目,我整理出来了,附参考答案,欢迎大家一起交流、补充和指正。
1694 1
面试官经常问的Redis高频题目,看完面试不再慌
|
弹性计算 数据安全/隐私保护
阿里云无影云桌面连接登录新手教程(用户名密码获取方法)
阿里云无影云桌面用户名和密码在哪查看?连接登录全流程
4740 1
阿里云无影云桌面连接登录新手教程(用户名密码获取方法)
解决Internet Explorer已限制此网页运行脚本或ActiveX控件
解决Internet Explorer已限制此网页运行脚本或ActiveX控件
解决Internet Explorer已限制此网页运行脚本或ActiveX控件
|
Oracle 关系型数据库 Linux
DM8重做日志文件和归档管理
重做日志文件,用来保存redo日志,redo日志默认2个,循环使用,不断覆盖,联机日志由系统自动切换,不能手动切换,联机日志过小,会制造日志频繁切换,过大则浪费磁盘空间。
DM8重做日志文件和归档管理
|
关系型数据库 MySQL PHP
头歌php mysql操作答案
头歌php mysql操作答案
906 0
|
存储 监控 Java
实现一个全链路监控平台很难吗?Pinpoint、SkyWalking、Zipkin,哪个实现比较好?
随着微服务架构的流行,服务按照不同的维度进行拆分 ,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上 ,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心 。因此,就需要一些可以帮助理解系统行为
实现一个全链路监控平台很难吗?Pinpoint、SkyWalking、Zipkin,哪个实现比较好?