女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]1 概述在嵌入式RTOS(Real Time Operating System)領域,日本T-Engine組織推出的T-Kernel以其開源免費,小體積強實時性內(nèi)核,統(tǒng)一的接口規(guī)范等特點顯出了優(yōu)勢;ADI. Blackf

1 概述

在嵌入式RTOS(Real Time Operating System)領域,日本T-Engine組織推出的T-Kernel以其開源免費,小體積強實時性內(nèi)核,統(tǒng)一的接口規(guī)范等特點顯出了優(yōu)勢;ADI. Blackfin系列處理器在嵌入式控制和數(shù)字信號處理領域應用非常廣泛,同時結(jié)合了MCU(Micro Controller Unit)和DSP特點,非常適合于運行RTOS系統(tǒng)。

本文分析T-Kernel內(nèi)核調(diào)度原理和Blackfin處理器內(nèi)核結(jié)構,歸納了T-Kernel在Blackfin處理器BF533系統(tǒng)移植過程中的三個主要問題:中斷管理,任務切換和系統(tǒng)調(diào)用入口三個模塊的實現(xiàn)方法,并討論了系統(tǒng)穩(wěn)定性和實時性的測試以保證系統(tǒng)的穩(wěn)定性和實時性。

2 T-Kernel概述

2.1 T-Kernel的系統(tǒng)結(jié)構

 


圖1 T-Kernel的位置

T-Kernel的系統(tǒng)結(jié)構如圖1所示,各功能模塊是以子系統(tǒng)(subsystem)的形式存在的,如設備管理模塊。

T-Kernel的內(nèi)核是系統(tǒng)默認的子系統(tǒng),它為應用層提供系統(tǒng)服務(SVC)接口,同時管理著其他子系統(tǒng)。子系統(tǒng)為應用層提供擴展服務(Extended SVC)調(diào)用接口。系統(tǒng)中各子系統(tǒng)運行在相互獨立的地址空間中,保證了系統(tǒng)的模塊化,易于擴充和裁減。

2.2 T-Kernel的系統(tǒng)狀態(tài)和任務調(diào)度

T-Kernel規(guī)范[1]中對系統(tǒng)狀態(tài)做了明確的劃分和定義,移植相關的狀態(tài)有:(1)任務態(tài) (Task Portion),指系統(tǒng)運行在應用層最高優(yōu)先級的就緒任務中;(2)任務無關態(tài) (Task Independent Portion),指系統(tǒng)的中斷和異常處理過程。任務無關態(tài)具有最高的執(zhí)行優(yōu)先權,可以中斷其它狀態(tài)的執(zhí)行。

T-Kernel內(nèi)核采用了基于優(yōu)先級的可搶先調(diào)度策略,優(yōu)先級相同的任務采用先進先出的時間片輪轉(zhuǎn)調(diào)度,允許任務動態(tài)更改優(yōu)先級。

T-Kernel的任務調(diào)度和切換是分離的過程。內(nèi)核中維護著按照優(yōu)先級排列的就緒任務TCB(Task Control Block)指針鏈表隊列。全局指針ctxtsk指向當前運行任務的TCB。有更高優(yōu)先級任務就緒時,全局指針schedtsk指向其TCB,此為任務調(diào)度過程;任務調(diào)度發(fā)生后,必須在條件滿足時,系統(tǒng)觸發(fā)軟中斷異常進行任務切換,將ctxtsk更新為schedtsk,程序轉(zhuǎn)入新任務運行。

3 Blackfin處理器概述

Blakcfin處理器內(nèi)核包含雙算術處理單元的DSP引擎,執(zhí)行RISK指令集,結(jié)合了優(yōu)異的數(shù)字信號處理功能和完善的控制功能。.

Blackfin內(nèi)核相關的寄存器除了堆棧和返回地址寄存器:SP(Stack Pointer),F(xiàn)P(Frame Pointer),RETS(Subroutine Return Address Register),RETI(Interrupt Return Address Register),通用數(shù)據(jù)寄存器R0~R7,通用地址寄存器P0~P7,還包含數(shù)字信號處理相關寄存器 L0~L3,LB0~LB1,LC0~LC1,LT0~LT1,ASTAT,A0~A1,I0~I3, B0~B3,M0~M3. 在任務切換和中斷前后處理中,需要進行寄存器保存恢復及相應的設置[2]。

Blackfin處理器內(nèi)核支持15個優(yōu)先級的中斷。ILAT寄存器顯示當前觸發(fā)的中斷;IMASK寄存器控制各優(yōu)先級中斷的使能和禁止;IPEND寄存器顯示當前執(zhí)行的中斷,其第4位IPEND[4]是全局中斷的使能和禁止位。T-Kernel運行在第15級(最低)中斷處理程序中,這樣系統(tǒng)運行于Supervisor Mode,可以獲得對處理器操作的最大權限[2]。

T-Kernel系統(tǒng)運行在ADSP-BF533 EZ-KIT LITE開發(fā)板,開發(fā)環(huán)境是ADI VisualDSP++4.5 Environment.

4 T-Kernel在BF533上的移植

4.1 系統(tǒng)中斷管理

T-Kernel對處理器中斷資源進行動態(tài)管理,在運行時任務可以動態(tài)更改中斷向量表、注冊和取消中斷,通過系統(tǒng)服務tk_def_int(Define Interrupt Handler) 來實現(xiàn)。

在中斷管理模塊的移植中,需要考慮以下三點:

(1)保證中斷狀態(tài)寄存器IMASK的全局性

在進行上下文保存恢復和臨界區(qū)管理時,必須維持IMASK寄存器為全局變量。如果每個任務都擁有一個局部的IMASK值,則一個任務等待的中斷可能在另一個任務運行時被禁止,造成系統(tǒng)對中斷無法實時響應。同時,tk_def_int函數(shù)需要實現(xiàn)不同任務對各級中斷定義的互斥功能,以保證全局 IMASK的有效和系統(tǒng)的穩(wěn)定。

(2)中斷前后處理

中斷前后處理是中斷管理移植的關鍵,影響到系統(tǒng)穩(wěn)定性和中斷處理的實時性。它對于任務是不可見過程,執(zhí)行不能被中斷。其主要操作包括:保存和恢復上下文;設置標志變量標示任務無關態(tài)的嵌套;更改堆棧指針使中斷子程序運行在處理器內(nèi)部RAM;取得當前觸發(fā)的最高優(yōu)先級中斷號對應的子程序地址進行調(diào)用;在中斷后處理判斷是否進行任務切換。

系統(tǒng)為中斷程序分配獨立的內(nèi)部堆棧,使中斷程序運行的地址空間獨立于任務和虛擬存儲地址,加快了中斷程序的處理速度,在系統(tǒng)進入省電模式停止了外部存儲器時也不影響對中斷喚醒的響應。在T-Kernel系統(tǒng)中,中斷處理屬于任務無關態(tài),其執(zhí)行優(yōu)先級高于任務態(tài),在中斷處理程序中發(fā)生的任務調(diào)度,需要延遲到中斷結(jié)束才能進行切換。當任務無關態(tài)運行無嵌套,系統(tǒng)允許任務切換,schedtsk不等于ctxtsk三個條件滿足時,中斷結(jié)束后即轉(zhuǎn)入任務切換。

(3)T-Kernel的系統(tǒng)時鐘中斷

T-Kernel的系統(tǒng)時鐘中斷使用Blackfin內(nèi)核的core timer 6號中斷。其前后處理步驟與(2)相同,為了保證系統(tǒng)穩(wěn)定性和實時性,一般為系統(tǒng)時鐘的中斷程序分配單獨的堆棧,使其在高速內(nèi)部RAM中執(zhí)行。

4.2 任務切換模塊的移植

任務切換包括任務間上下文切換和中斷到任務上下文切換,前者在臨界區(qū)結(jié)束時觸發(fā)軟中斷進入dispatch_entry()完成,后者則在中斷后處理中調(diào)用tk_ret_int()開始執(zhí)行。

 


圖2 任務切換流程圖

dispatch_entry()和tk_ret_int()的處理過程都是保存ctxtsk任務的上下文,替換ctxtsk為schedtsk,恢復其上下文,執(zhí)行流程如圖2所示。二者的不同在于dispatch_entry()軟中斷的優(yōu)先級為14級,而tk_ret_int()在中斷后處理中被調(diào)用,仍處于中斷過程,其優(yōu)先級由中斷處理程序的優(yōu)先級決定;這樣可能出現(xiàn)tk_ret_int()嵌套dispatch_entry()的情況,所以在從tk_ret_int()切入新任務或低功耗狀態(tài)之前需要判斷是否需要清除IPEND寄存器中斷執(zhí)行的標志。當沒有就緒任務時,schedtsk值為空,系統(tǒng)轉(zhuǎn)入低功耗狀態(tài)。[!--empirenews.page--]

T-Kernel系統(tǒng)中的每個任務可以定義一個特定的任務異常處理程序,任務異常處理被觸發(fā)后,優(yōu)先于該任務得到執(zhí)行。

4.3系統(tǒng)調(diào)用入口移植

T-Kernel對應用層調(diào)用系統(tǒng)服務和擴展服務進行了限制,只能調(diào)用相應的接口函數(shù)(以tk_***_***()命名的API),在接口函數(shù)中觸發(fā)軟中斷進入Call_entry(),在Call_entry()函數(shù)中才能取得實際服務函數(shù)(以_tk_***_***()命名)的入口地址執(zhí)行 [3]。處理流程如圖3所示。系統(tǒng)調(diào)用可能發(fā)生在中斷過程中,所以Call_entry()軟中斷異常的優(yōu)先級需要設為最高。Fncd是每個服務函數(shù)唯一的標識碼,從中可以判斷出該函數(shù)是系統(tǒng)服務還是子系統(tǒng)的擴展系統(tǒng)服務,后者需要通過svc_ientry()函數(shù)調(diào)用。

 


圖3 T-Kernel系統(tǒng)調(diào)用處理流程

5 移植測試

移植測試工作主要分為穩(wěn)定性測試和實時性測試兩部分。測試的目的是保證移植工作的正確性。

通過新建15個不同優(yōu)先級的任務進行休眠暫停請求異常處理和請求信號量等操作,同時定義計時器中斷喚醒任務,可以測試系統(tǒng)的穩(wěn)定性。移植系統(tǒng)的實時性可以通過任務的建立時間,結(jié)束時間,任務的切換時間,搶占時間,中斷延遲時間,信號量混洗時間等指標來確定。

任務切換時間為系統(tǒng)在兩個具有相同優(yōu)先級獨立任務之間切換所需的時間。搶占時間定義為系統(tǒng)控制從低優(yōu)先級任務轉(zhuǎn)移到高優(yōu)先級任務所花費的時間。中斷延遲時間指從中斷響應到中斷子程序語句得到執(zhí)行的時間間隔。信號量混洗時間指一個信號被釋放到等待該信號量的任務被激活的時間延遲[6]。部分的測試結(jié)果如表5.1所示。移植代碼編譯為速度優(yōu)化100%,時間單位是Blackfin處理器cycles寄存器所記錄的運行時鐘周期。可以看到,系統(tǒng)運行在 600MHz時的性能指標都在微秒級。

 

6 總結(jié)

本文針對Blackfin處理器(BF533)平臺上移植T-Kernel的應用需求,分析和歸納了移植的主要過程,總結(jié)了中斷管理、任務切換和系統(tǒng)調(diào)用接口三部分的移植方法,對系統(tǒng)的穩(wěn)定性和實時性進行相應的測試以保證移植工作的正確性。移植過程揭示了T-Kernel內(nèi)核任務調(diào)度的原理和技術細節(jié),對于其它RTOS的開發(fā)有很大的借鑒意義。

文中所討論的移植方法,沒有包括對于MMU(Memory Management Unit)管理模塊的移植,因為在絕大多數(shù)嵌入式實時性應用中,由于對速度和資源的限制,并不開啟處理器的MMU功能,如果在數(shù)據(jù)和信息處理的應用中有需求,可以針對特定處理器的MMU模塊進行相關代碼的移植。

(特別感謝上海易律電子劉湘毅的技術支持)

參考文獻

[1] T-Engine Forum T-Kernel Specification Version 1.00.00 2005

[2] ADI ADSP-BF533 Blackfin Processor Hardware Reference Revision 3.0 Feb 2004

[3] Mohit Sindhwani, Anatomy of a T-Engine System Call, page:www.onghu.com/te 2006

[4]T-Engine Forum T-Kernel Implementation guide to New Hardware Rev.1.00.01 2006.06.2

[5]黃天戍,李秀紅 RTOS數(shù)據(jù)采集系統(tǒng)中實時處理與高速性的設計考慮[J] 微計算機信息 No.28 P.95-97 2005

[6] 李慶誠,顧健 嵌入式實時操作系統(tǒng)性能測試方法研究 單片機與嵌入式系統(tǒng)應用

NO.8 P.19-21 2005

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉