音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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ù)
ARM 中斷問題
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
在用戶模式下,不能訪問CPSR這個寄存器,結(jié)果就相當于一條空指令
 
3樓: >>參與討論
lcl987512
任何模式下不是都可以訪問cpsr嗎
用戶模式下不可修改cpsr中的控制位,那么條件碼標志位可以修改嗎

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
各位大哥,幫幫小弟ARM匯編問題
有高手可以向我介紹一下,KEIL中44B0自帶的啟動代碼嗎?
*****那位大哥有四線觸摸屏插口的pcb封裝*****
如何入門ARM硬件設(shè)計!
S3C2410ARM上的AD在LINUX下還要驅(qū)動嗎?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號