我有一个简单而愚蠢的问题,我可以通过写到PendSV寄存器来禁用Cortex-M0架构中的ICER
异常吗?
如“Cortex-M0设备通用用户指南”所述:
特权软件可以禁用第2-20页表2-11显示的具有可配置优先级的异常,请参阅第4-5页上的中断清除启用寄存器。
它可以在特权模式下完成。
但是在我的代码中,虽然我禁用了PendSV_IRQn by NVIC_DisableIRQ(PendSV_IRQn)
,但是PendSV异常(PendSV_Handler
ISR)是通过执行SCB->ICSR |= SCB_ICSR_PENDSVSET
而发生的!(我确信MCU处于特权模式CONTROL
= 0)。我的错在哪里?提前谢谢。
发布于 2018-08-21 23:02:47
ARMv6 6-M架构参考手册指出( B1.5.1节“所支持的例外情况概述”):
PendSV永久启用,..。
这似乎与你的报价相矛盾,所以其中之一肯定是错的。您的实验表明,Cortex-M0设备通用用户指南在这里是错误的。
https://stackoverflow.com/questions/51957555
复制相似问题