找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1873|回復(fù): 1
收起左側(cè)

STM32-NVIC中斷管理實(shí)現(xiàn)

[復(fù)制鏈接]
ID:476077 發(fā)表于 2019-2-13 09:18 | 顯示全部樓層 |閱讀模式
cortex-m3支持256個(gè)中端,其中包含了16個(gè)內(nèi)核中斷,240個(gè)外部中斷。stm32只有84個(gè)中斷,包括16個(gè)內(nèi)核中斷和68個(gè)可屏蔽中斷。stm32f103上只有60個(gè)中斷,f107上才有68個(gè)中斷。
中斷是stm32很基礎(chǔ)的一個(gè)功能,學(xué)會(huì)使用中斷,才可以更好的使用其他的外設(shè)。理解stm32的中斷,必須要先從stm32的中斷優(yōu)先級(jí)分組是怎么回事。要理解優(yōu)先級(jí)分組,就要先理解什么是先占優(yōu)先級(jí),和次占優(yōu)先級(jí)。
先占優(yōu)先級(jí)的概念等同于51單片機(jī)中的中斷。假設(shè)有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷先占優(yōu)先級(jí)如果沒有后觸發(fā)的中斷 先占優(yōu)先級(jí)更高,就會(huì)先處理先占優(yōu)先級(jí)高的中斷。也就是說又有較高的先占優(yōu)先級(jí)的中斷可以打斷先占優(yōu)先級(jí)較低的中斷。這是實(shí)現(xiàn)中斷嵌套的基礎(chǔ)。
次占優(yōu)先級(jí)只在同一先占優(yōu)先級(jí)的中斷同時(shí)觸發(fā)時(shí)起作用,先占優(yōu)先級(jí)相同,則優(yōu)先執(zhí)行次占優(yōu)先級(jí)較高的中斷。次占優(yōu)先級(jí)不會(huì)造成中斷嵌套。 如果中斷的兩個(gè)優(yōu)先級(jí)都一致,則優(yōu)先執(zhí)行位于中斷向量表中位置較高的中斷。
還需要注意的一點(diǎn)是 這里的中斷優(yōu)先級(jí) 高是指 是指是否更接近0級(jí),0級(jí)優(yōu)先級(jí)是最高的。
那么最低的優(yōu)先級(jí)可以是多少?這就涉及了優(yōu)先級(jí)分組的概念。 stm32 通過一個(gè)中斷向量控制器(NVIC),來分配先占優(yōu)先級(jí)和次占優(yōu)先級(jí)的數(shù)量。
arm cortex-m3 內(nèi)核中擁有一個(gè)3位寬度的的PRIGROUP數(shù)據(jù)區(qū),用來指示一個(gè)8位數(shù)據(jù)序列中的小數(shù)點(diǎn)的位置從而表示中斷優(yōu)先級(jí)的分組。
舉個(gè)例子可以更好的理解: 如果PRIGROUP 數(shù)據(jù)位000 即為0 說明8位數(shù)據(jù)序列中小數(shù)位置在第1位的左邊 為xxxxxxx.y 用于表示中斷優(yōu)先級(jí)的分組的含義就是 用7位的數(shù)據(jù)寬度來表示 先占優(yōu)先級(jí)的數(shù)量 即為128 用1位的數(shù)據(jù)寬度來表示 次占優(yōu)先級(jí)數(shù)量 即為 2
所以arm cortex-m3中有2的三次方 即為8個(gè)優(yōu)先級(jí)分組 。
但是stm32中只有5個(gè)優(yōu)先級(jí)分組,表示方法略有不同,參照下表:

stm32-NVIC中斷管理實(shí)現(xiàn).docx

127.85 KB, 下載次數(shù): 6, 下載積分: 黑幣 -5

STM32-NVIC中斷管理實(shí)現(xiàn)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:476077 發(fā)表于 2019-2-13 09:18 | 顯示全部樓層
講的很詳細(xì)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表