我有一个与中断函数共享的存储器。
当我的函数读取存储器的该部分时、我需要阻止中断、以便中断不会中断我的读取操作(原子读取)
我只需在很短的时间内阻止中断、在此过程中不会丢失任何中断。
实现此目的的最佳方法是什么?
我可以通过禁用 PIE IER 位来阻止它吗?
INTM=1的唯一更剧烈的方法是什么?
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我有一个与中断函数共享的存储器。
当我的函数读取存储器的该部分时、我需要阻止中断、以便中断不会中断我的读取操作(原子读取)
我只需在很短的时间内阻止中断、在此过程中不会丢失任何中断。
实现此目的的最佳方法是什么?
我可以通过禁用 PIE IER 位来阻止它吗?
INTM=1的唯一更剧烈的方法是什么?
谢谢。
[引用用户="Richard Poley"]
如果您只需要在非常短的间隔内阻止中断、最简单、最安全的方法是使用 INTM 位。 如果在执行读取操作时希望保持其他(无关)中断处于活动状态、则可以使用 IER 屏蔽内核中断。
您可以通过操作 PIEIERx 寄存器来实现它、但需要遵循严格的过程(请参阅器件用户指南中的 PIE 章节)。
此致、
Richard
[/报价]
禁用 PIEIERx 寄存器还涉及禁用 INTM、我认为这是实时系统中的一个坏主意。
那么、这是一种实现它的保存方式吗?
IER &=(~intNumber);
读取 存储器
IER |= intNumber;
谢谢!