關(guān)于中斷

新文件描述符總是使用未用描述符的最小值,這個(gè)特征在某些情況下非常有用焕梅。例如,如果一個(gè)程序關(guān)閉了它的標(biāo)準(zhǔn)輸出卦洽,然后再次調(diào)用open的話贞言,那么文件描述符1將會(huì)被重新使用,并且標(biāo)準(zhǔn)輸出將會(huì)被有效的重定向到另一個(gè)文件或者設(shè)備阀蒂。


EXTI(external interrupt)外部中斷通過(guò)GPIO檢測(cè)輸入脈沖该窗,引起中斷事件,它會(huì)打斷原來(lái)代碼的執(zhí)行流程脂新,接著進(jìn)入中斷服務(wù)函數(shù)中進(jìn)行處理挪捕,處理完后在返回到中斷之前的代碼之中執(zhí)行。并且對(duì)于STM32争便,所有的GPIO都能夠用作外部中斷源的輸入端级零。

cortex內(nèi)核把能夠打斷當(dāng)前代碼執(zhí)行流程的事件分為異常和中斷。其中0-15稱為內(nèi)核異常滞乙,1奏纪、大于等于16的則稱為外部中斷,基于這些設(shè)定斩启,cortex內(nèi)核建立了一個(gè)中斷向量表序调。

盡管STM32是基于cortex-m3內(nèi)核,但是他還是重定義了繼承而來(lái)的中斷向量表兔簇,對(duì)于stm32來(lái)說(shuō)它的中斷向量表是這樣的:[-3,6]被稱為內(nèi)核異常发绢,7以上的則被稱為外部中斷。其中-3垄琐,-2边酒,-1這幾個(gè)內(nèi)核異常的優(yōu)先級(jí)是固定不可被修改的,分別表示Reset復(fù)位狸窘,NMI不可屏蔽中斷墩朦,hardfault硬件異常。這里再重點(diǎn)提一下6翻擒,它是SYSTICK氓涣,系統(tǒng)嘀嗒定時(shí)器牛哺。而大于等于0以上的中斷向量的優(yōu)先級(jí)就都可以被設(shè)置。

中斷向量表.PNG

NVIC

NVIC(Nested Vectored Interrupt Controller)中斷控制器劳吠,中斷控制器NVIC是屬于cortex內(nèi)核里面的器件引润,既然NVIC是中斷控制器,那么它控制哪些中斷呢赴背?答案就是所有的外部中斷以及-2NMI不可屏蔽中斷都是被他處理的椰拒,其它的中斷向量他就無(wú)能為力了。因此6SYSTICK內(nèi)核異常并不由NVIC中斷控制器處理凰荚。

使用NVIC中斷控制器去處理[7以上的外部中斷以及-2NMI的第一步操作就是:首先定義一個(gè)并填充一個(gè)NVIC_InitTypeDef類型的結(jié)構(gòu)體對(duì)象。下面看看NVIC_InitTypeDef這個(gè)結(jié)構(gòu)體的定義:

typedef struct{
  uint8_t NVIC_IRQChannel;
  uint8_t NVIC_IRQChannelPreemptionPriority;
  uint8_t NVIC_IRQChannelSubPriority;
  FunctionalState NVIC_IRQChannelCmd
}NVIC_InitTypeDef

下面介紹一下NVIC_InitTypeDef這個(gè)結(jié)構(gòu)體的各個(gè)成員:

  • NVIC_IRQChannel:將要配置的中斷向量
  • NVIC_IRQChannelPreemptionPriority:用來(lái)設(shè)置中斷向量的搶占優(yōu)先級(jí)
  • NVIC_IRQChannelSubPriority:用來(lái)配置中斷向量的響應(yīng)優(yōu)先級(jí)
  • NVIC_IRQChannelCmd:用來(lái)DISABLE或者ENABLE該中斷

為什么需要兩個(gè)優(yōu)先級(jí)褒脯?首先無(wú)論是搶占式優(yōu)先級(jí)還是響應(yīng)式優(yōu)先級(jí)便瑟,它們都是值越小則優(yōu)先級(jí)別越高。至于搶占優(yōu)先級(jí)它是應(yīng)用于中斷嵌套的情況之中番川,值被設(shè)置的相對(duì)高的情況則能夠打斷其它中斷使自己優(yōu)先被處理到涂;關(guān)于響應(yīng)優(yōu)先級(jí)他則是應(yīng)用于這樣的情況:當(dāng)兩個(gè)搶占優(yōu)先級(jí)相同的中斷向量同時(shí)到達(dá)的話,那么先處理響應(yīng)優(yōu)先級(jí)高的那個(gè)中斷颁督。下面看一個(gè)例子:

中斷向量 搶占優(yōu)先級(jí) 響應(yīng)優(yōu)先級(jí)
A 0 0
B 1 0
C 1 1

根據(jù)上面的這個(gè)例子践啄,假設(shè)T時(shí)刻正在執(zhí)行C的中斷服務(wù)函數(shù),則它能夠被搶占優(yōu)先級(jí)更加高的A中斷給打斷沉御,但是不能夠被中斷B打斷屿讽。如果中斷B和中斷C同時(shí)到達(dá)的話,那么內(nèi)核先處理響應(yīng)優(yōu)先級(jí)更大的B中斷吠裆。

再STM32中伐谈,NVIC能夠配置16階優(yōu)先級(jí)別,因此需要4BIT试疙。將這4BIT應(yīng)用于搶占優(yōu)先級(jí)以及響應(yīng)優(yōu)先級(jí)诵棵,規(guī)定了下面這些方法(重點(diǎn)是比數(shù)字大小而不是位置):

  • 0 全部4位用來(lái)表示響應(yīng)優(yōu)先級(jí)
  • 1 1位表示搶占優(yōu)先級(jí),3位表示響應(yīng)優(yōu)先級(jí)
  • 2 2位表示搶占優(yōu)先級(jí)祝旷,2位表示優(yōu)先級(jí)
  • 3 1位表示響應(yīng)優(yōu)先級(jí)履澳,3位表示搶占優(yōu)先級(jí)
  • 4 全部4位表示搶占優(yōu)先級(jí)

至于具體采用哪種分法,可以利用NVIC_PriorityGroupConfig()怀跛,方法接受的參數(shù)有:NVIC_PriorityGroup_0~NVIC_PriorityGroup4

EXTI

stm32的所有GPIO都引入到EXTI外部中斷線上距贷,使得所有的GPIO都能夠作為外部中斷的輸入源。GPIOA0-GPIOG0連接到了EXTI0敌完,GPIOA1-GPIOG1連接到了EXTI1储耐,......,GPIOA15-GPIOG15連接到了EXTI15滨溉。需要注意的是盡管EXTIX連上了GPIOAX-GPIOGX的引腳什湘,而且這些引腳都能夠產(chǎn)生中斷长赞,但是再同一時(shí)刻EXTIX只能夠響應(yīng)一個(gè)端口的事件觸發(fā),不能夠同一時(shí)間響應(yīng)所有GPIO端口的事件闽撤,但能夠分時(shí)復(fù)用得哆。

我們的中斷向量的服務(wù)函數(shù)寫在stm32f10x_it.c文件中。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哟旗,一起剝皮案震驚了整個(gè)濱河市贩据,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闸餐,老刑警劉巖饱亮,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異舍沙,居然都是意外死亡近上,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門拂铡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)壹无,“玉大人,你說(shuō)我怎么就攤上這事感帅《范В” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵失球,是天一觀的道長(zhǎng)岖是。 經(jīng)常有香客問(wèn)我,道長(zhǎng)她倘,這世上最難降的妖魔是什么璧微? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮硬梁,結(jié)果婚禮上前硫,老公的妹妹穿的比我還像新娘。我一直安慰自己荧止,他們只是感情好屹电,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著跃巡,像睡著了一般危号。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上素邪,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天外莲,我揣著相機(jī)與錄音,去河邊找鬼。 笑死偷线,一個(gè)胖子當(dāng)著我的面吹牛磨确,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播声邦,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乏奥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了亥曹?” 一聲冷哼從身側(cè)響起邓了,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎媳瞪,沒(méi)想到半個(gè)月后骗炉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡材失,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年痕鳍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片龙巨。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖熊响,靈堂內(nèi)的尸體忽然破棺而出旨别,到底是詐尸還是另有隱情,我是刑警寧澤汗茄,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布秸弛,位于F島的核電站,受9級(jí)特大地震影響洪碳,放射性物質(zhì)發(fā)生泄漏递览。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一瞳腌、第九天 我趴在偏房一處隱蔽的房頂上張望绞铃。 院中可真熱鬧,春花似錦嫂侍、人聲如沸儿捧。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)菲盾。三九已至,卻和暖如春各淀,著一層夾襖步出監(jiān)牢的瞬間懒鉴,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工碎浇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留临谱,地道東北人璃俗。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吴裤,于是被迫代替她去往敵國(guó)和親旧找。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1 異常類型 Cortex-M3內(nèi)核具有強(qiáng)大的異常響應(yīng)系統(tǒng)麦牺,它把能夠打斷當(dāng)前代碼執(zhí)行流程的事件分為異常(excep...
    hackvilin閱讀 3,537評(píng)論 0 4
  • 姓名:周崇杰 學(xué)號(hào):16140120059 專業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 轉(zhuǎn)載自:http://blog.csd...
    CJbaby閱讀 11,965評(píng)論 0 7
  • 姓名:李濤 學(xué)號(hào):17021211100 轉(zhuǎn)載自http://mp.weixin.qq.com/s/C0Vl8GP...
    關(guān)公面前疊飛機(jī)閱讀 794評(píng)論 0 0
  • 1.STM32中斷概述 中斷優(yōu)先級(jí) 在使用中斷式按鍵之前钮蛛,我們先去了解一下STM32的中斷。關(guān)于這方面可以參考《S...
    東方未曦閱讀 3,471評(píng)論 1 10
  • 今天學(xué)習(xí)了中斷(以STM32為例) 1.中斷優(yōu)先級(jí):搶占優(yōu)先級(jí)(組優(yōu)先級(jí))剖膳、響應(yīng)優(yōu)先級(jí)(子優(yōu)先級(jí)) 搶占優(yōu)先級(jí):可...
    李響lx閱讀 447評(píng)論 0 1