/** \brief Enable IRQ Interrupts
This function enables IRQ interrupts by clearing the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); }
/** \brief Disable IRQ Interrupts
This function disables IRQ interrupts by setting the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
__ASM代表后面为汇编语句,CPS为ARM封装的汇编操作语句规则如下链接:
CPS语句介绍
__disable_irq()其实际效果为禁止CPU对中断产生响应,而非禁止产生中断请求,即使用__disable_irq()后若在期间发生了中断,在运行__enable_irq()后将会直接按中断优先级运行中断服务子函数。具体说明参考一下文章:文章来源:https://www.toymoban.com/news/detail-828532.html
https://blog.csdn.net/u013178472/article/details/81121881文章来源地址https://www.toymoban.com/news/detail-828532.html
到了这里,关于关于ARM的__disable_irq()的效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!