Hi3520烧写flash失败问题分析

2024-04-24 19:08

本文主要是介绍Hi3520烧写flash失败问题分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

CPU芯片型号:Hi3520 DRQCV300 CP3091820 1820-CHINA

flash型号:MX25L12835FM2I-10G 【spi nor flash】

工厂生产的样板回来后,热风枪拆下flash,然后又焊接上,使用HiTool工具烧写固件时出现30%概率烧写失败,识别flash失败或者擦除失败,或者烧写成功但启动失败;拆下之前正常使用板子的flash也出现了30%概率的烧写失败。

烧写

HiTool烧写失败差图

识别flash失败打印如下:

U-Boot 2010.06 (Jul 31 2019 - 09:58:04)Check Flash Memory Controller v100 ... Found
Cannot found a valid SPI Nand Device
*** Warning - bad CRC, using default environmentIn:    serial
Out:   serial
Err:   serial
start download process.Boot Started successfully!Send command:	getinfo version
version: 3.0.3
[EOT](OK)Send command:	getinfo bootmode
spi
[EOT](OK)Send command:	getinfo spi
no find spi
[EOT](OK)
Invalid spi flash block size!

识别出2片flash,且擦除失败打印如下:

Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xc2 0x20 0x18
spi_general_write_enable(141): Error: Write Enable failed! status: 0x20
Block:64KB Chip:16MB Name:"MX25L128XX"
SPI Nor(cs 1) ID: 0xc2 0x20 0x18
spi_general_write_enable(141): Error: Write Enable failed! status: 0x20
Block:64KB Chip:16MB Name:"MX25L128XX"
SPI Nor total size: 32MB
Send command:	getinfo spi
Block:64KB Chip:16MB*2 
ID:0xC2 0x20 0x18 
Name:"MX25L128XX"
[EOT](OK)
Send command:	sf erase 0x0 0x80000
spi_general_write_enable(141): Error: Write Enable failed! status: 0x20Erasing at 0x10000 --  12% complete.
Erasing at 0x20000 --  25% complete.spi_general_write_enable(141): Error: Write Enable failed! status: 0x20Erasing at 0x30000 --  37% complete.
Erasing at 0x40000 --  50% complete.spi_general_write_enable(141): Error: Write Enable failed! status: 0x20Erasing at 0x50000 --  62% complete.
Erasing at 0x60000 --  75% complete.spi_general_write_enable(141): Error: Write Enable failed! status: 0x20

烧写无异常但启动内核失败打印如下:

	Wrong Image Format for bootm commandERROR: can't get kernel image!hisilicon # 	

 打印出内核的数据是乱码。

分析

由于烧录器被拿走了,暂不能测试使用烧录器是什么情况,后续待测。

使用之前0.2版本的板子烧写一样问题无改善;

目前怀疑是flash品质问题,待进一步确认。。。

使用烧录器验证

烧录器:CH341A PRO,打开软件后闪退并且文件消失,需要把杀毒软件关闭。

第一种情况:无法识别;

第二种情况:擦除失败;

第三种情况:编程后校验失败;

结论:使用Hitool烧写失败的flash使用烧录器还是烧写失败;如果忽略错误提示就算显示和读取出来对比成功,焊接在板子上面依然启动失败;并且多次焊接后,有一个擦除失败的flash不能识别了,难道多次热风焊接后就坏了吗?

全新20片flash验证

验证计划:使用烧录器,擦除,查空,编程,校验,读取都要成功,不要报任何错,且读取出的文件能对比成功才算通过;计算出烧写失败的概率;

然后焊接到板子上面进行启动验证;

然后使用HiTool烧写启动验证;

然后拆下重新焊上烧写验证;

最新验证结果:

    1、6片烧录器烧录成功,使用底座在B样视频板启动成功;
    2、4片使用底座在B样视频板HiTool烧写启动成功;
    3、5片空片加热后使用B样视频板HiTool烧写启动成功;
    4、其他20片使用烧录器识别成功;
    5、焊接5片到C样启动和烧写验证正常;

结论

工厂出来的flash芯片没有问题,可能是在生产过程中焊接或者手动拆下焊接导致的损坏,建议生产温度曲线300多度,手动焊接温度300多且不要加热太久。

 

这篇关于Hi3520烧写flash失败问题分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932586

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解