打印
[技术问答]

HC32L11x写FLASH需要关全局中断么?

[复制链接]
1278|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  序列。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

37

帖子

0

粉丝