[技术问答] HC32L11x写FLASH需要关全局中断么?

[复制链接]
1737|2
 楼主| DanPianJiFangAn 发表于 2024-4-10 22:17 | 显示全部楼层 |阅读模式
如题,范例里没看到有关全局中断的操作,特别是向 FLASH_BYPASS 寄存器依次写入 0x5A5A、0xA5A5,对这个寄存器的2次操作之间如果有中断发生会不会有问题.
csy1123 发表于 2024-4-11 10:41 | 显示全部楼层
要关全局中断
 楼主| DanPianJiFangAn 发表于 2024-4-11 10:48 | 显示全部楼层

感谢,在使用手册 FLASH控制器的7.7节 寄存器写保护看到说明了,这里也贴上来吧

7.7  寄存器写保护
本模块的重要控制器屏蔽普通的写操作,必须用写序列方式才能修改。
需要通过写序列方式才能更改的寄存器如下所示:
FLASH_TNVS、FLASH_TPGS、FLASH_TPROG、FLASH_TSERASE、FLASH_TMERASE、
FLASH_TPRCV、FLASH_TSRCV、FLASH_TMRCV、FLASH_CR、FLASH_SLOCK。
不需要通过写序列方式即可更改的寄存器如下所示:
FLASH_ICLR、FLASH_BYPASS。

通过写序列方式修改寄存器值的具体操作步骤如下所示:
Step1:向 FLASH_BYPASS 寄存器写入 0x5A5A。
Step2:向 FLASH_BYPASS 寄存器写入 0xA5A5。
Step3:对待修改的寄存器写入目标值。
Step4:验证待修改的寄存器的当前值是否与目标值相同,如不相同则跳转到 Step1。
Step5:执行其它操作。

注意:
–  写  0x5a5a  和写  0xa5a5  这两步操作之间不可插入任何写操作,不可以被中断打断,
否则该  Bypass  序列会失效,需要重新写入  0x5a5a-0xa5a5  序列。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

46

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部