色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

中斷的基本概念及應用

832065824 ? 來源:CSDN技術社區 ? 2023-01-12 10:21 ? 次閱讀

1. 概述

中斷是指MCU在運行過程中,出現某些意外情況需處理時,MCU能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行。中斷提供了應用程序與現實世界中發生的事情之間的接口。例如,我們可以使用中斷來捕獲觸發的按鈕、看門狗喂狗操作或計算發生的時間等。

當中斷發生時,處理器通常查看內存中的一個預先定義好的位置,稱為中斷向量。向量通常包含相關中斷處理程序的地址,而包含應用程序中所有向量的內存塊稱為中斷向量表。

2. 基本概念

2.1 中斷的分類

中斷可按優先級劃分為單級中斷與多級中斷,也可按OS是否參與處理將中斷分為一類與二類中斷:

b5502da4-82ac-11ed-bfe3-dac502259ad0.png

2.1.1 單級與多級中斷

單級:即所有的中斷處于同一優先級,這也就意味著當一個中斷正在執行時,其他中斷必須排隊等待直到當前中斷處理完成。

多級:類似于Task中斷也區分不同的優先級,低優先級的中斷可以被高優先級的中斷搶占。

2.1.2 一類與二類中斷

一類中斷:不與OS進行交互,是優先級最高的中斷,需要用戶正確的配置硬件、編寫處理程序并從中斷中返回,用不好的話出錯概率高,一般應用較少。

二類中斷:一般項目中使用的都是此類中斷,中斷發生時,RTA-OS執行內部代碼,然后調用用戶提供的ISR。中斷執行從ISR的指定入口點開始,一直持續到入口函數返回。

b57a184e-82ac-11ed-bfe3-dac502259ad0.png

2.2 中斷優先級

在中斷的一般應用中,中斷以多級中斷應用為主,按中斷優先級(IPL-Interrupt Priority Level)執行,RTA-OS對IPL進行了標準化,其中IPL 0表示用戶級別,其中所有任務都執行,IPL為1或更多表示中斷級別。

在單級平臺上有兩個IPL,0和1。IPL 0表示目標不被中斷,任務按優先級順序運行。IPL 1表示目標正在為中斷提供服務。由于只有一個非零IPL,所有中斷(類別1和類別2)都以相同的優先級運行。這意味著所有中斷都是序列化的,如下圖(a)。

在多級平臺上,高優先級中斷可以搶占低優先級中斷,因此ISRs處理程序可以嵌套,但ISR不能被低優先級任務搶占,如下圖(b)。

b5a0c660-82ac-11ed-bfe3-dac502259ad0.png

根據優先級順序,一類中斷優先級更高,其不能被二類中斷搶占,所有的2類中斷都比最低級的一類中斷低。

也可進一步對中斷的優先級按Task及OS級別繼續劃分為User Level和OS Level,此兩種中斷劃分也是宏觀級別的劃分,具體如下:

2.2.1 User Level

所謂User level,即是用戶可以控制的級別,即Task級別,用戶級別是允許處理所有中斷的最低中斷優先級。所有任務都從其入口點開始在用戶級別執行。

任務有時需要在用戶級別以上運行,例如,它可能需要訪問與ISR共享的數據。當數據被訪問時,必須防止中斷被調用。實現這一點的最簡單方法是,可以在任務在訪問數據時禁用中斷。另一種方法是使用Resource機制,即當Task或2類中斷已經獲得資源后,其他任務或ISR無法獲得該資源,防止任何其他任務或ISR同時進入同一關鍵部分,如修改同一處變量導致程序出錯。

2.2.2 OS Level

由于二類中斷是需要OS參與,這樣2類ISR的最高優先級定義了OS級別。如果執行發生在OS級別或更高級別(一類中斷),則不會發生其他類別2中斷。RTA-OS使用OS Level來防止并發訪問內部操作系統數據結構。

3. 中斷的應用

3.1 中斷常用API

對于RTA-OS,在StartOS()后默認所有中斷都打開,實際使用中,一般常用API為使能或禁用中斷,掛起、恢復中斷,可以調用如下API來啟用或禁用中斷:

DisableAllInterrupts():禁用所有中斷

EnableAllInterrupts():使能所有中斷

SuspendAllInterrupts() :掛起所有中斷

ResumeAllInterrupts():恢復所有中斷

SuspendOSInterrupts() :掛起OS級別中斷

ResumeOSInterrupts():恢復OS級別中斷

以上API在實際使用中,需注意:

1) DisableAllInterrupts() and EnableAllInterrupts()在硬件層面啟用或禁用中斷,這兩個API不能嵌套;

在DisableAllInterrupts()后必須再調用EnableAllInterrupts();

2) SuspendAllInterrupts() and ResumeAllInterrupts(),掛起及恢復所有中斷,可以被嵌套;

3) SuspendOSInterrupts() and ResumeOSInterrupts(),可以嵌套使用;

4)Suspend與Resume需要成對出現,Resume不要比Suspend多;

5) 一類中斷在關閉期間,不可以調用OS的API;

6) 如果2類ISR將中斷級別提高到OS級別以上,并調用DisableAllInterrupts( ),則它可能不會進行任何其他RTA-OS API調用,但用于恢復中斷優先級的EnableAllInterrupts( )調用除外。執行ISR時,不允許將中斷優先級降低到初始級別以下。

3.2 一/二類中斷的處理

3.2.1一類中斷的處理

用戶必須確保一類ISR輸入功能的名稱與用戶在配置期間為ISR指定的名稱相同。

對于一類ISR,在定義輸入函數時,通常必須使用編譯器特定的關鍵字,RTA-OS提供了一個名為CAT1_ISR的宏,該宏可擴展為編譯器工具鏈的正確指令,用戶應使用該指令將函數標記為一類ISR。

3.2.2 二類中斷的處理

二類中斷在RTA-OS控制下執行,但不得在2類ISR中放置“中斷返回”命令,中斷返回由RTA-OS處理。當二類中斷需要執行時,由RTA-OS調用中斷的入口函數,二類中斷的入口函數如下:

#include  


ISR(isr_identifier){
/*  Handler  body.  */
}

3.3 中斷解除

當硬件檢測到中斷時,它通常會設置一個掛起位,告訴中斷控制器中斷已經發生。然后,中斷控制器將通過中斷向量表跳轉到處理程序,掛起位的處理取決于目標,但有兩個基本方式:

1)中斷處理后(即中斷處理程序的分支發生時),掛起位自動清除。當處理程序退出時,如果在處理當前中斷時中斷變為掛起狀態,它將自動重新觸發。

2)掛起位必須由中斷處理程序中的用戶代碼手動清除。中斷處理程序的主體,無論是一類還是二類都需要包含清除掛起位的代碼,并向硬件發送中斷已被處理的信號

3.4 中斷實際配置

RTA-OS使用的是靜態配置,項目實際開發中,需要OS開發人員在OS模塊開始配置前對各模塊(Adc、Pwm、Gpt等)的中斷需求進行分析,如一類/二類中斷?中斷優先級?回調函數名稱?等,OS開發人員還需要對中斷優先級進行評估,是否會影響系統中其他模塊工作。

此外,RTA-OS使用指定的向量為中斷生成向量表條目。與中斷優先級一樣,中斷向量配置也是MCU特有(不同MCU,對應的向量表不同)的,因此在配置中斷向量之前需要特別注意MCU選擇。

3.5 更高效的中斷處理方式

每個中斷處理程序將在代碼執行期間阻止所有優先級相同或較低的中斷。在編寫中斷處理程序時,最好將處理程序盡可能短。長時間運行的處理程序會為低優先級中斷的服務增加額外的延遲。

使用中如果需要在中斷中處理較多的代碼,可以采用:將代碼寫到Task中,再通過中斷來激活Task,這樣低優先級的任務可以打斷該Task從而減少延遲,示例代碼如下:

#include
ISR(EfficientHandler){
ActivateTask(Task1);
}


TASK(Task1){
/*Longhandlercode.*/
TerminateTask();
}

審核編輯:湯梓紅

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

    關注

    68

    文章

    19395

    瀏覽量

    230696
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17303

    瀏覽量

    352148
  • 看門狗
    +關注

    關注

    10

    文章

    566

    瀏覽量

    70893
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41634

原文標題:RTA OS系列介紹02-中斷

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    放大電路中反饋的基本概念及判斷方法

      在實用放大電路中,幾乎都要引入這樣或那樣的反饋,以改善放大電路某些方面的性能。因此,掌握反饋的基本概念及判斷方法是研究實用電路的基礎。
    發表于 03-10 11:29 ?5918次閱讀
    放大電路中反饋的<b class='flag-5'>基本概念及</b>判斷方法

    中斷概念及51單片機的中斷系統

    中斷概念及51單片機的中斷系統13-1. 演示范例——聲控小車13-2. 中斷概念13-3. P89V51RD2單片
    發表于 03-29 10:27

    阻抗控制相關的基本概念

    阻抗控制部分包括兩部分內容:基本概念及阻抗匹配。本篇主要介紹阻抗控制相關的一些基本概念
    發表于 02-25 08:11

    USB基本概念及從機編程方法介紹

    慕課蘇州大學.嵌入式開發及應用.第四章.較復雜通信模塊.USB基本概念及從機編程方法0 目錄4 較復雜通信模塊4.4 USB基本概念及從機編程方法4.4.1 課堂重點4.4.2 測試與作業5 下一
    發表于 11-08 09:14

    單片機中斷基本概念

    文章目錄一.中斷基本概念二.中斷相關的寄存器三.中斷的實際使用四.中斷的優點:一.中斷
    發表于 11-25 08:14

    STM32的中斷系統基本概念

    STM32 中斷系統概述筆記(一)中斷概述中斷相關的基本概念STM32的中斷系統基本概念:NVI
    發表于 01-07 07:32

    中斷基本概念總結

    基于STM32單片機模塊練習——中斷總結基本概念1.ARM cortex_m3 內核支持 256 個中斷(16 個內核+240 外部)和可編程 256 級中斷優先級的設置,與其相關的
    發表于 01-14 07:39

    電路的基本概念及定律 英語中文對照表

    電路的基本概念及定律電源 source電壓源 voltage source電流源 current source理想電壓源 ideal voltage source理想電流源 ideal current source伏安特性 volt-ampere characteristic電動
    發表于 02-10 11:25 ?48次下載

    天線的基本概念及制作

    天線的基本概念及制作  我將介紹一些常見而且容易自制的天線,這些天線能夠用我們日常生活中容易得到的材料制作。我會逐一制作這些天
    發表于 01-04 09:48 ?1404次閱讀

    基于RF射頻知識基本概念及DTD無線產品介紹

    基于RF射頻知識基本概念及DTD無線產品介紹
    發表于 10-25 08:38 ?8次下載
    基于RF射頻知識<b class='flag-5'>基本概念及</b>DTD無線產品介紹

    STM32的基本概念及中斷應用

    ARMCoetex-M3內核共支持256個中斷,其中16個內部中斷,240個外部中斷和可編程的256級中斷優先級的設置。STM32目前支持的中斷
    發表于 03-24 10:29 ?2677次閱讀

    單片機中斷基本概念及中斷系統有什么優點

    中斷系統中,MCU正常情況下運行的程序稱為主程序,把產生申請中斷信號的單元和事件稱為中斷源,由中斷源向MCU所發出的申請中斷信號稱為
    發表于 09-11 17:25 ?1次下載
    單片機<b class='flag-5'>中斷</b>的<b class='flag-5'>基本概念及</b><b class='flag-5'>中斷</b>系統有什么優點

    數字地、模擬地、信號地、交流地、直流地、屏蔽地、浮地基本概念及PCB地線分割的方法

    數字地、模擬地、信號地、交流地、直流地、屏蔽地、浮地基本概念及PCB地線分割的方法
    發表于 12-01 19:36 ?49次下載
    數字地、模擬地、信號地、交流地、直流地、屏蔽地、浮地<b class='flag-5'>基本概念及</b>PCB地線分割的方法

    11-中斷概念及外部IO口輸入中斷INT0的測試

    中斷概念及外部IO口輸入中斷INT0的測試文章目錄中斷概念及外部IO口輸入中斷INT0的測試
    發表于 01-13 16:01 ?3次下載
    11-<b class='flag-5'>中斷</b>的<b class='flag-5'>概念及</b>外部IO口輸入<b class='flag-5'>中斷</b>INT0的測試

    共生散射通信的基本概念及技術原理

    該文首先介紹共生散射通信的基本概念及技術原理, 然后從信息論基礎、接收機設計、資源配置, 以及多用戶接入4個方面綜述該技術的研究現狀。
    發表于 08-10 17:10 ?1419次閱讀
    主站蜘蛛池模板: 麻豆高清免费国产一区| 最近中文字幕MV免费高清在线 | 日韩精品欧美在线视频在线| 丝袜美女自摸| 1234成人网| 国产亚洲一区在线| 欧美伊人久久大香线蕉综合69| 亚洲精品无码不卡在线播放he| 操中国老太太| 年轻夫妇韩剧中文版免费观看| 亚洲国产日韩欧美视频二区| 被窝伦理午夜电影网| 快播金瓶梅| 亚洲精品免费在线视频| 国产国拍亚洲精品永久软件| 青青青青草原国产免费| 最新无码专区在线视频| 精品国产乱码久久久久久下载| 无码中文字幕热热久久| 岛国大片在线观看免费版| 欧美激情视频一区| 2021国产精品国产精华| 九九久久国产精品大片| 香蕉久久夜色精品国产小说| 超碰国产人人做人人爽| 欧美大jiji| 99久久亚洲精品影院| 麻豆国产精品va在线观看约| 亚洲中文字幕无码爆乳APP| 国产亚洲精品久久久久小 | 99久热这里精品免费| 麻豆精品无码久久久久久久久 | 国产精品69人妻无码久久久| 欧美精品一区二区三区视频| 2021扫黑风暴在线观看免费完整版| 九九99热久久精品在线6| 国产成人亚洲综合无| 欧美做真爱欧免费看| 亚洲熟妇无码乱子AV电影| 香艳69xxxxx有声小说| 国产国拍精品AV在线观看|