请教版主几个STM32关于中断的问题:
1 所谓的“晚到的高优先级中断/异常处理”,是否只有在已经开始相应低级中断取向量之前(更新寄存器SP、xPSR、LR等应在取向量之后吧)晚到的高优先级异常/中断才能抢占利用正在处理的低优先级异常/中断的入栈操作,只要已经发生了取向量,就必须按嵌套的高优先级异常/中断处理(至少要等到低优先级的执行ISR的第1条指令后才发生嵌套)?
2 关于PendSV,当正执行PendSV的ISR时(如OS的任务切换时),发生了高优先级的异常/中断,高优先级异常/中断ISR处理中又挂起了PendSV(置位ICSR的PendSVSet位〈0xE000_ED04.bit28〉)时(即高优先级的异常/中断出发了OS的任务切换),高优先级异常/中断挂起的PenSV是否作为一个新的PendSV请求,而当高优先级的ISR处理完后返回继续处理先前被中断的PenSV的ISR,处理完被中断的PenSV后再以中断尾链的方式在一次响应在高优先级异常/中断中挂起的PenSV(响应高优先级异常/中断的要求的任务切换)? |