|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
ARM 中斷問題 |
| 作者:cgsh7756 欄目:ARM技術(shù) |
void IRQDisable(void) { int tmp; __asm { MRS tmp, CPSR BIC tmp, tmp, #0x80 MSR CPSR_c, tmp } } /* **************************************** * 中斷使能 **************************************** */ void IRQEnable(void) { int tmp; __asm { MRS tmp, CPSR ORR tmp, tmp, #0x80 MSR CPSR_c, tmp } } 以上代碼在應(yīng)用中會有問題, 而使用SWI 命令: __swi(0x00) void SwiHandle1(int Handle); #define IRQDisable() SwiHandle1(0) #define IRQEnable() SwiHandle1(1) ;軟中斷 SoftwareInterrupt CMP R0, #2 LDRLO PC, [PC, R0, LSL #2] MOVS PC, LR SwiFunction DCD IRQDisable ;0 DCD IRQEnable ;1 IRQDisable ;關(guān)IRQ中斷 MRS R0, SPSR ORR R0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LR IRQEnable ;開IRQ中斷 MRS R0, SPSR BIC R0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LR 則正常。 沒搞清楚為什么?請高手們分析分析! |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2007/5/10 18:36:00 發(fā)布:
在用戶模式下,不能訪問CPSR這個寄存器,結(jié)果就相當于一條空指令 |
|
| 3樓: | >>參與討論 |
| 作者: lcl987512 于 2007/5/11 8:21:00 發(fā)布:
任何模式下不是都可以訪問cpsr嗎 用戶模式下不可修改cpsr中的控制位,那么條件碼標志位可以修改嗎 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |