MDK烧录后,flash读取出错

作者在调试过程中遇到程序复写后初始化值丢失的问题,通过深入检查发现是由于Flash配置错误。文章详细描述了解决过程,包括配置Flash下载算法、识别'EraseFullChip'与'EraseSectors'的差异,最终解决了烧录后的0xFF问题。
摘要由CSDN通过智能技术生成

今天调试软件的时候发现一个问题
flash在断电保存后是正常的,但是重新烧写后就会赋初值
怀疑是配置问题,但是核对了和其他软件一样(PS:核对漏了)

重新查软件,发现烧录后从flash读之后就是0xFF,百度了一下说读到0xFF表示flash里面没数据
因为没数据,所以每次到会运行到初值部分,那为什么烧录后会0xFF还是没明白

最后没办法,我新建一个工程,把用的函数拷进去吧

拷完后烧录,发现烧录不了,报错
Error: Flash download failed-“Cortex-M3”

又去找了下度娘

出现这处问题通常是MDK中的Flash的编程算法没有配置或没有配置正确,

    1. 在主菜单中打开Flash->Configure Falsh Tools配置窗口,切换到“Utilities"页。
    2. 按“Setting"按钮进入“Flash download setup"配置窗口
    3. 然后一路按“OK”按钮退出配置窗口
    4. 在“Flash download setup"配置窗口点击“Add”按钮进入“Add Flash Programming Algorlthm"窗口
    5. 在“Add Flash Programming Algorlthm"窗口,根据你实际使用的芯片选择,应先择"STM32F10X xxxkB Flash",选定编程算法后,按“Add”按钮。
    6. 之后一路按"OK"按扭确认修改的配置.

发现并不适用,已经添加了大小文件,但是选项不一样,新建的程序,Reset and Run 没有打勾,打勾之后,发现好了,而且新程序并没有出现,烧录后立即赋初值的问题,!!!!那么之前旧程序就是这里的配置又问题!!!!

在这里插入图片描述
在这里插入图片描述

于是,打开旧程序,果然这里的配置一样,没有选择“Erase Sectors”而是选择了“Erase Full Chip”,所以说每次都清空了

终于找到问题了,天呐!如果要多尝试,还有自己要再多懂一点,如果我还记得这个地方也有配置的话就不会漏了比较这里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值