flash文件制作笔记

在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,检查是否通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未检测到正确安装的网络适配器_电脑网络适配器有感叹号怎么解决?

今天有位女性乎友问:我家的电脑之前一直没装宽带,主要是家人怕影响学习,不过上周就涨了,电脑终于连上网线,但没办法上网,还发现电脑设备管理器中网络适配器出现黄色感叹号。对于电脑的网络适配器感叹号问题…

Android之Launcher分析和修改5——HotSeat分析

今天主要是分析一下Launcher里面的快捷方式导航条——HotSeat,一般我们使用手机底下都会有这个导航条,但是如果4.0的Launcher放到平板电脑里面运行,默认是没有HotSeat的,刚好我这里的运行环境类似平板,系统默认把HotSe…

使用Spectre.Console创建漂亮的控制台应用程序

前言你是否厌倦了控制台应用程序默认的简陋界面&#xff1f;这时&#xff0c;你可以试试引用Nuget包Spectre.Console。打印使用帮助首先&#xff0c;我们可以设置控制台应用程序可以执行的命令&#xff1a;static async Task<int> Main(string[] args) {var app new Com…

Boosting集合算法详解(一)

本文是关于聚类算法的第二篇K-means&#xff0c;感兴趣的同学可以前往http://ihoge.cn/2018/clustering.html 阅读完整版。 二、K-means 1. 算法步骤 <1> 选择KK个点作为初始质心 <2> Repeat: <3> 将每个点指派到最近的质心,形成K" role="pre…

一款不错的网站压力测试工具webbench

webbench最多可以模拟3万个并发连接去测试网站的负载能力  1、适用系统&#xff1a;Linux  2、编译安装&#xff1a; wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make installUnbun…

WindowsPhone8可缩放图片控件的实现

xaml中添加: <ViewportControl x:Name"viewport" DoubleTap"OnDoubleTap"ManipulationStarted"OnManipulationStarted" ManipulationDelta"OnManipulationDelta" ManipulationCompleted"OnManipulationCompleted" Viewpo…

python导入自定义模块_Python3 导入自定义的包

什么是包&#xff1f; 要想知道什么是包&#xff0c;得先了解一下模块的概念。 模块是一个包含所有你定义的函数和变量的文件&#xff0c;其后缀名是 .py。模块可以被别的程序引入&#xff0c;以使用该模块中的函数等功能。 知道了模块&#xff0c;那紧接着看看包&#xff1a; …

Android之ComponentName的用法

ComponentName(组件名称)是用来打开其他应用程序中的Activity或服务的、 ComponentName,顾名思义,就是组件名称,通过调用Intent中的setComponent方法,我们可以打开另外一个应用中的Activity或者服务。 实例化一个ComponentName需要两个参数,第一个参数是要启动应用的包…

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的&#xff0c;但是在某些情况下&#xff0c;想要查看某个文件或者某个设备被哪些进程所使用&#xff0c;使用ps、pgrep等命令查询的是不够准…

巧用Hive自带函数进行多字段分别去重计数统计

巧用Hive自带函数进行多字段分别去重计数统计 1-group by 和 distinct 大前提&#xff1a;大表统计能使用group by就不要使用distinct&#xff01;&#xff01; 尤其是在数据量非常大的时候&#xff0c;distinct会将所有的统计信息加载到一个reducer里取执行&#xff0c;这就是…

初识MASA Blazor

MASA Blazor是一个Blazor的UI组件库。就像大家写前端熟知的Bootstrap, Ant Design一样。MASA Blazor官网地址&#xff1a;https://blazor.masastack.comMASA Blazor Github地址&#xff1a;https://github.com/BlazorComponent/MASA.BlazorMASA Blazor Pro演示地址&#xff1a;…

Thread.sleep还是TimeUnit.SECONDS.sleep

刚看到TimeUnit.SECONDS.sleep()方法时觉得挺奇怪的&#xff0c;这里怎么也提供sleep方法&#xff1f;public void sleep(long timeout) throws InterruptedException {if (timeout > 0) {long ms toMillis(timeout);int ns excessNanos(timeout, ms);Thread.sleep(ms, ns…

win7技巧

win7鼠标右键菜单清理 win7右键菜单设置 |浏览&#xff1a;7659|更新&#xff1a;2014-03-04 14:23|标签&#xff1a; windows7 鼠标 1234567分步阅读虽然我们现在打开某个软件都是双击解决完事&#xff0c;但是偶尔我们需要右键属性的时候&#xff0c;可以看到右键菜单拖拖拉拉…

shell基础一

Shell支持自定义变量。 定义变量 定义变量时&#xff0c;变量名不加美元符号&#xff08;$&#xff09;&#xff0c;如&#xff1a; variableName"value" 注意&#xff0c;变量名和等号之间不能有空格&#xff0c;这可能和你熟悉的所有编程语言都不一样。 同时&…

python画方波_python实现周期方波信号频谱图

在学习傅里叶变换的时候遇到了求周期方波信号频谱图的例子&#xff0c;在书上和网上查阅了一些资料&#xff0c;发现大都是讨论的都是下图左边的周期信号的频谱&#xff0c;课程老师的PPT中也只列出了另一种周期信号频谱图的结论&#xff0c;没有在进行傅里叶变换&#xff0c;自…

基于Python的电商平台淘宝商品评论数据采集与分析

引言 在电商竞争日益激烈的情况下&#xff0c;商家既要提高产品质量&#xff0c;又要洞悉客户的想法和需求&#xff0c;关注客户购买商品后的评论&#xff0c;而第三方API接口商家获取商品评价主要依赖于人工收集&#xff0c;不但效率低&#xff0c;而且准确度得不到保障。通过…

《Pyflink》Flink集群安装,Python+Flink调研

Flink集群安装&#xff0c;PythonFlink调研 Flink集群部署 下载对应版本安装包&#xff1a;https://flink.apache.org/downloads.html 实验环境为hadoop2.7&#xff0c; scala2.11 所以下载flink-1.7.1-bin-hadoop27-scala_2.11.tgz 配置conf/flink-conf.yaml jobmanager.rpc…