img烧录到校验完成就一直不动了

img烧录到校验完成就一直不动了,第1张

程序没有烧录到flash中。校验完成就一直不动了原因是程序没有烧录到flash中。所以在烧录flash前,勾选上"写入后进行校验"。校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。

NAND Flash跟普通的Flash结构不一样,由于NAND Flash自身的特性,偶尔会出现位反转的情况,所以在烧录的时候要注意下ECC。位反转是指原先Nand Flash中的某个位,变化了,即要么从1变成0了,要么从0变成1了。小容量的NandFlash一般不容易产生位反转,如1Gbit、2Gbit的;一般大容量的会比较容易产生,如32Gbit的。

为什么会出现位反转的情况,有以下几点原因:

漂移效应:漂移效应指的是,Nand Flash中cell的电压值,慢慢地变了,变的和原始值不一样了。

编程干扰所产生的错误:此现象有时候也叫做,过度编程效应。

对于某个页面的编程 *** 作,即写 *** 作,引起非相关的其他的页面的某个位跳变了。

读 *** 作干扰产生的错误:此效应是,对一个页进行数据读取 *** 作,却使得对应的某个位的数据,产生了永久性的变化,即Nand Flash上的该位的值变了。

在烧录的过程中如果没有设置相应的ECC,那么在校验的时候发现NAND Flash里面的数据和原始数据不一样,烧录就提示出错了。

解决的办法就是在烧录前,就设置好ECC,如我用的SmartPRO 6000F-PLUS是这样设置的,如下图示。

程序

1、使用STM32CubeProgrammer软件,连接STM32开发板,点击Erase,擦除Flash;

2、点击Program,选择新的程序文件,点击Program,烧录新的程序;

3、点击Verify,校验烧录的程序是否正确;

4、点击Reset,重启STM32,新的程序就烧录成功了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11581619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存