如何在Cortex-M0中禁用PendSV?

时间:2018-08-21 22:29:50

标签: exception arm cortex-m

我有一个简单而愚蠢的问题,我可以通过写入ICER寄存器来禁用Cortex-M0架构中的PendSV异常吗?

如“ Cortex-M0设备通用用户指南”所述:

  

特权软件可以禁用第2-20页的表2-11显示为的异常   具有可配置的优先级,请参阅第4-5页的中断清除使能寄存器。

可以在特权模式下完成。

Table 2-11 on page 2-20

但是在我的代码中,尽管我通过NVIC_DisableIRQ(PendSV_IRQn)禁用了PendSV_IRQn,但是通过执行PendSV_Handler会发生PendSV异常(SCB->ICSR |= SCB_ICSR_PENDSVSET ISR)! (我确定MCU处于特权模式[CONTROL = 0])。我的错在哪里 预先感谢。

1 个答案:

答案 0 :(得分:1)

《 ARMv6-M体系结构参考手册》中提到(在第B1.5.1节“所支持的异常概述”中):

  

PendSV已永久启用,...

这似乎与您的报价相矛盾,因此其中之一一定是错误的。您的实验表明,Cortex-M0设备通用用户指南在这里是错误的。