想请教一下关于SVC优先级的问题,最近再看编程手册(cotexM3 cotexM7),根据手册的描述,SVC的中断优先级是可以设置的,并且SVC属于“Synchronous”中断,根据手册描述“For an asynchronous exception, other than reset, the processor can execute additional instructions between when the exception is triggered and when the processor enters the exception handler.”,是不是说“Synchronous”中断触发时必须立即运行中断处理函数,网上搜索也说SVC中断不可挂起,那么是不是说在所有用到的中断中,SVC的优先级必须设置成最高的。如果不是,如果在一个更高优先级的中断处理函数中调用SVC指令触发SVC中断会发生什么,如果在SVC中断处理函数运行的过程中触发了更高优先级的中断又会发生什么。
“Executing the SVC instruction, while the current execution priority level is greater than or equal to that of the SVCall handler, results in a fault being generated.” cotex-M0+ 的编程手册里有这样的描述,从更高优先级的中断函数中触发SVC中断会产生硬件错误,并且基于HC32l130芯片也验证了这一点,M0 M3 M7的编程手册中均没有相关说明,大概率会有一样的问题,后续有时间会进一步验证。