您好,欢迎来到世旅网。
搜索
您的当前位置:首页雅特力AT32 闪存零等待区(ZW)和非零等待区(NZW)

雅特力AT32 闪存零等待区(ZW)和非零等待区(NZW)

来源:世旅网

AT32在支持零等待区(ZW)的MCU型号中,可以在程序设计时将不能失速的重要代码放在零等待区(ZW),需要频繁擦写的内容放在非零等待区(NZW),利用非零等待区(NZW)的擦写和零等待区(ZW)的读取可以同时执行的特性实现所需的实时功能。

一、存储结构

AT32支持零等待区(ZW)的型号内部存储空间可简单划分为两部分:零等待区(ZW)非零等待区(NZW),用户可根据需求将代码进行合理的划分。
FLASH 存储空间示意图:

二、闪存零等待(ZW)和非零等待(NZW)说明

下图以 AT32F403A 为例说明零等待(ZW)和 SRAM 区域的关系

三、在擦除零等待区时注意事项

FLASH 擦除操作,如果满足以下两个条件会导致程序跑飞出错:

  1. 擦除的是零等待区;
  2. 擦除过程中 CPU 有以下顺序的动作,零等待区取指令->非零等待区取指令。
    例如:擦除一个零等待区扇区,擦除开始后,程序会去检查 FLASH 忙的标志(检查标志这句代码位于零等待区),然后中断正常响应,如果中断函数有非零等待区的代码,此时就会出错。

解法 1:调用擦除操作前后,操作中断使能的开关,如下

__disable_irq();
Erase();
__enable_irq();

解法 2:保证芯片在擦除期间所有执行的函数代码都位于零等待区。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务