Exception 如何在Cortex-M0中禁用PendSV?

Exception 如何在Cortex-M0中禁用PendSV?,exception,arm,cortex-m,Exception,Arm,Cortex M,我有一个简单而愚蠢的问题,我可以通过写入ICER寄存器来禁用Cortex-M0架构中的PendSV异常吗 正如《Cortex-M0设备通用用户指南》所述: 特权软件可以禁用第2-20页表2-11所示的异常 具有可配置优先级,请参阅第4-5页的中断清除启用寄存器 它可以在特权模式下完成 但在我的代码中,虽然我通过NVIC禁用了PendSV|irqpn,但PendSV异常PendSV|u处理程序ISR是通过执行SCB->ICSR |=SCB|ICSR|U PendsSet发生的!我确信MCU处于私有

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

正如《Cortex-M0设备通用用户指南》所述:

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

它可以在特权模式下完成

但在我的代码中,虽然我通过NVIC禁用了PendSV|irqpn,但PendSV异常PendSV|u处理程序ISR是通过执行SCB->ICSR |=SCB|ICSR|U PendsSet发生的!我确信MCU处于私有模式[CONTROL=0]。我的错在哪里?
提前感谢。

ARMv6-M体系结构参考手册第B1.5.1节“支持的异常概述”:

PendSV已永久启用


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

其他ARM体系结构支持特权或非特权软件执行的概念。此处理器不支持不同的权限级别。软件执行始终具有特权,这意味着软件可以访问处理器的所有功能。我倾向于避免使用架构参考手册、技术参考手册以及amba/axi/ahb手册以外的文档。像这样的程序员手册往往有很多问题和解决方案。我第一次看这些附加文档时,发现了一些大问题,就把目光移开了。很少有一两次,其中一份文件有ARM或TRM没有的东西,请始终交叉引用您找到的任何东西,并希望与ARM和TRM一起使用。谢谢@old_timer。“Cortex-M0设备通用用户指南”似乎不太准确。假设所有文档都有缺陷,因为它们通常都有缺陷,有时只是打字错误,有时是更大的问题。但是按照这个假设去做,结果是你自己做了黑客攻击/测试来确认文档,你的总体情况会更好。然后有时候你会在这里结束,这似乎没有什么意义