日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]摘要:嵌入式實時系統(tǒng)中斷管理技術直接影響到系統(tǒng)的實時響應性能。本文通過對嵌入式內核中斷管理技術的研究,歸結出“中斷前-后段處理”模型;同時,針對一些處理

摘要:嵌入式實時系統(tǒng)中斷管理技術直接影響到系統(tǒng)的實時響應性能。本文通過對嵌入式內核中斷管理技術的研究,歸結出“中斷前-后段處理”模型;同時,針對一些處理器中多個外部中斷共用一個向量的問題,提出一種單向量多中斷處理映射技術,并在PowerPC MPC860處理器上實現(xiàn)Delta OS內核時,驗證此技術的有效性。 關鍵詞:實時性 中斷 中斷管理模式 嵌入式實時系統(tǒng) 引 言 嵌入式實時系統(tǒng)(Real-Time System)是一個能夠在指定或者確定的時間內對外部事件作出響應的系統(tǒng),其重要的特性是實時響應性。   嵌入式實時系統(tǒng)對外部事件的響應一般都是通過中斷來處理的,其對中斷的處理方式,直接影響到系統(tǒng)的實時性能。 1 嵌入式內核的中斷管理模式 1.1 簡 介   實時多任務操作系統(tǒng)是嵌入式應用開發(fā)的基礎平臺。早期的嵌入式實時應用軟件直接在處理器上運行,沒有RTOS支持,現(xiàn)在的大多嵌入式應用開發(fā)都需要嵌入式操作系統(tǒng)的支持。實際上,此時的嵌入式操作系統(tǒng)相當于一個通用而復雜的主控程序,為嵌入式應用軟件提供更強大的開發(fā)平臺和運行環(huán)境。因為嵌入式系統(tǒng)已經(jīng)將處理器、中斷、定時器、I/O等資源包裝起來,用一系列的API提供給用戶,應用程序可以不關注底層硬件,直接借用操作系統(tǒng)提供的功能進行開發(fā),此時的嵌入式操作系統(tǒng)可以視為一個虛擬機。   隨著嵌入式實時系統(tǒng)的發(fā)展,為了方便對中斷的處理,系統(tǒng)內核常接管中斷的處理,比如提供一些系統(tǒng)調用接口來安裝用戶的中斷,提供統(tǒng)一的中斷處理接口等。根據(jù)系統(tǒng)內核的可搶占或者非搶占性,系統(tǒng)內核接管中斷又有兩種不同處理模式,如圖1。 圖1   在非搶占式內核的中斷處理模式中,當在中斷處理過程中有高優(yōu)先級任務就緒時,不會立即切換到高優(yōu)先級的任務,必須等待中斷處理完后返回到被中斷的任務中,等待被中斷的任務執(zhí)行完后,再切換到高優(yōu)先級任務。在搶占式內核的中斷處理模式中,如果有高優(yōu)先級任務就緒時,則立刻切換到高優(yōu)先級的任務。搶占式內核中斷處理模式下的時序如圖2。   在時序圖中,符號A表示有高優(yōu)先級任務N就緒。這種處理模式有利于高優(yōu)先級任務的處理,但相應地延長了被中斷的低優(yōu)先級任務的執(zhí)行時間。 1.2 嵌入式內核接管中斷的處理機制   嵌入式內核接管中斷的處理機制主要包括兩個部分:面向應用的編程接口部分和面向底層的處理部分。面向用戶應用的編程接口的任務之一是供支持用戶安裝中斷處理例程。面向底層處理部分可以分為兩個部分:中斷向量表部分和中斷處理部分。中斷向量表部分主要指中斷向量表的定位和向量表中表項內容的形式,一般在嵌入式內核中都提供一個中斷向量表, 其表項的向量號應與處理器中所描述的向量對應;向量表表項的內容形式一般有兩種形式。最常見的形式就是在具體的向量位置存儲的是一些轉移程序,轉到具體的中斷處理部分;另一種形式也就是中斷向量位置存放具體的中斷處理程序,此僅針對向量號之間彼此有一定的距離,此距離足以存放中斷處理程序。面向底層部分的中斷處理部分,是整個嵌入式內核中斷管理的核心,在后面有詳細的分析。

  對于嵌入式內核中斷管理模式圖中的中斷處理部分,以Delta OS內核為例,詳細說明其中斷處理部分。Delta OS內核中斷處理部分采用了“統(tǒng)一接管”的思想,即Delta OS 為所有的外部中斷都提供一個統(tǒng)一的入口_ISR_Handler。此入口的主要功能是保護中斷現(xiàn)場,執(zhí)行用戶的中斷服務程序,判斷是否允許可搶占調度,中斷現(xiàn)場的恢復等。Delta OS內核中斷處理的流程如圖3。   從Delta OS內核中斷處理流程圖中,可看出嵌入式內核中一些專用的處理方式。   ① 在嵌入式內核中一般有兩個堆棧:系統(tǒng)棧和任務棧。系統(tǒng)棧是系統(tǒng)為中斷上下文處理而預留的堆棧;任務棧屬于任務本身的私有堆棧,用來存儲任務執(zhí)行過程中一些臨時變量等信息。因為中斷上下文不隸屬于任何任務的上下文中,所以嵌入式內核一般都有一個系統(tǒng)棧專門處理中斷上下文的。當產(chǎn)生中斷且非中斷嵌套時,堆棧由被中斷任務中的任務棧切換到系統(tǒng)棧;當在中斷處理中又發(fā)生中斷時,堆棧不再切換,仍用系統(tǒng)棧;當退出最外層中斷時,堆棧又由系統(tǒng)棧切換到被中斷的任務中的任務棧。  ?、?一般嵌入式內核有兩種形式:搶占式和非搶占式。為了更好地支持系統(tǒng)的實時性,很多嵌入式實時內核都是搶占式內核,如Vxworks、pSOS 等。從上面Delta OS 內核中斷處理流程可知Delta OS是搶占式內核。因為在中斷處理中,當檢測到有高優(yōu)先級任務就緒時,就會切換到高優(yōu)先級任務里,而不是等到退出中斷后,再進行任務調度。  ?、? 在嵌入式內核中,中斷時機和調度時機直接影響到系統(tǒng)的實時性。關中斷的時機一般在執(zhí)行核心操作之前。核心操作包括對鏈表的操作,對核心數(shù)據(jù)項(如指示同步,反應重要信息狀態(tài))的修改等場合都須關中斷。執(zhí)行完相應的核心操作后,就可以開中斷。開調度時機主要提供重新調度的機會,一般在執(zhí)行操作系統(tǒng)核心調用前關調度,執(zhí)行完后開調度。系統(tǒng)中開關中斷與開關調度的關系大致如下:   開關中斷的粒度比開關調度要深,要細。開關中斷主要是為實時性提供各種可能的中斷時機,允許響應外部中斷。中斷里也可以執(zhí)行調度和系統(tǒng)調用,但中斷的上下文與任務的上下文是不一樣的,因此在中斷里只能執(zhí)行一些特定的系統(tǒng)調用。這些特定系統(tǒng)調用是不會引起調用阻塞的,不要試圖在中斷里執(zhí)行獲取信號量,執(zhí)行I/O操作等這些很容易引起調用阻塞的系統(tǒng)調用。

2 中斷管理模型 2.1 中斷前-后段處理模型   在前面嵌入式內核中斷管理模式分析中,嵌入式內核一般采用中斷統(tǒng)一接管思想,在中斷統(tǒng)一接管中調用用戶的中斷服務程序。中斷管理模式中的中斷處理部分又可以細化,如嵌入式Linux系統(tǒng)中關于中斷管理機制中提出了“前半部”和“后半部”的處理思想。其實這種中斷管理的思想把中斷處理部分按照重要性分兩部分,將必須要做的中斷處理部分歸為“前半部”,即這部分在中斷處理部分實施;而將中斷處理中可以延遲操作且影響不大的部分歸為“后半部”,這部分在退出中斷服務程序后實施。通過這樣的中斷管理思想減少的中斷服務時間,為其它外部事件的中斷響應提供了更多的時機。在實時內核中還有其它的中斷處理機制,它們的思想都是盡量減少中斷處理的時間。如在一些I/O處理部分,I/O操作所引起的中斷處理部分只做標記功能,即只設一個標志或者發(fā)一個消息說明外部中斷來了,而具體的I/O傳輸操作放在中斷外部實施。根據(jù)上面的分析,將前面的中斷處理思想歸結為:中斷“前-后”段處理模型,其模型如圖4。   在圖4中,“中斷前部”主要完成外部事件發(fā)生中斷請求時,系統(tǒng)對其響應所完成的必要功能,如中斷現(xiàn)場保護、數(shù)據(jù)預取和預放等;“置標”部分主要通知某個任務或者線程已有一個中斷發(fā)生,且中斷的前部已完成;“中斷后部”并不是在中斷服務程序里執(zhí)行,而是由接收到標記或者通知的任務或者線程來完成的,主要是完成本應在中斷服務里完成的后繼工作。舉個例子,當網(wǎng)絡接口卡報告新的數(shù)據(jù)包到達時,“中斷前部”主要將數(shù)據(jù)包送到協(xié)議層;“中斷后部”完成對數(shù)據(jù)包的具體處理。   在此“中斷前-后段處理模型”中,應該注意兩個方面:   ① 如何劃分“中斷前部”和“中斷后部”?;镜膭澐謽藴适牵瑧摿⒓刺幚淼暮捅匾墓δ懿糠址旁?ldquo;中斷前部”完成,可以推遲處理或者可以在中斷外處理的功能部分放在“中斷后部”完成。  ?、?ldquo;中斷后部”何時執(zhí)行,取決于用于完成“中斷后部”功能的任務或者線程的優(yōu)先級。如果要讓中斷的后繼部分較快地執(zhí)行,則可以通過提高獲得標記的任務或者線程的優(yōu)先級。從極限角度思維,當獲得標記的任務或者優(yōu)先級很高時,在“中斷前部”完成退出中斷后,立即就執(zhí)行獲得標記的任務或者線程,這相當于獲得標記的任務或者線程執(zhí)行部分就在中斷里執(zhí)行。如果中斷的后繼部分并不要求較快的執(zhí)行,則可以賦給獲得標記的任務或者線程為普通的優(yōu)先級。 2.2 單向量多中斷處理映射技術 (1)問題的提出   在前面的嵌入式內核中斷管理模式圖中,中斷向量表部分也屬于模式圖的一部分,不同嵌入式處理器體系中斷向量的支持也不同。在PowerPC 8xx 系列的處理器中,所有外部中斷對應的向量都是0x500。為了處理這種多個外部中斷共用一個向量的情況,本節(jié)提出了單向量多中斷處理技術。此技術的思想如下:   當外設中斷觸發(fā)時,首先定位到實向量位置,調用中斷統(tǒng)一接口函數(shù),中斷統(tǒng)一接口函數(shù)對外設中斷觸發(fā)的參數(shù)進行測試,尋找到其對應的虛向量,從而觸發(fā)虛向量處的回調函數(shù),從而實現(xiàn)多個外部中斷通過同一的實向量到多個虛向量的映射,解決了單向量多中斷處理的問題。

  單向量多中斷處理映射技術的示意圖如圖5。   在上面的單向量多中斷處理映射圖中,V表示多個外設共享的中斷請求向量號,V1,V2,…,Vn-1,Vn表示不同外設對應的虛向量號;Fi表示與 Vi對應的回調函數(shù)(i=1…n)。 (2)實現(xiàn)方法   基于前面的分析,將單向量多中斷處理映射技術運用于Delta OS 移植到PowerPC MPC860平臺上。PowerPC MPC860處理器的外部中斷向量號為0x500。在單向量多中斷處理模型圖中,V=0x500。設有n個外部設備分別為D1,D2,D3,…,Dn,這些外部設備中斷觸發(fā)時的中斷標志分別為 PPC_D1,PPC_D2,PPC_D3,…,PPC_Dn;Delta OS 內核為這些外部設備分配的虛向量號分別為V_D1,V_D2,V_D3,…,V_Dn,在實現(xiàn)中分別取值:0x2000、0x2100、0x2200等,即每個虛向量號間距256個字節(jié)。在Delta OS內核中聲明了一個全局虛向量表_ISR_VECTOR_TABLE,通過系統(tǒng)調用delta_interrupt_catch,將用戶的中斷服務程序安裝到指定的虛向量號處。Delta OS 用統(tǒng)一的中斷接口函數(shù)_ISR_Handler 來處理外部中斷。在模型實現(xiàn)中有兩個重要的功能模塊:用戶中斷安裝模塊和中斷處理模塊。下面分別用偽代碼描述這兩個模塊的功能。   用戶中斷安裝模塊delta_interrupt_catch 的偽代碼實現(xiàn)如下: delta_interrupt_catch(vector, new_isr_handler,old_isr_handler){ ① 檢查向量號的有效性 ② 檢查新中斷服務程序的有效性 ③ 保存舊的中斷服務程序指針 ④ 安裝用戶指定的新中斷服務程序 _ISR_VECTOR_TALBE[vector]=new_isr_handler } 外設中斷觸發(fā)時,中斷處理模塊_ISR_Handler的偽代碼實現(xiàn)如下: _ISR_Handler(void){ ① 中斷現(xiàn)場的保護 ② 中斷屏蔽位的設置 ③ 外設中斷標志的檢測 switch ( 標志) { case PPC_D1: F1=_ISR_VECTOR_TABLE[V_D1]且執(zhí)行F1的功能 case PPC_D2: F2=_ISR_VECTOR_TABLE[V_D2]且執(zhí)行F2的功能 case PPC_D3: F3=_ISR_VECTOR_TABLE[V_D3]且執(zhí)行F3的功能 . . . case PPC_Dn: Fn=_ISR_VECTOR_TABLE[V_Dn]且執(zhí)行Fn的功能 default: 執(zhí)行系統(tǒng)默認的中斷處理程序 } ④ 中斷屏蔽位的恢復 ⑤ 根據(jù)調度標志進行調度 ⑥ 中斷現(xiàn)場的恢復 } 圖5   此技術已成功解決了PowerPC MPC860中單向量多中斷處理的問題,而且其實現(xiàn)并不影響嵌入式內核的體系,具有較好的移植性。 3 小 結   本文主要研究了嵌入式實時系統(tǒng)中斷管理技術,從硬件體系和系統(tǒng)管理兩方面闡述了影響中斷性能的因素,著重分析了嵌入式內核中斷管理模式。在嵌入式內核中斷管理中,歸結出“中斷前-后段處理”模型,并針對一些處理器的多中斷共用一個向量的問題,引入了單向量多中斷處理的映射技術,并給以實現(xiàn),對提高嵌入式實時系統(tǒng)的實時性提供了一定的參考價值。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

德國康佳特亮相上海工博會,展示多款應用就緒的嵌入式解決方案平臺

關鍵字: 嵌入式 傳感器 處理器

雙方攜手為客戶打造以存儲為核心的模塊化基礎架構,支持先進的多裸片架構設計

關鍵字: 非易失性存儲 半導體 嵌入式

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設計工程師推出25門技術課程

關鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會展(上海)有限公司舉辦的上海國際嵌入式會議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會議將由三個版塊組成:嵌入式技術會議、汽...

關鍵字: 嵌入式 CE CHINA EMBEDDED

從外部看,電子系統(tǒng)仿佛一個統(tǒng)一的學科或設備,各組成部分協(xié)同工作,渾然一體。然而揭開表象,其內在卻是另一番景象:一個碎片化、多層次的世界——其中每一層都獨立且復雜,衍生出各自特有的工具、專家、工作流程,甚至哲學體系。

關鍵字: 嵌入式 電子系統(tǒng) 半導體

8位單片機在嵌入式設計領域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國際電子展盛大啟幕。本屆大會以"All for AI"為主題,深圳市德...

關鍵字: AI 工業(yè)級 SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會展主辦的 第22屆深圳國際電子展暨嵌入式展(elexcon2025)在深圳(福田)會展中心隆重開幕。 作為中國電子與嵌入式技術領域的專業(yè)大展,本屆展會...

關鍵字: 嵌入式 電子 高通 AI

模塊化設計作為一種將系統(tǒng)拆分為獨立、可復用組件的方法,能夠在低代碼平臺中實現(xiàn)功能的靈活組合,并最大限度地提升系統(tǒng)性能。本文將探討如何通過模塊化設計,使得低代碼平臺既能快速適應變化,又能保持高效穩(wěn)定的運行。

關鍵字: 模塊化設計 嵌入式

CPU親和度通過限制進程或線程可以運行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關鍵字: Linux 嵌入式
關閉