海思Hi35xx 通过uboot查看flash指定地址的数据
前言
在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样。
网上有介绍说是nandflash 不稳定,高温或是静电会导致nand flash 的比特位反转的问题,反转的少了,controller内部的ECC会将数据纠正,反转的多了超过纠错能力,就没有办法正确读取数据,这个在高温的时候比较明显。
在海思平台上,可以通过这样的一种方式来查看是否flash中的数据发生了数据位的反转或是数据错误:
- 用海思自带的HiTool工具,烧入一个uboot到ddr,也就是烧入到内存,让uboot从内存中启动。
- 在uboot中去读取flash指定地址的数据,把数据显示出来。
- 对比读取出来的数据与原来数据是否相等。
具体步骤如下:
烧入Uboot到内存,uboot从内存中启动:

擦除内存的一段地址,用来存放flash 数据:
将内存0x82000000 地址开始的1M 空间全部填写数据0xFF
mw.b 0x82000000 ff 100000;
- 读取flash指定地址的数据:
从flash 0地址开始的位置读取0x100000(1M)的数据到内存地址0x82000000
nand read 0x82000000 0 0x100000
- uboot显示读取到的flash数据:
md命令是memory display的缩写,显示内存地址为0x82000000 开始的0x100 个32位的数据,也就是1K数据
md 0x82000000 100
显示内容如下:
Wisdom # md 0x82000000 100
82000000: ea000517 e59ff014 e59ff014 e59ff014 ................
82000010: e59ff014 e59ff014 e59ff014 e59ff014 ................
82000020: 808016a0 80801700 80801760 808017c0 ........`.......
82000030: 80801820 80801880 808018e0 12345678 ...........xV4.
82000040: 12040050 00000000 00000000 000000fd P...............
82000050: 12040054 00000000 00000000 00fd0000 T...............
82000060: 00000000 00000000 00000064 00000000 ........d.......
82000070: 12040000 12000000 00000000 000000fd ................
82000080: 12040004 010060fa 00000000 000000fd .....`..........
82000090: 12040198 00000006 00000000 00000015 ................
820000a0: 12040030 12000000 00000000 000000fd 0...............
820000b0: 12040034 000060e9 00000000 000000fd 4....`..........
820000c0: 12040198 00000049 00000000 00001845 ....I.......E...
820000d0: 12040198 00000001 00000000 0000000d ................
820000e0: 12040198 00000000 00000000 00001005 ................
820000f0: 12040158 000000ff 00000000 003d0000 X.............=.
82000100: 10000008 00000002 00000000 0000401d .............@..
82000110: 12040050 0001ff7c 00000000 0000008d P...|...........
82000120: 12040054 0001ff7c 00000000 008d0000 T...|...........
82000130: 00000000 00000000 000001f4 00000000 ................
82000140: 1204014c 00000003 00000000 0000280d L............(..
82000150: 1204014c 00000003 00000000 0000680d L............h..
82000160: 12040148 00000001 00000000 0000100d H...............
82000170: 12050090 ffffffff 00000000 000000fd ................
82000180: 12050094 b17391c9 00000000 000000fd ......s.........
82000190: 12050098 00000000 00000000 000000fd ................
820001a0: 120500a0 000017ff 00000000 000000fd ................
820001b0: 120e0000 000000c7 00000000 000000fd ................
820001c0: 120e0004 000000c7 00000000 000000fd ................
820001d0: 120e0010 00000005 00000000 0000001d ................
820001e0: 00000000 00000000 00e4e1c0 00000000 ................
820001f0: 12110100 00001580 00000000 000000fd ................
82000200: 12110104 71050024 00000000 000000fd ....$..q........
82000210: 12118040 00002401 00000000 000000fd @....$..........
82000220: 12118050 00c10a16 00000000 000000fd P...............
82000230: 12118060 00000142 00000000 000000fd `...B...........
82000240: 12118048 00000000 00000000 000000fd H...............
82000250: 12118058 00000000 00000000 000000fd X...............
82000260: 12118100 34421a12 00000000 000000fd ......B4........
82000270: 12118104 4144b48d 00000000 000000fd ......DA........
82000280: 12118108 540110dd 00000000 000000fd .......T........
82000290: 1211810c 57896724 00000000 000000fd ....$g.W........
820002a0: 12118110 00800000 00000000 000000fd ................
820002b0: 12118114 00041308 00000000 000000fd ................
820002c0: 12118118 00000066 00000000 000000fd ....f...........
820002d0: 121180a0 00000001 00000000 000000fd ................
820002e0: 12118200 000f0000 00000000 000000fd ................
820002f0: 121184cc 00000000 00000000 000000fd ................
82000300: 1211c01c 5dc00080 00000000 000000fd .......]........
82000310: 1211c010 000a00c0 00000000 000000fd ................
82000320: 1211c014 f000f000 00000000 000000fd ................
82000330: 1211c030 34892221 00000000 000000fd 0...!".4........
82000340: 1211c034 168d1285 00000000 000000fd 4...............
82000350: 1211c038 20082208 00000000 000000fd 8....". ........
82000360: 1211c03c 0000052c 00000000 000000fd <...,...........
82000370: 1211c040 4034657c 00000000 000000fd @...|e4@........
82000380: 1211c0bc 00000009 00000000 000000fd ................
82000390: 1211c064 00061014 00000000 000000fd d...............
820003a0: 1211c068 00000020 00000000 000000fd h... ...........
820003b0: 1211c074 00000000 00000000 000000fd t...............
820003c0: 1211c070 00000908 00000000 000000fd p...............
820003d0: 1211c084 0010410a 00000000 000000fd .....A..........
820003e0: 1211d208 0002ff00 00000000 000000fd ................
820003f0: 1211d308 0002ff00 00000000 000000fd ................
Wisdom #
- 查看原烧入flash 0地址文件的数据
原来烧入进去的数据为:

- 数据对比:
这里只对比0x0000~0x000地址的数据,也就是第一行的数据,其它以此类推:
uboot中读取到内存中并显示出来的数据是:
82000000: ea000517 e59ff014 e59ff014 e59ff014 ................
实际flash中应该的数据是:

这里需要注意一下大小端的问题,uboot中显示出来的数据与在Windows中用UltraEdit工具查看的大小端刚好是反了。从这里我们可以看出,我们的第一行数据是一样的,没有发送反转。
如果要对比整块的内存数据,可以使用uboot的 cmp 命令进行对比,这里不再介绍。
---------------------------End---------------------------
长按识别二维码
关注 liwen01 公众号
海思Hi35xx 通过uboot查看flash指定地址的数据的更多相关文章
- 海思hi35xx 开发学习(3):视频输入
视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据.V ...
- 海思HI35xx平台软件开发快速入门之H264解码实例学习
ref :https://blog.csdn.net/wytzsjzly/article/details/82500277 前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟 ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- STM8的AIR与STM32的Keil的指定地址存数据
[经验分享]KE02在IAR和KEIL中以常量形式初始化EEPROM值一, 经验分享描述 写这篇经验分享的原因是,之前有一个客户,他希望在KE02的芯片中,不要出现使用EEPROM操作命 ...
- 海思HI35XX之----视频处理单元各通道间的关系
最近在折腾HI3518C的芯片,应用到IPCamera上,最终获取多路不同分辨率的视频流供不同需求的预览切换.此处简单记录一下视频前处理元VPSS(Video Process Sub-System)的 ...
- 海思hi35xx 开发学习(2):系统控制
应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作.同理,应用程序退出MPP 业务后,也要完成 MPP 系统去初始化工作,释放资源. 视频缓存池 一组大小相同.物理地址连续的缓存块组成一个 ...
- 海思hi35xx 开发学习(1):海思媒体处理平台架构
处理平台架构图: 主要分为: 视频输入(VI):VI 模块捕获视频图像,可对其做剪切.去噪等处理,并输出多路不同分辨率的图像数据. 视频处理(VPSS):VPSS 模块接收 VI 和解码模块发送过来的 ...
- linux中查看文件指定行的数据
http://jingyan.baidu.com/article/15622f24125872fdfdbea560.html
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
前言 移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持. Ffmpeg的移植 Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...
- [转帖]海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏?
海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏? https://t.cj.sina.com.cn/articles/view/6635931736/18b88485800100cz4h?fr ...
随机推荐
- ElasticSearch之cat count API
读取当前存储的记录的数量. 命令样例如下: curl -X GET "https://localhost:9200/_cat/count?v=true&pretty" -- ...
- 技本功|Hive优化之监控(三)
Hive是大数据领域常用的组件之一,主要是大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的技能.影响Hive效率的主要有数据倾斜. ...
- 虚拟化M搭建及基本操作
虚拟化MH搭建 虚拟化概念: 虚拟机安装分为2块:RHEVM .RHEVH RHEVM:负责管理角色 RHEVH:负责运算角色 2016-09-23_0-52-54.png hypervisor: 提 ...
- k8s集群Node节点管理:节点信息查看及节点label标签管理
k8s集群Node节点管理:节点信息查看及节点label标签管理 Kubernetes集群Node管理 一.查看集群信息 [root@k8s-master1 ~]# kubectl cluster-i ...
- 认识Java的整形数据结构
摘要:java中一切都是对象,为什么int不用创建对象实例化,而可以直接使用? 本文分享自华为云社区<[Java]对基本类型-整型数据结构的认识>,作者: huahua.Dr . 整型数据 ...
- iOS上架报错:无法添加以供审核
无法提交以供审核 要开始审核流程 必须提供以下项目 您必须为要添加的 app 提供版权信息. 您在提交 app 审核时遇到的问题是因为需要提供版权信息,而您的 app 缺少相关的版权信息.以下是解 ...
- SAST + SCA: 结合使用安全升级
据 SAP 称,当今85%的安全攻击针对的是软件应用程序,因此一些列应用程序安全测试工具也应运而生.为了避免这些恶意攻击,企业通常使用应用程序安全测试工具来去缓解和解决安全风险,而不同的工具对应的使用 ...
- Java 日志框架学习笔记
日志概念 1. 日志文件 日志文件是用于记录系统操作事件的文件集合 1.1 调试日志 1.2 系统日志 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以监视系统中发生的事件.用户可以通过它来 ...
- Hugging Face 音频 AI 派对直播回放(上)
直播回放视频地址:https://www.bilibili.com/video/BV1nh4y1X7zs/?vd_source=c5a5204620e35330e6145843f4df6ea4 为了庆 ...
- c#-微软2
练习-编写第一个代码: 在第一次练习中你将使用c#将神圣的程序员用语打印到控制台的标准输出 编写第一行代码: 在软件开发者中,有这么一个传统,那就是将"Hello World!"这 ...