我正试图编写代码以生成软件触发器。在4.2.8的 "Cortex-M3器件通用用户指南 "中,我读到在NVIC->STIR寄存器中写下产生软件中断的代码:[STIR寄存器][1]。
但是,如果我理解正确的话,USERSETMPEND对于无权限的软件必须设置为1(我想这是我的情况).但是如果我想访问SCR,我必须是 "有权限的"[SCR寄存器][2] 。
那么,如何才能进入特权模式呢?我在代码中做了如下工作
SCB->CCR |= 0x02; // USERSETMPEND = 1. But I must be "privileged"
HAL_NVIC_EnableIRQ(EXTI0_IRQn); // enable interrupt line
.... some code....
... ...
if(my_software_trigger)
{
my_software_trigger = 0;
NVIC->STIR = EXTI0_IRQn; // triggers interrupt??
}
这样的做法正确吗?谁有这方面的经验?任何帮助真的很感激d。
P.s. Sorry for my english
马可