久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4470|回復(fù): 0
收起左側(cè)

關(guān)于__irq使用

[復(fù)制鏈接]
ID:72519 發(fā)表于 2015-1-23 04:04 | 顯示全部樓層 |閱讀模式
關(guān)于__irq使用,首先看ARM公司的說明:
ARM 編譯器 armcc 支持的函數(shù)關(guān)鍵字和運算符。
下表列出的關(guān)鍵字是 ARM 對 C 和 C++ 標(biāo)準(zhǔn)的擴展。 表中沒有介紹不具備 ARM 編譯器特有的行為或限制的標(biāo)準(zhǔn) C 和 C++ 關(guān)鍵字。
ARM 編譯器支持的關(guān)鍵字?jǐn)U展表: 
關(guān)鍵字
__align
__int64
__svc
__ALIGNOF__
__INTADDR__
__svc_indirect
__asm
__irq
__svc_indirect_r7
__declspec
__packed
__value_in_regs
__forceinline
__pure
__weak
__global_reg
__softfp
__writeonly
__inline
__smc
 
通過使用 __irq 關(guān)鍵字,可以將 C 或 C++ 函數(shù)用作中斷例程。
__irq 是一個函數(shù)限定符。 它影響函數(shù)的類型。
限制:
將保留所有損壞的寄存器(浮點寄存器除外),而不僅限于通常在 AAPCS 中保留的寄存器。 必須使用缺省 AAPCS 模式。
通過將程序計數(shù)器設(shè)置為 lr-4 并將 CPSR 設(shè)置為 SPSR 中的值,可以退出該函數(shù)。 不能將任何自變量或返回值與 __irq 函數(shù)配合使用。
再看其他的一些解釋:

armcc的編譯器的C對ANSI C的關(guān)鍵字做了些擴展。
比如__irq 是用來聲明IRQ和FIQ中斷處理函數(shù)用的,可以自動返回原來的現(xiàn)場。__asm用來嵌入?yún)R編代碼等。

  __irq為一個標(biāo)識,用來表示一個函數(shù)是否為中斷函數(shù)。對于不同的編譯器,__irq在函數(shù)名中的位置不一樣,例如:


  ADS編譯器中 : void __irq IRQ_Eint0(void);
  Keil編譯器中 : void IRQ_Eint0(void) __irq;


  但是其意義一樣,它所完成的任務(wù)是標(biāo)識該函數(shù)為中斷函數(shù),在編譯器編譯是調(diào)用此函數(shù)時,先保護函數(shù)入口現(xiàn)場,然后執(zhí)行中斷函數(shù),函數(shù)執(zhí)行完畢,恢復(fù)中斷現(xiàn) 場,這整個過程不需要用戶重新編寫代碼來完成,由編譯器自動完成。因而這也給不具備中斷嵌套功能的ARM系統(tǒng)帶來了問題,若使用 __irq 時有中斷嵌套產(chǎn)生,這現(xiàn)場保護就會混亂。因此自己編寫中斷入口現(xiàn)場保護代碼,并不使用 __irq 標(biāo)識符號,就是這個原因。
 總結(jié)如下:
 1、若不想自己編寫中斷入口現(xiàn)場保護代碼,而且使用中無中斷嵌套,在中斷函數(shù)中用 __irq 來標(biāo)識我們的中斷函數(shù),否則出錯;
 2、若程序中要使用中斷嵌套,對于無中斷嵌套功能的ARM來說,一定要自己編寫中斷入口現(xiàn)場保護代碼,而且不能用 __irq 標(biāo)識我們的中斷函數(shù),否則出錯
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕第一页在线 | 中文字幕欧美日韩 | 亚洲欧美一区二区三区国产精品 | 黄在线免费观看 | 国产黄色av网站 | 久久久精品一区 | 久久久久久看片 | 亚洲成人动漫在线观看 | 天天人人精品 | 国产精品亚洲精品日韩已方 | 欧美一区二区三区在线免费观看 | 黄篇网址 | 色婷婷狠狠| 精品国产31久久久久久 | 粉嫩av久久一区二区三区 | 日韩在线播放一区 | 国产福利视频网站 | 成人精品国产一区二区4080 | 日韩视频精品在线 | 久久视频免费观看 | 亚洲一区二区视频在线播放 | 自拍视频一区二区三区 | 999国产视频 | 午夜日韩 | 91免费在线视频 | 亚洲欧美成人在线 | 欧美不卡视频 | 国产精品福利一区二区三区 | 国产精品免费在线 | 精品久久电影 | 国产精品极品美女在线观看免费 | 精品国产欧美一区二区 | 欧美二区在线 | 欧美精品一区二区在线观看 | 欧美一级二级在线观看 | 日韩在线免费 | av二区三区| 中文字幕在线人 | 国产成人自拍一区 | 女女百合av大片一区二区三区九县 | 亚洲视频一区在线 |