请选择 进入手机版 | 继续访问电脑版

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

STM32关于FLASH的编程对齐错误标志位(PGAERR)的理解,我验证无法产生此错误

[复制链接]
haifanyuntian 提问时间:2022-11-21 17:38 / 未解决
大神们,我现在正在做一个应用,需要熟悉STM32F4的FLASH的任何错误标识,以用于特殊情况下的错误标识判断做相应处理,但是针对FLASH的编程对齐错误标志(PGAERR)与我理解不同。

原文描述:不允许针对 Flash 执行跨越 128 位行界限的数据编程操作。如果出现这种情况,写操作将不会执行,并且 FLASH_SR 寄存器中的编程对齐错误标志位 (PGAERR) 将置 1。

我的理解:就是在对flash的地址0x0800 000F、0x0800 001F、0x0800 002F……等地址进行WORD编程,因为地址未对齐,并且接近128位行界限地址,所以编程会产生编程对齐错误,置位PGAERR。

但实际验证与我的理解不一样,按照我的理解写程序,最终产生的是编程并行位数错误, PGPERR将置 1。

麻烦帮我解答下,谢谢
收藏 评论2 发布时间:2022-11-21 17:38

举报

2个回答
butterflyspring 回答时间:2022-11-22 10:19:39
手册描述这个的目的是要求用户对齐编程,照着做就是了。照着做通常不会出错的。即使真的出错了,库里面出错接口也只能重新写或者报警。   用户研究这个意义不大,这个只对芯片设计人员有意义。
haifanyuntian 回答时间:2022-11-24 10:30:30
butterflyspring 发表于 2022-11-22 10:19
手册描述这个的目的是要求用户对齐编程,照着做就是了。照着做通常不会出错的。即使真的出错了,库里面出错 ...

麻烦不清楚我问题的实际答案就不要另类回答,我既然提出这个问题肯定不只是对flash编程正确的需求这么简单,既然ST提供出来,自然是给用户用的,那文档没说明清楚或与实际测试不相符,就要弄懂,这也是学好技术的好习惯,“要知其然,更要知其所以”。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版