在测试S32K142模拟EEPROM功能时,对FlexNVM进行分区时芯片会复位重启,而使用仿真器单步调试却能分区成功。经过分析,程序是执行函数:
ret = FLASH_DRV_DEFlashPartition(&flashSSDConfig, 0x02u, 0x08u, 0x0u, false, true);
时引起了复位,判断应是程序中断也会去访问Flash,分区的期间需要关闭中断,故在分区时将中断全部关闭,修改代码如下:
INT_SYS_DisableIRQGlobal(); /* 关闭全部中断 */
ret = FLASH_DRV_DEFlashPartition(&flashSSDConfig, 0x02u, 0x08u, 0x0u, false, true);
INT_SYS_EnableIRQGlobal(); /* 开中断 */
经过测试,在执行分区时,芯片没有出现重启的情况。
S32K142 FlexNVM进行分区时不断重启复位原因及解决方法
最新推荐文章于 2024-05-28 12:02:42 发布