我有一个简单而愚蠢的问题,我可以通过写入ICER
寄存器来禁用Cortex-M0架构中的PendSV异常吗?
如“ Cortex-M0设备通用用户指南”所述:
特权软件可以禁用第2-20页的表2-11显示为的异常 具有可配置的优先级,请参阅第4-5页的中断清除使能寄存器。
可以在特权模式下完成。
但是在我的代码中,尽管我通过NVIC_DisableIRQ(PendSV_IRQn)
禁用了PendSV_IRQn,但是通过执行PendSV_Handler
会发生PendSV异常(SCB->ICSR |= SCB_ICSR_PENDSVSET
ISR)! (我确定MCU处于特权模式[CONTROL
= 0])。我的错在哪里
预先感谢。
答案 0 :(得分:1)
《 ARMv6-M体系结构参考手册》中提到(在第B1.5.1节“所支持的异常概述”中):
PendSV已永久启用,...
这似乎与您的报价相矛盾,因此其中之一一定是错误的。您的实验表明,Cortex-M0设备通用用户指南在这里是错误的。