在 STM32F446 需要在执行一段特定临界函数时关闭全部中断。
我在代码中写了下面几行:
__disable_irq();
Critical_function();
__enable_irq();
但是在执行Critical_function()期间,仍然会进入中断。
我在工程里查找__disable_irq和__enable_irq,只在cmsis_armcc.h里面看到被注释掉的声明:
/**
\brief Disable IRQ Interrupts
\details Disables IRQ interrupts by setting the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
/* intrinsic void __disable_irq(); */
编译没有任何错误或警告,调试时看这两个函数似乎完全不起作用。
我使用 Keil v5.28。
|
|