一、搶占優先級和響應優先級
STM32 的中斷向量具有兩個屬性,一個為搶占屬性,另一個為響應屬性,其屬性編號
越小,表明它的優先級別越高。
搶占,是指打斷其他中斷的屬性,即因為具有這個屬性會出現嵌套中斷(在執行中斷
服務函數A 的過程中被中斷B 打斷,執行完中斷服務函數B 再繼續執行中斷服務函數
A),搶占屬性由NVIC_IRQChannelPreemptionPriority 的參數配置。
而響應屬性則應用在搶占屬性相同的情況下,當兩個中斷向量的搶占優先級相同時,
如果兩個中斷同時到達, 則先處理響應優先級高的中斷, 響應屬性由
NVIC_IRQChannelSubPriority 參數配置。例如,現在有三個中斷向量,如下表。
若內核正在執行C 的中斷服務函數,則它能被搶占優先級更高的中斷A 打斷,由于B
和C 的搶占優先級相同,所以C 不能被B 打斷。但如果B 和C 中斷是同時到達的,內核
就會首先響應響應優先級別更高的B 中斷。
二、NVIC 的優先級組
在配置優先級的時候,還要注意一個很重要的問題,即中斷種類的數量。NVIC 只可
以配置16 種中斷向量的優先級,也就是說,搶占優先級和響應優先級的數量由一個4 位的
數字來決定,把這個4 位數字的位數分配成搶占優先級部分和響應優先級部分。有5 組分
配方式:
? 第0 組: 所有4 位用來配置響應優先級。即16 種中斷向量具有都不相同的響應優先
級。
? 第1 組:最高1 位用來配置搶占優先級,低3 位用來配置響應優先級。表示有2 種
級別的搶占優先級(0 級,1 級),有8 種響應優先級,即在16 種中斷向量之中,有
8 種中斷,其搶占優先級都為0 級,而它們的響應優先級分別為0~7,其余8 種中斷向
量的搶占優先級則都為1 級,響應優先級別分別為0~7。
? 第2 組:2 位用來配置搶占優先級,2 位用來配置響應優先級。即4 種搶占優先
級,4 種響應優先級。
? 第3 組:高3 位用來配置搶占優先級,最低1 位用來配置響應優先級。即有8 種搶占
優先級,2 種響應2 優先級。
? 第4組:所有4 位用來配置搶占優先級,即NVIC 配置的16 種中斷向量都是只有
搶占屬性,沒有響應屬性。
要配置這些優先級組,可以采用庫函數NVIC_PriorityGroupConfi g(),可輸入的參數為NVIC_PriorityGroup_0 ~ NVIC_PriorityGroup_4,分別為以上介紹的5 種分配組。
于是,有讀者覺得疑惑了,如此強大的STM32,所有GPIO都能夠配置成外部中斷,USART、ADC 等外設也有中斷,而NVIC 只能配置16 種中斷向量,那么在某個工程中使用超過16 個中斷怎么辦呢?注意NVIC 能配置的是16 種中斷向量,而不是16 個,當工程中有超過16 個中斷向量時,必然有兩個以上的中斷向量是使用相同的中斷種類,而具有相同中斷種類的中斷向量不能互相嵌套。
上一篇:STM32中中斷優先級理解
下一篇:stm32庫函數學習篇---NVIC與外部中斷
推薦閱讀
史海拾趣
2016年,Taitien收購了Cardinal Components,這一收購為公司帶來了新的發展機遇和資源支持。隨后,在2021年,Cardinal加入了Pletronics,進一步擴大了其在電子行業的影響力。這些收購與合作不僅為公司帶來了更多的業務機會,也促進了其在技術研發和市場拓展方面的進步。
這五個故事只是Cardinal Components在電子行業發展中的一部分縮影。作為一家具有深厚歷史底蘊和強大技術實力的公司,Cardinal將繼續在電子行業中發揮重要作用,為行業的進步和發展做出更多貢獻。
隨著市場競爭的加劇和資金問題的持續困擾,菲斯克在某一時期不得不宣布停產六周。這一決定引發了外界的廣泛關注和質疑。然而,菲斯克并沒有因此放棄,而是利用這段時間進行了深入的內部反思和策略調整。通過優化生產流程、降低成本以及加強與其他汽車制造商的合作,公司逐漸走出了困境,重新煥發出新的生機。
近年來,網絡游戲市場呈現出蓬勃發展的態勢,C-MEDIA公司也看到了其中的商機。于是,公司通過收購C&C Media,進一步深入日本網絡游戲市場。這次收購不僅幫助C-MEDIA公司把握了該市場的成長機遇,也有效地拓展了其海外運營實力。C&C Media旗下的網絡游戲門戶網站“MK-STYLE”為個人用戶提供了豐富的網絡游戲服務,進一步鞏固了C-MEDIA在網絡游戲領域的市場地位。
隨著公司規模的擴大和技術的不斷積累,AVAGO公司開始尋求多元化的發展道路。除了繼續深耕半導體領域外,公司還積極拓展其他相關領域,如傳感器、無線通信等。同時,公司還與其他行業的領軍企業建立了緊密的戰略合作關系,共同推動技術創新和市場拓展。
隨著公司規模的擴大和技術的不斷積累,AVAGO公司開始尋求多元化的發展道路。除了繼續深耕半導體領域外,公司還積極拓展其他相關領域,如傳感器、無線通信等。同時,公司還與其他行業的領軍企業建立了緊密的戰略合作關系,共同推動技術創新和市場拓展。
隨著網絡安全問題的全球化趨勢日益明顯,Defender Security公司開始積極拓展國際市場。他們與多家國際知名的網絡安全企業建立了合作關系,共同應對全球網絡安全挑戰。通過技術交流和合作研發,Defender Security不斷提升自己的國際競爭力,逐漸成為了全球網絡安全領域的重要力量。
1、我把微控的bsp中的lcd(該屏為240X320的,)驅動注冊表改了一下(改為640X480的),當把BPP 改為18(即24位)時出現data abort,而用默認值10(16位)時,可以順利運行,為什么?我的屏是18位的,想用24位的BPP,可否實現? 2、我把頻率調高到 ...… 查看全部問答∨ |
|
我正在把一個以前用在XP-32位的驅動重新編譯使它能用在vista-64的操作系統上。我在網上下了WDK編譯。用的是Windows Vista and Windows Server 2008 x64 For Free Build Enviorment 這個編譯的。 我已經修改過以前的INF文件。 但是 ...… 查看全部問答∨ |
Zstack學習經驗點滴:NV_INIT和NV_RESTORE的區別。 NV_INIT保存在nv的內容主要是網絡或者節點的配置參數,在節點運行中這些參數很少變化或者幾乎不會有變化。NV_INIT選項保存的所有參數可以在結構體zgItemTable中查看到。 NV_RESTORE選項保存的內容主要是節點運行過程中的狀態量,借助這個特性,節 ...… 查看全部問答∨ |
有-40~85和-40~105兩種 但在數據手冊上右寫了 例2:高溫應用 使用同樣的規則,對于具有較小消耗的應用有可能工作在高環境溫度下,只要結溫處于給定的范圍。 假設下面的應用條件: 最大環境溫度TAmax = 115°C(根據JESD51-2標準測量), ID ...… 查看全部問答∨ |
|
如題,好像大家多用庫來開發啊。由于以前主要用8位單片機,感覺庫函數有點像黑盒子,還是想自己來寫底層。可是感覺大家都在用庫,直接操作寄存器的太少了,連個教程也沒有。STM32還有個正點原子的不完全手冊可以參考。各位,你們都只用庫嗎… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 03:42 編輯 我們論壇里有很多學生和初學者,很多人都是埋頭看例程,埋頭看手冊,很少有人抬起頭來思考真正的行業應用,這次的活動是為了讓大家能夠將學習到的單片機知識和實際的應用做一個結合。 方案競賽專用 ...… 查看全部問答∨ |