本文主要是介绍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失败问题分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!