MRS r0 , cp<br />ORR r0 , r0 I_Bit ;禁止IRQ<br />MSR cpsr_c<br />ORR r0 , r0 , # F_Bit ;禁止 FIQ<br />MSR cpsr_c r0<br /><br />需增加OSIntNesting防止任务切换OS_Sched<br />void FIQ_Exception(void)<br />{<br /> (1)<br /> ……<br /> OSSemPost(pSem);<br /> ……<br /> VICVectAddr=0;<br /> (2)<br />}<br /><br />增加两部分语句<br />(1)<br />if (OSIntNesting < 255u) {<br /> OSIntNesting++;<br /> }<br />(2)if (OSIntNesting > 0) { <br /> OSIntNesting--;<br /> }<br /> //可以增加OSIntNesting=0任务切换
|