<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          MCU_S3C2410之中斷控制

          作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
          功能分析

          本文引用地址:http://www.ex-cimer.com/article/201611/316924.htm

          支持56個(gè)中斷

          寄存器分析

          SRCPND

          INTMOD

          INTMSK

          INTSUBMSK

          EXTINT

          EINTPEND

          INTPND

          代碼分析

          __irq的使用

          __irq為一個(gè)標(biāo)識(shí),用來(lái)表示一個(gè)函數(shù)是否為中斷函數(shù)。對(duì)于不同的編譯器,__irq在函數(shù)名中的位置不一樣,例如:
          ADS編譯器中: void __irq IRQ_Eint0(void);
          Keil編譯器中: void IRQ_Eint0(void) __irq;
          但是其意義一樣,它所完成的任務(wù)是標(biāo)識(shí)該函數(shù)為中斷函數(shù),在編譯器編譯是調(diào)用此函數(shù)時(shí),先保護(hù)函數(shù)入口現(xiàn)場(chǎng),然后執(zhí)行中斷函數(shù),

          函數(shù)執(zhí)行完畢,恢復(fù)中斷現(xiàn)場(chǎng),這整個(gè)過(guò)程不需要用戶重新編寫(xiě)代碼來(lái)完成,由編譯器自動(dòng)完成。因而這也給不具備中斷嵌套功能的ARM系統(tǒng)帶來(lái)

          了問(wèn)題,若使用 __irq 時(shí)有中斷嵌套產(chǎn)生,這現(xiàn)場(chǎng)保護(hù)就會(huì)混亂。在前一篇日志“LPC2000系列中斷嵌套處理”中,自己編寫(xiě)中斷入口現(xiàn)場(chǎng)保護(hù)代

          碼,并不使用 __irq 標(biāo)識(shí)符號(hào),就是這個(gè)原因。
          總結(jié)如下:
          1、若不想自己編寫(xiě)中斷入口現(xiàn)場(chǎng)保護(hù)代碼,而且使用中無(wú)中斷嵌套,在中斷函數(shù)中用 __irq 來(lái)標(biāo)識(shí)我們的中斷函數(shù),否則出錯(cuò);
          2、若程序中要使用中斷嵌套,對(duì)于無(wú)中斷嵌套功能的ARM來(lái)說(shuō),一定要自己編寫(xiě)中斷入口現(xiàn)場(chǎng)保護(hù)代碼,而且不能用 __irq 標(biāo)識(shí)我們的

          中斷函數(shù),否則出錯(cuò)。



          關(guān)鍵詞: MCUS3C2410中斷控

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();