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

【求助】STM32F427 Flash报PGSERR错误

[复制链接]
kishs 提问时间:2024-9-4 11:41 / 未解决

在使用bootloader跳转到APP区域后,运行几步就开始报PGSERR错误导致不能再对Flash进行擦写

以下相应的操作:

  • bootloader程序:
  • 1725418158134.png

1725418195997.png

  • APP程序:
  • 1725418242813.png

1725417631600.png

有几点奇怪的地方:

1、FLASH->SR 的PGSERR报错时间并无明显特定时间,在bootloader跳转到APP后,单步调试并不能确定哪里报故。 2、在APP跳转到报故的一段时间并没有对Flash进行任何操作

3、有其他APP程序执行相同操作,会出现偶尔报错,偶尔不报错,对比报错前后并无特殊处理

  • 补充代码:
#define  PREFETCH_ENABLE              1U
#define  INSTRUCTION_CACHE_ENABLE     1U
#define  DATA_CACHE_ENABLE            1U

HAL_StatusTypeDef HAL_Init(void)
{
  /* Configure Flash prefetch, Instruction cache, Data cache */ 
#if (INSTRUCTION_CACHE_ENABLE != 0U)
  __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
#endif /* INSTRUCTION_CACHE_ENABLE */

#if (DATA_CACHE_ENABLE != 0U)
  __HAL_FLASH_DATA_CACHE_ENABLE();
#endif /* DATA_CACHE_ENABLE */

#if (PREFETCH_ENABLE != 0U)
  __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
#endif /* PREFETCH_ENABLE */

  /* Set Interrupt Group Priority */
  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);

  /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
  HAL_InitTick(TICK_INT_PRIORITY);

  /* Init the low level hardware */
  HAL_MspInit();

  /* Return function status */
  return HAL_OK;
}
1725417631600.png
1725418242813.png
1725417547752.png
1725418195997.png
1725418158134.png
收藏 评论1 发布时间:2024-9-4 11:41

举报

1个回答
xmshao 回答时间:2024-9-6 15:00:21
PGSERR: Programming sequence error
Set by hardware when a write access to the Flash memory is performed by the code while
the control register has not been correctly configured. Cleared by writing 1


这个问题可以分两种情形来看:


第一种情形,就是你当前的FLASH编程过程中出现了没有遵守flash编程规则导致的编程错误;


对于这种情形,重点检查下有关flash编程的操作代码;比方开锁、编程对齐约定等;




第二种情形,本质上跟第一种是一样的,也是非法操作flash。但往往是无意中发生的,即本意并无
要对flash进行编程操作但又发生了对flash的写操作。


这往往发生在程序跑飞无意做了对flash的写操作。还有就是,有些数据,往往是数据较多的结构


体没有初始化或没有完全初始化就被使用,也比较容易发生编程错误。


因为对一个未明确、正确初始化的地址去写时,若刚好写的地方是flash,则会直接报flash编程错误。


相对而言,第二种情形更加隐蔽点。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版