娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月07日(星期二)

正在發生

2019年01月07日 | s3c2440裸板_中斷體系結構

發布者:JoyfulSpirit 來源: eefocus關鍵字:s3c2440裸板  中斷體系結構 手機看文章 掃描二維碼
隨時隨地手機看文章



S3C2440一共有60個中斷源,其中有15個子中斷源,它們與SUBSRCPND寄存器中的每一位相對應,其他45個中斷源與SRCPND中的每一位相對應。要注意的是EINT4~7對應的是同一位SRCPND[4],而EINT8~23對應的也是SRCPND[5]一位


1 S3C2440的中斷寄存器


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


1.1 外部中斷寄存器


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

寄存器:
             EXTINT0-EXTINT2:分別設置EINT0—EINT7、EINT8—EINT15、EINT16—EINT23的觸發方式(高電平觸發、低電平觸發、下降沿觸發、上升沿觸發)。
             EINTFLT0-EINTFLT3:控制濾波時鐘和濾波寬度。
             EINTPEND:這個是中斷掛起寄存器,清除時要寫1,后面還有幾個是寫1清除。當一個外部中斷(EINT4-EINT23)發生后,那么相應的位會被置1。為什么沒有EINT0-EINT3,因為它們分別由SRCPND寄存器的后4位控制。
            EINTMASK:這個簡單,是屏蔽中斷用的,也就是說位為1時,此次中斷無效。


1.2 內部中斷寄存器


            內部中斷有8個寄存器:

寄存器:
            SUBSRCPND:當一個中斷發生后,那么相應的位會被置1,表示一個中斷發生了。
            INTSUBMSK:與上一個是一樣的,中斷屏蔽寄存器。
            SRCPND:當一個中斷發生后,那么相應的位會被置1,表示一個或一類中斷發生了。
            INTMSK:用來屏蔽SRCPND寄存器所標識的中斷。但只能屏蔽IRQ中斷,不能屏蔽FIQ中斷。
            INTMOD:當INTMOD中某位被設置為1時,它對應的中斷被設為FIQ,CPU將進入快速中斷模式。
            PRIORITY:用于設置IRQ中斷的優先級。具體使用方法可參考芯片手冊。
            INTPND:中斷優先級仲裁器選出優先級最高中斷后,這個中斷在INTPND寄存器中的相應位被置1,隨后,CPU進入中斷模式處理它。同一時間內,此寄存器只有一位被置1。
            INTOFFSET:用來表示INTPND寄存器中哪位被置1了,即記錄INTPND中位[x]為1的位x的值。清除INTPND、SRCPND時自動清除。


2 中斷過程


2.1 內部中斷過程

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

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


 

2.2 外部中斷過程


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



各個外部中斷與管腳的對應關系如下圖所示:




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


2.3 中斷優先級


中斷優先級分組:




ARB_MODEx: 控制中斷優先級是否輪轉

ARB_SELx: 控制輪轉順序


2.4 中斷的開啟

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

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


2.5 中斷的清除

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

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

c 如果是外部中斷,對于EINT8-23需要清除EINTPEND和SRCPND(同樣注意順序)。對于EINT0-EINT3只需清除SRCPND。

 

下面來看一段代碼:


void key_init()

{

    rGPGCON &= ~(0x3 << 0);    //設置GPGO—EINT[8]

    rGPGCON |= (0x2 << 0);     //設置GPGO—EINT[8]

    rEXTINT1 &= ~(0xf << 0);   //觸發方式為低電平有效

    rEINTPEND |= (1 << 8);     //清中斷

    rEINTMASK &= ~(1 << 8);    //允許外部中斷

    pISR_EINT8_23 = (U32)Key_handler;  //中斷服務程序

    EnableIrq(BIT_EINT8_23);   //允許中斷(INTMSK)

}

 

static void __irq key_handler()

{

    if (rINTPND == BIT_EINT8_23)     //INTPND同時只能有一位為1

        ClearPending(BIT_EINT8_23);  //清SRCPND、INTPND          #define BIT_EINT8_23 (0x1 << 5)

    if (rEINTPEND & (1 << 8))        //清外部中斷EINTPEND

        rEINTPEND |= 1 << 8;

    ............

}


結合上面的圖,我們就很清楚的了解哪句代碼清哪個中斷或者設置哪個寄存器,關于底層的細節了解一下是非常有必要的,當然還有幾個寄存器(比如 INTOFFSET)會在后面介紹他們,follow....

 

設置外部中斷的一般方法:


1、設置GPIO口功能(挑選GPx組),00:輸入,01:輸出,10:第二功能                P292

2、設置EXTINTx寄存器,設定中斷觸發類型(EXTINT0 — 2)                          P301

3、設置EINTPND,若發生中斷則某位置1,使用前先清零(寫1清零)                   P306

4、設置EINTMASK,0表示允許中斷,1表示禁止,默認禁止                           P305

5、清IRQ中斷EXTINT8_23屬于IRQ中斷號5,ClearPending(BIT_EINT8_23);

6、設置中斷處理函數,pISR_EINT8_23 = (U32)Key_ISR;

7、允許中斷,EnableIrq(BIT_EINT8_23);


關鍵字:s3c2440裸板  中斷體系結構 引用地址:s3c2440裸板_中斷體系結構

上一篇:s3c2440裸板_時鐘系統及定時器
下一篇:兩片STM32使用HAL完成SPI全雙工主從通信

推薦閱讀

API 同時也是一種中間件,為各種不同平臺提供數據共享。根據單個或分布式平臺上不同軟件應用程序間的數據共享性能,可以將 API 分為四種類型:遠程過程調用(RPC):通過作用在共享數據緩存器上的過程(或任務)實現程序間的通信。標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據共享。文件傳輸:文件傳輸通過發...
日前,國際數據公司(IDC)發布了年度國際數據公司創新者報告,授予包括遨博智能在內的四家協作機器人開發公司“國際數據公司創新者稱號”。報告闡述了四家協作機器人開發公司致力于推進協作機器人自動化應用,為市場貢獻和提供了多種創新科技,或對已存在的問題提供了具有重大意義的全新解決方案,以及提升并刺激了終端用戶組織的競爭力的情況。配備傳感...
最近調試磁鐵驅動程序時,遇到一個奇怪的情況:(問題描述在下邊這個帖子中)OSTimeDly在ucos最高優先級任務中,多次使用,有什么說法?只是知道問題大概出現在哪塊,沒找到出現這種狀況的理由。順帶著理清楚一些基本的常識性的東西。如下:基本概念:AHB:Advanced High performance Bus,先進的高性能總線,這是一種“系統總線”。AHB 是在地址/控制階...
91% 的受調研者表示,2030 年時汽車將采用全電或混合動力自動駕駛技術將主要關注司機和乘客安全高速 WiFi、無線充電和車輛間通信成為最主要的功能特點軟件定義車輛作為汽車廠商最重要的議題美國伊利諾伊州萊爾 – 2021 年 1 月 7 日 – 全球領先的連接與電子解決方案提供商Molex莫仕發布面向汽車行業決策者的全球性調研成果,對將會影響到“未...

史海拾趣

問答坊 | AI 解惑

Zigbee技術發展現狀報告

Zigbee技術發展現狀報告…

查看全部問答∨

高手救命啊!

想將3.3V 2us的脈沖電壓通過集電極開路上拉變為5V 2us的同步脈沖,結果上升沿的時間變大了,升到4.5伏是約250ns了。 不知道是什么原因了,請各位大蝦幫幫小弟啊:\'(…

查看全部問答∨

不同的線徑匝數一樣感量是否一樣

不同的線徑匝數一致感量是否一樣,解答一下,這個問題好像狠簡單,懶得查資料了,知道的附帶一個公式也不錯的哈哈,大家理解下…

查看全部問答∨

高分請教重復打開設備問題

   各位老兄,我看PDA和手機都有這個功能,裝一個沒有源碼的藍牙相關應用軟件,發送文件圖片等,如果沒有打開,那么會彈出個打開的對話框,初始化藍牙設備,這些手機的系統是mobile的,現在我想在wince下也這么做,但是發現串口打開一次 ...…

查看全部問答∨

急求!! LCD里面的數模轉換器(DAC)

請問各位兄弟 ,現在生產中的LCD驅動IC里面用的是哪種DAC類型。 就是指權電阻,倒T , 權電流還是什么的? 小弟要寫論文 謝謝先…

查看全部問答∨

向"91program"提問 wince串口通信不用線程方式行嗎?

如問題標題! 我原本參考一些代碼來建立wince平臺的串口通訊程序. 后來我一個主管說\"wince下的串口通訊最好不用線程方式進行接收數據...\" 讓我用其他方式進行接收串口返回的數據. 可我的水平有限,想不到什么方法解決! 請專家或高手給我提示( ...…

查看全部問答∨

請推薦一下觸摸屏廠家

準備用觸摸屏配原來的儀器,8\",TFT.考慮到質量和成本,想觸摸屏和TFT屏都用臺灣廠家的,不用Sharp那個8寸的,不知哪位大俠對此有研究或心得啊?請推薦一下.…

查看全部問答∨

我的板子好像不發BOOTME信號了

我的板子好像不發BOOTME信號了,請高手幫幫忙,以前還是可以正常從pb5下載nk.bin到目標設備,可是這兩天就是不好用,attach device時總是一點進度也沒有,中間的提示是“waiting for bootme from cepc”,而目標設備就停在“jumping to....”不動了 ...…

查看全部問答∨

上傳一個FPGA學習開發板子的原理圖

就是為了讓大家欣賞一下 呵呵~分享么!…

查看全部問答∨

STM8TouchSensingLibrary

花了一個星期研究STM8 Touch Sensing Library, 還是沒完全看明白其中的代碼, 特別是MultiChannelKey中的IIR濾波, 終于發覺自己笨了. 是不是直接拿來用就可以了的? 組合按鍵能否可以這樣用的?     if (sSCKeyInfo[0].Setting.b ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 陇川县| 广水市| 罗源县| 东平县| 沛县| 浮梁县| 永顺县| 古丈县| 兴宁市| 甘洛县| 太白县| 聂荣县| 简阳市| 芒康县| 屯门区| 龙南县| 涟源市| 萍乡市| 南开区| 富平县| 余庆县| 石门县| 于都县| 阿拉尔市| 广宗县| 日喀则市| 饶平县| 来安县| 保定市| 许昌市| 喀喇沁旗| 洛南县| 雷波县| 广灵县| 水富县| 岳西县| 云南省| 浦江县| 达日县| 上杭县| 皋兰县|