日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32之中断嵌套控制器

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32之中断嵌套控制器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

STM32 (Cortex-M3) 中的優(yōu)先級概念

STM32(Cortex-M3)中有兩個(gè)優(yōu)先級的概念:搶占式優(yōu)先級和響應(yīng)優(yōu)先級,也把響應(yīng)優(yōu)先級稱作“亞優(yōu)先級”或“副優(yōu)先級”,每個(gè)中斷源都需要被指定這兩種優(yōu)先級。

1. 何為占先式優(yōu)先級(pre-emption priority)

高占先式優(yōu)先級的中斷事件會(huì)打斷當(dāng)前的主程序/中斷程序運(yùn)行—搶斷式優(yōu)先響應(yīng),俗稱中斷嵌套。

2. 何為副優(yōu)先級(subpriority)

在占先式優(yōu)先級相同的情況下,高副優(yōu)先級的中斷優(yōu)先被響應(yīng);

在占先式優(yōu)先級相同的情況下,如果有低副優(yōu)先級中斷正在執(zhí)行, 高副優(yōu)先級的中斷要等待已被響應(yīng)的低副優(yōu)先級中斷執(zhí)行結(jié)束后才能得到響應(yīng)—非搶斷式響應(yīng)(不能嵌套)。

3. 判斷中斷是否會(huì)被響應(yīng)的依據(jù)

首先是占先式優(yōu)先級,其次是副優(yōu)先級;

占先式優(yōu)先級決定是否會(huì)有中斷嵌套;

Reset、NMI、Hard Fault 優(yōu)先級為負(fù)(高于普通中斷優(yōu)先級)且不可調(diào)整。

4. 優(yōu)先級沖突的處理

具有高搶占式優(yōu)先級的中斷可以在具有低搶占式優(yōu)先級的中斷處理過程中被響應(yīng),即中斷的嵌套,或者說高搶占式優(yōu)先級的中斷可以嵌套低搶占式優(yōu)先級的中斷。

當(dāng)兩個(gè)中斷源的搶占式優(yōu)先級相同時(shí),這兩個(gè)中斷將沒有嵌套關(guān)系,當(dāng)一個(gè)中斷到來后,如果正在處理另一個(gè)中斷,這個(gè)后到來的中斷就要等到前一個(gè)中斷處理完之后才能被處理。如果這兩個(gè)中斷同時(shí)到達(dá),則中斷控制器根據(jù)他們的響應(yīng)優(yōu)先級高低來決定先處理哪一個(gè);如果他們的搶占式優(yōu)先級和響應(yīng)優(yōu)先級都相等,則根據(jù)他們在中斷表中的排位順序決定先處理哪一個(gè)。

5. Cortex-M3中對中斷優(yōu)先級的定義

既然每個(gè)中斷源都需要被指定這兩種優(yōu)先級,就需要有相應(yīng)的寄存器位記錄每個(gè)中斷的優(yōu)先級;在Cortex-M3中定義了8個(gè)比特位用于設(shè)置中斷源的優(yōu)先級,這8個(gè)比特位可以有8種分配方式,如下:

所有8位用于指定響應(yīng)優(yōu)先級

最高1位用于指定搶占式優(yōu)先級,最低7位用于指定響應(yīng)優(yōu)先級

最高2位用于指定搶占式優(yōu)先級,最低6位用于指定響應(yīng)優(yōu)先級

最高3位用于指定搶占式優(yōu)先級,最低5位用于指定響應(yīng)優(yōu)先級

最高4位用于指定搶占式優(yōu)先級,最低4位用于指定響應(yīng)優(yōu)先級

最高5位用于指定搶占式優(yōu)先級,最低3位用于指定響應(yīng)優(yōu)先級

最高6位用于指定搶占式優(yōu)先級,最低2位用于指定響應(yīng)優(yōu)先級

最高7位用于指定搶占式優(yōu)先級,最低1位用于指定響應(yīng)優(yōu)先級

這就是優(yōu)先級分組的概念。

6. stm32中對中斷優(yōu)先級的定義

Cortex-M3允許具有較少中斷源時(shí)使用較少的寄存器位指定中斷源的優(yōu)先級,因此STM32把指定中斷優(yōu)先級的寄存器位減少到4位,這4個(gè)寄存器位的分組方式如下:

第0組:所有4位用于指定響應(yīng)優(yōu)先級

第1組:最高1位用于指定搶占式優(yōu)先級,最低3位用于指定響應(yīng)優(yōu)先級

第2組:最高2位用于指定搶占式優(yōu)先級,最低2位用于指定響應(yīng)優(yōu)先級

第3組:最高3位用于指定搶占式優(yōu)先級,最低1位用于指定響應(yīng)優(yōu)先級

第4組:所有4位用于指定搶占式優(yōu)先級

總結(jié)

以上是生活随笔為你收集整理的STM32之中断嵌套控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。