在用户级上应该用swi调用.<br />如;<br /><br />void __swi(0) Enable_IRQ(void);<br />void __SWI_0 (void) {<br />int tmp;<br /> __asm<br /> {<br /> MRS tmp, SPSR<br /> BIC tmp, tmp, #0x80<br /> MSR SPSR_c, tmp<br /> }<br />}<br /><br />void __swi(1) Disable_IRQ(void);<br />void __SWI_1 (void) {<br />int tmp;<br /> __asm<br /> {<br /> MRS tmp, SPSR<br /> ORR tmp, tmp, #0x80<br /> MSR SPSR_c, tmp<br /> }<br />}<br /><br />void __swi(2) Enable_FIQ(void);<br />void __SWI_2 (void) {<br />int tmp;<br /> __asm<br /> {<br /> MRS tmp, SPSR<br /> BIC tmp, tmp, #0x40<br /> MSR SPSR_c, tmp<br /> }<br />}<br /><br />void __swi(3) Disable_FIQ(void);<br />void __SWI_3 (void) {<br />int tmp;<br /> __asm<br /> {<br /> MRS tmp, SPSR<br /> ORR tmp, tmp, #0x40<br /> MSR SPSR_c, tmp<br /> }<br />}<br /><br /><br />int main(void)<br />{<br /> Disable_IRQ();<br /> Disable_FIQ();<br />//.................<br /> Enable_FIQ();<br /> Enable_IRQ();<br /> while(i == 0) {<br /> }<br />}
|