你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

程序跑到H723ZGT6的flash擦除那一段命令就死机

[复制链接]
王陌陌 提问时间:2024-7-24 10:06 / 已解决

除了死机外,keil弹出对话框:Cannot access target .Shutting down debug session。

请问这个什么原因导致的呢?

error.png

收藏 评论6 发布时间:2024-7-24 10:06

举报

6个回答
xmshao 最优答案 回答时间:2024-7-31 14:19:59

王陌陌 发表于 2024-7-31 10:17
同志!!!我知道哪里有问题了!!!</p>
<p>整个关于flash擦除的操作总共就没几条指令,于是就一个个参数改, ...

FLASH的编程宽度或粒度,8位,16位,32位或64位,对编程电压需求是不一样的。

image.png

例程里选择的就是FLASH_VOLTAGE_RANGE_4,像页擦除,bank擦除都该选择这个。该系列的参考手册里关于这点感觉不是很清晰,别的系列比方F4关于这点讲得更清晰些。

xmshao 回答时间:2024-7-24 11:41:43
.
xmshao 回答时间:2024-7-24 11:46:43
这要看你擦除的是什么地方,不要把正在运行的代码也擦除了,不然是会死机。


还有,就是你擦除的内容是否会影响到中断的正常处理,即擦除后使得中断服务程序没法完整
执行,没完没了的进中断?


一般来讲,被擦除的应该是目前闲置的代码或区域。


再就是注意系统供电稳定。
王陌陌 回答时间:2024-7-24 11:50:12

xmshao 发表于 2024-7-24 11:41
这要看你擦除的是什么地方,不要把正在运行的代码也擦除了,不然是会死机。</p>
<p>

首先,谢谢你的即时回复!

嗯,我明白您的意思,我用的是STM32H723ZGt6的芯片,这个芯片有两个Bank(Bank1、Bank2),一共有8个扇区(sector0、sector1、sector2、sector3、sector4、sector5、sector6、sector7),每一个Bank有4个扇区,每个扇区有128kB的容量,我擦除的是第一个Back的sector3,我的程序就一个估计也就2k,怎么说都不可能和运行程序干涉呀?

请问这是什么问题呢?

xmshao 回答时间:2024-7-24 14:32:04
另外,你在flash擦除或编程前请将ICACHE关闭掉,之后再可以打开。你检查下这点。
王陌陌 回答时间:2024-7-31 10:17:56
xmshao 发表于 2024-7-24 14:32
另外,你在flash擦除或编程前请将ICACHE关闭掉,之后再可以打开。你检查下这点。 ...

同志!!!我知道哪里有问题了!!!

整个关于flash擦除的操作总共就没几条指令,于是就一个个参数改,总会瞎猫碰到死耗子,试了十几二十次总算是知道问题在哪了。

这是我原本的参数设置:EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;

这是我改过后的:EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_4;

改成  EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_4  就可以了。
至于FLASH_VOLTAGE_RANGE_3和FLASH_VOLTAGE_RANGE_4有什么区别,不知道,程序跑通就行
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版