精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Cortex-M3咬尾中斷與晚到中斷基礎知識介紹

冬至子 ? 來源:AI電堂 ? 作者:電小二 ? 2023-11-06 16:36 ? 次閱讀

咬尾中斷

Cortex-M3 內(nèi)核發(fā)生中斷時,硬件會自動將 XPSR、PC、LR、R12、R3、R2、R1 和 R0 這 8 個寄存器壓入棧,其余的 R4~R11、LR、XPSR 寄存器的備份則需要由 C 編譯器去做。

我們知道每次中斷操作有三部曲:入棧+ISR+出棧。**Cortex-M3 內(nèi)核支持中斷嵌套。所謂中斷嵌套就是高優(yōu)先級的中斷可以打斷低優(yōu)先級的中斷轉而去執(zhí)行高優(yōu)先級的中斷服務程序,當高優(yōu)先級中斷服務程序執(zhí)行完畢再去接著執(zhí)行低優(yōu)先級的中斷服務程序。

若在高優(yōu)先級中斷服務程序執(zhí)行過程中產(chǎn)生了低優(yōu)先級中斷,那么低優(yōu)先級中斷需要等高優(yōu)先級中斷服務程序執(zhí)行完畢才能去執(zhí)行。

對于后者兩個中斷是串行執(zhí)行的,如果按照每個中斷備份、恢復寄存器的過程,那么高優(yōu)先級中斷先將上述 8 個寄存器壓入棧中,等執(zhí)行完畢再從棧中彈出這 8 個寄存器,緊接著低優(yōu)先級中斷再將這 8 個寄存器壓入棧中,等執(zhí)行完畢再從棧中彈出,這么做對這 8 個寄存器重復入棧出棧 2 次,浪費了時間,Cortex-M3 內(nèi)核采用咬尾中斷機制避免這種問題發(fā)生,來看下圖:

圖片

Cortex-M3不會再出棧這些寄存器,而是繼續(xù)使用上一個異常已經(jīng)壓棧好的結果,消除出棧和入棧操作的耗時。這樣一來我們執(zhí)行兩次中斷只需要:入棧+ISR1+ISR2+出棧。

咬尾中斷看上去好像后一個異常把前一個的尾巴咬掉了,前前后后只執(zhí)行了一次PUSH/POP操作。這兩個異常之間的“時間溝”就變窄了很多,大大提高了效率!

與常規(guī)中斷處理(ARM7)的比較:

圖片

晚到中斷

Cortex-M3的中斷處理還有另一個機制,它強調了優(yōu)先級的作用,這就是 “晚到的異常處理”

這里有一種情況,低優(yōu)先級中斷先發(fā)生,而在低優(yōu)先級中斷壓棧的過程中又發(fā)生了高優(yōu)先級的中斷,這時高優(yōu)先級中斷就會搶占低優(yōu)先級中斷,如果高優(yōu)先級中斷再壓棧然后執(zhí)行,再出棧,低優(yōu)先級中斷執(zhí)行再出棧,這樣對這 8 個寄存器又是重復入棧出棧 2 次,做了無用功,Cortex-M3 內(nèi)核采用晚到中斷機制避免這種問題發(fā)生,來看下圖:

比如,若在響應某低優(yōu)先級異常#1的早起,檢測到了高優(yōu)先級異常#2,則只要#2沒有太晚,就能以“晚到中斷”的方式處理,在入棧完畢后執(zhí)行ISR#2。如圖所示:

圖片

如果異常#2來得太晚,以至于已經(jīng)執(zhí)行了ISR#1的指令,則按普通的搶占處理,這會需要更多的處理器時間和額外32字節(jié)的堆??臻g。在ISR#2執(zhí)行完畢后,則以“咬尾中斷”的方式來啟動ISR#1的執(zhí)行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19178

    瀏覽量

    229200
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120052
  • Cortex-M3
    +關注

    關注

    9

    文章

    269

    瀏覽量

    59439
  • 中斷優(yōu)先級

    關注

    0

    文章

    22

    瀏覽量

    9354
  • 中斷嵌套
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6836
收藏 人收藏

    評論

    相關推薦

    不同優(yōu)先級中斷中處理時怎么理解

    處理中斷時,怎么理解
    發(fā)表于 03-28 03:34

    Cortex-M3處理器中斷與FreeRTOS中斷優(yōu)先級配置

    置頂/星標公眾號,不錯過每一條消息!很多朋友對中斷的一些知識還是不了解,今天就寫點關于Cortex-M3處理器中斷相關,以及FreeRTOS中斷
    發(fā)表于 08-13 06:16

    ARM Cortex-M3中斷體系

    外部中斷一、ARM Cortex-M3中斷體系二、代碼思路函數(shù)接口1.為引腳選擇使用哪個中斷2.配置外部中斷
    發(fā)表于 08-16 07:38

    Cortex-M3權威指南介紹

    Cortex-M3處理器介紹基本的硬件構架和指令系統(tǒng)待
    發(fā)表于 11-23 11:01 ?0次下載

    STM32的Cortex-M3中斷異常處理

    在STM32處理器中有43個可屏蔽中斷通道(不包含 16個 Cortex?-M3中斷線)。共設置了16個可編程的優(yōu)先等級(使用了 4位中斷
    發(fā)表于 11-16 15:35 ?8131次閱讀
    STM32的<b class='flag-5'>Cortex-M3</b><b class='flag-5'>中斷</b>異常處理

    Cortex-M3處理器中斷和FreeRTOS中斷優(yōu)先級配置

    STM32屬于ARM中Cortex-M系列處理器,比如:STM32F1數(shù)據(jù)Cortex-M3,STM32F7數(shù)據(jù)Cortex-M7。
    的頭像 發(fā)表于 12-30 11:23 ?7041次閱讀
    <b class='flag-5'>Cortex-M3</b>處理器<b class='flag-5'>中斷</b>和FreeRTOS<b class='flag-5'>中斷</b>優(yōu)先級配置

    Cortex-M3 NVIC與中斷控制資料下載

    電子發(fā)燒友網(wǎng)為你提供Cortex-M3 NVIC與中斷控制資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-11 08:41 ?7次下載
    <b class='flag-5'>Cortex-M3</b> NVIC與<b class='flag-5'>中斷</b>控制資料下載

    Cortex-M3的異常和中斷資料下載

    電子發(fā)燒友網(wǎng)為你提供Cortex-M3的異常和中斷資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-22 08:51 ?4次下載
    <b class='flag-5'>Cortex-M3</b>的異常和<b class='flag-5'>中斷</b>資料下載

    Cortex-M3Cortex-M4 Fault異常應用之基礎知識資料下載

    電子發(fā)燒友網(wǎng)為你提供Cortex-M3Cortex-M4 Fault異常應用之基礎知識資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的
    發(fā)表于 04-23 08:50 ?10次下載
    <b class='flag-5'>Cortex-M3</b>和<b class='flag-5'>Cortex-M</b>4 Fault異常應用之<b class='flag-5'>基礎知識</b>資料下載

    Cortex-M3工作模式、異常與中斷介紹資料下載

    電子發(fā)燒友網(wǎng)為你提供Cortex-M3工作模式、異常與中斷介紹資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-27 08:43 ?4次下載
    <b class='flag-5'>Cortex-M3</b>工作模式、異常與<b class='flag-5'>中斷</b><b class='flag-5'>介紹</b>資料下載

    STM32的NVIC與中斷簡介&&Cortex-M內(nèi)核的識別

    實現(xiàn)編程的步驟。一 基礎知識1. cortex-m3支持256個中斷,其中包含了16個內(nèi)核中斷,240個外部中斷。(本博文只
    發(fā)表于 12-01 11:51 ?7次下載
    STM32的NVIC與<b class='flag-5'>中斷</b>簡介&&<b class='flag-5'>Cortex-M</b>內(nèi)核的識別

    STM32 的核心Cortex-M3 處理器

    STM32的核心Cortex-M3 處理器是一個標準化的微控制器結構,希望思考一下,何為標準化?簡言之,Cortex-M3 處理器擁有32 位CPU,并行總線結構,嵌套中斷向量控制單元,調試系統(tǒng)以及
    發(fā)表于 12-01 11:51 ?9次下載
    STM32 的核心<b class='flag-5'>Cortex-M3</b> 處理器

    Cortex-M4和Cortex-M3內(nèi)核的systick不進中斷的軟件延時

    Cortex-M4和Cortex-M3內(nèi)核的systick不進中斷的軟件延時Cortex-M3/4自帶的systick系統(tǒng)定時器在用作延時功能時常常會以
    發(fā)表于 12-01 11:51 ?3次下載
    <b class='flag-5'>Cortex-M</b>4和<b class='flag-5'>Cortex-M3</b>內(nèi)核的systick不進<b class='flag-5'>中斷</b>的軟件延時

    什么是中斷架構

    Cortex-M3內(nèi)核支持256個中斷,其中包含了16個內(nèi)核中斷和240個外部中斷,并且具有256級的可編程中斷設置。但STM32并沒有使用
    的頭像 發(fā)表于 03-01 17:41 ?757次閱讀
    什么是<b class='flag-5'>中斷</b>架構

    Cortex-M3中斷優(yōu)先級的相關知識

    本文詳細介紹Cortex-M3中斷優(yōu)先級相關知識。
    的頭像 發(fā)表于 03-23 11:45 ?2581次閱讀
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>中斷</b>優(yōu)先級的相關<b class='flag-5'>知識</b>