国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2479|回復: 1
打印 上一主題 下一主題

深圳嵌入式學習為你破析ARM中斷寄存器

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2013-11-11 16:34:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式



S3C2440的中斷寄存器:

1.中斷分兩大類:內部中斷和外部中斷。

2.外部中斷。24個外部中斷占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用這些腳做中斷輸入,則必須配置引腳為中斷,并且不要上拉。具體參考datesheet數據手冊。

寄存器:EXTINT0-EXTINT2:三個寄存器設定EINT0-EINT23的觸發方式。

EINTFLT0-EINTFLT3:控制濾波時鐘和濾波寬度。

EINTPEND:這個是中斷掛起寄存器,清除時要寫1,后面還有幾個是寫1清除。當一個外部中斷(EINT4-EINT23)發生后,那么相應的位會被置1。為什么沒有EINT0-EINT3,呵呵,看看SRCPND就知道了,里面沒有EINT4-EINT23的位子,所以有了EINTPEND。

EINTMASK:這個簡單,是屏蔽中斷用的,也就是說位為1時,此次中斷無效。

3.內部中斷。內部中斷有8個寄存器,下面逐一來看。

寄存器:SUBSRCPND:當一個中斷發生后,那么相應的位會被置1,表示一個中斷發生了。

INTSUBMSK:與上一個是一伙的,中斷屏蔽寄存器,具體屏蔽什么,自己看手冊去吧。

INTMOD:中斷的方式。一個中斷可以是普通中斷,也可以是快中斷,在這里設置,但只能有一個快中斷。

PRIORITY :優先級寄存器,不說了。

SRCPND :當一個中斷發生后,那么相應的位會被置1,表示一個或一類中斷發生了。

INTMSK :中斷屏蔽寄存器。

INTPND :中斷發生后,SRCPND中會有位置1,可能好幾個(因為同時可能發生幾個中斷),這些中斷會由優先級仲裁器選出一個最緊迫的,然后吧把INTPND中相應位置1,所以同一時間只有一位是1。也就是說前面的寄存器置1是表示發生了,只有INTPND置1,CPU才會處理。

INTOFFSET :用來表示INTPND中哪一位置1了,好讓你查詢,普通中斷跳轉時查詢用。清除INTPND、SRCPND時自動清除。

4.各寄存器關系:


下面看圖說明:

5.中斷過程。

a 如果是不帶子中斷的內部中斷:發生后SRCPND相應位置1,如果沒有被INTMSK屏蔽,那么等待進一步處理。

b 如果是帶子中斷的內部中斷:發生后SUBSRCPND相應位置1,如果沒有被INTSUBMSK屏蔽,那么SRCPND相應位置1,等待進一步處理,幾個SUBSRCPND可能對應同一個SRCPND,對應表如下:

SRCPND SUBSRCPND

INT_UART0 INT_RXD0,INT_TXD0,INT_ERR0

INT_UART1 INT_RXD1,INT_TXD1,INT_ERR1

INT_UART2 INT_RXD2,INT_TXD2,INT_ERR2

INT_ADC INT_ADC_S, INT_TC

INT_CAM INT_CAM_C, INT_CAM_P

INT_WDT_AC97 INT_WDT, INT_AC97

c 如果是外部中斷:EINT0-EINT3發生后SRCPND相應位置1,如果沒有被INTMSK屏蔽,那么等待進一步處理。EINT4-EINT23發生后EINTPEND相應位置1,如果沒有被EINTMASK屏蔽,那么SRCPND相應位EINT4-7 或EINT8-23置1,如果沒有被INTMSK屏蔽,等待進一步處理,幾個EINTPEND對應同一個SRCPND,對應表如下:

SRCPND EINTPEND

EINT0 EINT0

EINT1 EINT1

EINT2 EINT2

EINT3 EINT3

EINT4-7 EINT4-EINT4

EINT8-23 EINT8-EINT23

三種中斷都等待進一步處理了。接下來從SRCPND往下看,看INTMSK。如果中斷被屏蔽了,就不用說了(注意:快中斷也能被屏蔽)。如果沒有被屏蔽,那么會進一步到INTMOD。如果是快中斷,那么直接出來,進入FIQ(即CPU進入快中斷模式處理)。如果是普通中斷,那么SRCPND可以有多為置1(FIQ只能有一個),這時就會經過PRIORITY選出一個優先級高的,然后把根據選出的中斷把INTPND相應位置1(注意:只能選出一個),進入IRQ,讓CPU處理。

6.中斷的開啟。

a.如果是不帶子中斷的內部中斷,只需設置INTMSK,讓它不屏蔽中斷就可以了。

b 如果是帶子中斷的內部中斷,需設置INTSUBMSK和INTMSK,讓它門不屏蔽中斷就可以了。

c 如果是外部中斷,對于EINT8-23需要設置EINTMASK和INTMSK。對于EINT0-EINT3只需設置INTMSK。

7.中斷的清除。

a.如果是不帶子中斷的內部中斷,只需清除SRCPND,注意清除需位置1。

b 如果是帶子中斷的內部中斷,需清除SRCPND和SUBSRCPND,注意先清除SUBSRCPND,再清除SRCPND。因為,如果你先清除SRCPND的話,然后在清除SUBSRCPND的過程中,SRCPND會以為又有中斷發生,又會置1。也就是說一次中斷會響應兩次。所以必須先掐斷源頭。

c 如果是外部中斷,對于EINT8-23需要清除EINTPEND和SRCPND(同樣注意順序)。對于EINT0-EINT3只需清除SRCPND。深圳專業嵌入式ARMLinux技術實訓,學習顧問:郭老師 QQ754634522

本文詳細分析了S3C2440的中斷寄存器,相信對arm初學者有一定的幫助。

沙發
 樓主| 發表于 2013-11-12 15:56:06 | 只看該作者
學習了
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚州毛色毛片免费观看 | 日日做日日摸夜夜爽 | 恐怖片大全免费观看 | 91免费精品国自产拍在线可以看 | 四虎影视在线永久免费观看 | 大伊香蕉精品一区在线 | 成年女人18毛片毛片免费 | 欧美日韩精彩视频 | 国产成人精品综合久久久 | 99国产精品免费观看视频 | www国产永久免费视频看看 | 99精品视频免费 | 四虎影院永久网站 | 日韩精品欧美高清区 | 久久激情视频 | 精品一区二区三区视频在线观看 | 国产精品福利一区二区亚瑟 | 久久综合九色欧美综合狠狠 | 香蕉国产线观看 | 另类国产精品一区二区 | 日韩欧美精品有码在线观看 | 不卡在线一区 | 中文字幕一区二区三区精品 | 国产精品久久久久有声小说 | 国产成人拍精品视频网 | 五月婷婷在线观看 | 我的大乳女友小萱h文 | h黄视频 | 日韩一级视频免费观看 | 国内外成人鲁尔山免费大片 | 亚洲欧洲精品成人久久曰 | 少妇美女极品美軳人人体 | 亚洲精品欧洲精品 | 操操操日日 | 四虎永久免费影院 | 日韩毛片基地 | 中文国产成人精品久久一区 | 日韩欧美在线视频一区二区 | 99久久精品国产高清一区二区 | 日韩高清在线日韩大片观看网址 | 男人天堂色 |