前言

在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样。

网上有介绍说是nandflash 不稳定,高温或是静电会导致nand flash 的比特位反转的问题,反转的少了,controller内部的ECC会将数据纠正,反转的多了超过纠错能力,就没有办法正确读取数据,这个在高温的时候比较明显。

在海思平台上,可以通过这样的一种方式来查看是否flash中的数据发生了数据位的反转或是数据错误:

  1. 用海思自带的HiTool工具,烧入一个uboot到ddr,也就是烧入到内存,让uboot从内存中启动。
  2. 在uboot中去读取flash指定地址的数据,把数据显示出来。
  3. 对比读取出来的数据与原来数据是否相等。

具体步骤如下:

  1. 烧入Uboot到内存,uboot从内存中启动:

  2. 擦除内存的一段地址,用来存放flash 数据:

    将内存0x82000000 地址开始的1M 空间全部填写数据0xFF

mw.b 0x82000000 ff 100000;

  1. 读取flash指定地址的数据:

    从flash 0地址开始的位置读取0x100000(1M)的数据到内存地址0x82000000

nand read 0x82000000 0 0x100000

  1. 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 #
  1. 查看原烧入flash 0地址文件的数据

    原来烧入进去的数据为:

  1. 数据对比:

    这里只对比0x0000~0x000地址的数据,也就是第一行的数据,其它以此类推:

    uboot中读取到内存中并显示出来的数据是:
82000000: ea000517 e59ff014 e59ff014 e59ff014    ................

实际flash中应该的数据是:

这里需要注意一下大小端的问题,uboot中显示出来的数据与在Windows中用UltraEdit工具查看的大小端刚好是反了。从这里我们可以看出,我们的第一行数据是一样的,没有发送反转。

如果要对比整块的内存数据,可以使用uboot的 cmp 命令进行对比,这里不再介绍。

---------------------------End---------------------------
长按识别二维码
关注 liwen01 公众号

海思Hi35xx 通过uboot查看flash指定地址的数据的更多相关文章

  1. 海思hi35xx 开发学习(3):视频输入

    视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据.V ...

  2. 海思HI35xx平台软件开发快速入门之H264解码实例学习

    ref :https://blog.csdn.net/wytzsjzly/article/details/82500277   前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟 ...

  3. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  4. STM8的AIR与STM32的Keil的指定地址存数据

    [经验分享]KE02在IAR和KEIL中以常量形式初始化EEPROM值一, 经验分享描述        写这篇经验分享的原因是,之前有一个客户,他希望在KE02的芯片中,不要出现使用EEPROM操作命 ...

  5. 海思HI35XX之----视频处理单元各通道间的关系

    最近在折腾HI3518C的芯片,应用到IPCamera上,最终获取多路不同分辨率的视频流供不同需求的预览切换.此处简单记录一下视频前处理元VPSS(Video Process Sub-System)的 ...

  6. 海思hi35xx 开发学习(2):系统控制

    应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作.同理,应用程序退出MPP 业务后,也要完成 MPP 系统去初始化工作,释放资源. 视频缓存池 一组大小相同.物理地址连续的缓存块组成一个 ...

  7. 海思hi35xx 开发学习(1):海思媒体处理平台架构

    处理平台架构图: 主要分为: 视频输入(VI):VI 模块捕获视频图像,可对其做剪切.去噪等处理,并输出多路不同分辨率的图像数据. 视频处理(VPSS):VPSS 模块接收 VI 和解码模块发送过来的 ...

  8. linux中查看文件指定行的数据

    http://jingyan.baidu.com/article/15622f24125872fdfdbea560.html

  9. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    前言   移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持.   Ffmpeg的移植   Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...

  10. [转帖]海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏?

    海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏? https://t.cj.sina.com.cn/articles/view/6635931736/18b88485800100cz4h?fr ...

随机推荐

  1. 修改Ubuntu登录欢迎界面

    查看登录效果 run-parts /etc/update-motd.d ubuntu 与别的linux不同,直接修改/etc/motd文件重登录后无效.因为这里/etc/motd是一个符号链接,指向/ ...

  2. Android 蓝牙使用

    原文地址: Android 蓝牙使用 - Stars-One的杂货小窝 公司项目需求需要实现监听蓝牙耳机连接,且要获取蓝牙耳机电量功能,翻了不少官方文档,记录下技术调研代码 注:本文没有研究蓝牙配对功 ...

  3. Boost程序库完全开发指南:1.2-C++基础知识点梳理

      主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的. 1.const_cast <n ...

  4. 如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face

    Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建.部署和训练机器学习模型.它提供基础设施,用于在实时应用中演示.运行和部署人工智能(AI).用户还可以浏览其他用户上传的 ...

  5. 在线编辑Word——插入表格

    Word中可插入表格并进行相关格式化操作用于美化表格设计.本文,将通过使用Spire.Cloud Word在线编辑器展示如何来插入格式化的表格到Word.详细步骤见以下内容: 1. 进入在线编辑Wor ...

  6. C#/VB.NET 添加、删除PPT幻灯片中的数字签名

    本文介绍如何通过C#及VB.NET代码来添加数字签名到PPT幻灯片文档,以及如何将文档中的数字签名删除. 辅助工具: Spire.Presentation.dll (dll版本为5.11.2) 注意: ...

  7. Web 全栈开发利器: 强大的在线 Cloud IDE

    摘要:近年来,敏捷.DevOps的理念已逐步成为主流.基于云计算的开发环境也正获得越来越多开发者的青睐.不难想象,云端IDE已成未来的趋势. 学了Web全栈开发,就得动手实践,要动手,得先有开发环境. ...

  8. LiteOS:剖析时间管理模块源代码

    摘要:Huawei LiteOS的时间管理模块以系统时钟为基础,分为2部分,一部分是SysTick中断,为任务调度提供必要的时钟节拍:另外一部分是,给应用程序提供所有和时间有关的服务,如时间转换.统计 ...

  9. 探索SaaS产业发展新机遇|鲁班会贵安首秀圆满收官

    摘要:2021年12月28日-12月29日,华为云·核心伙伴开发者训练营(第八期)-SaaS应用构建实践专场在华为贵安数据中心召开. 当前,在数字化新兴技术和数字化转型的热潮的引领下,SaaS业务应用 ...

  10. java反射机制原理剖析

    当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言.我们认为java并不是动态语言,但是java有一个非常突出的动态相关机制,俗称:反射. IT行业里这么说,没有反射也就没有框架,现有的框 ...