T-Kernel在Blackfin處理器上的移植分析
T-Kernel系統(tǒng)中的每個(gè)任務(wù)可以定義一個(gè)特定的任務(wù)異常處理程序,任務(wù)異常處理被觸發(fā)后,優(yōu)先于該任務(wù)得到執(zhí)行。
4.3系統(tǒng)調(diào)用入口移植
T-Kernel對(duì)應(yīng)用層調(diào)用系統(tǒng)服務(wù)和擴(kuò)展服務(wù)進(jìn)行了限制,只能調(diào)用相應(yīng)的接口函數(shù)(以tk_***_***()命名的API),在接口函數(shù)中觸發(fā)軟中斷進(jìn)入Call_entry(),在Call_entry()函數(shù)中才能取得實(shí)際服務(wù)函數(shù)(以_tk_***_***()命名)的入口地址執(zhí)行[3]。處理流程如圖3所示。系統(tǒng)調(diào)用可能發(fā)生在中斷過(guò)程中,所以Call_entry()軟中斷異常的優(yōu)先級(jí)需要設(shè)為最高。Fncd是每個(gè)服務(wù)函數(shù)唯一的標(biāo)識(shí)碼,從中可以判斷出該函數(shù)是系統(tǒng)服務(wù)還是子系統(tǒng)的擴(kuò)展系統(tǒng)服務(wù),后者需要通過(guò)svc_ientry()函數(shù)調(diào)用。
圖3 T-Kernel系統(tǒng)調(diào)用處理流程
5 移植測(cè)試
移植測(cè)試工作主要分為穩(wěn)定性測(cè)試和實(shí)時(shí)性測(cè)試兩部分。測(cè)試的目的是保證移植工作的正確性。
通過(guò)新建15個(gè)不同優(yōu)先級(jí)的任務(wù)進(jìn)行休眠暫停請(qǐng)求異常處理和請(qǐng)求信號(hào)量等操作,同時(shí)定義計(jì)時(shí)器中斷喚醒任務(wù),可以測(cè)試系統(tǒng)的穩(wěn)定性。移植系統(tǒng)的實(shí)時(shí)性可以通過(guò)任務(wù)的建立時(shí)間,結(jié)束時(shí)間,任務(wù)的切換時(shí)間,搶占時(shí)間,中斷延遲時(shí)間,信號(hào)量混洗時(shí)間等指標(biāo)來(lái)確定。
任務(wù)切換時(shí)間為系統(tǒng)在兩個(gè)具有相同優(yōu)先級(jí)獨(dú)立任務(wù)之間切換所需的時(shí)間。搶占時(shí)間定義為系統(tǒng)控制從低優(yōu)先級(jí)任務(wù)轉(zhuǎn)移到高優(yōu)先級(jí)任務(wù)所花費(fèi)的時(shí)間。中斷延遲時(shí)間指從中斷響應(yīng)到中斷子程序語(yǔ)句得到執(zhí)行的時(shí)間間隔。信號(hào)量混洗時(shí)間指一個(gè)信號(hào)被釋放到等待該信號(hào)量的任務(wù)被激活的時(shí)間延遲[6]。部分的測(cè)試結(jié)果如表5.1所示。移植代碼編譯為速度優(yōu)化100%,時(shí)間單位是Blackfin處理器cycles寄存器所記錄的運(yùn)行時(shí)鐘周期。可以看到,系統(tǒng)運(yùn)行在600MHz時(shí)的性能指標(biāo)都在微秒級(jí)。
任務(wù)切換時(shí)間 | 搶占時(shí)間(中斷觸發(fā)) | 中斷延遲時(shí)間 | 信號(hào)量混洗時(shí)間 | |
cycles | 1716 | 1662 | 424 | 1584 |
運(yùn)行時(shí)間(600MHz) | 2.9us | 2.7us | 0.7 us | 2.6us |
表1 部分適時(shí)性測(cè)試時(shí)間結(jié)果
6 總結(jié)
本文針對(duì)Blackfin處理器(BF533)平臺(tái)上移植T-Kernel的應(yīng)用需求,分析和歸納了移植的主要過(guò)程,總結(jié)了中斷管理、任務(wù)切換和系統(tǒng)調(diào)用接口三部分的移植方法,對(duì)系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性進(jìn)行相應(yīng)的測(cè)試以保證移植工作的正確性。移植過(guò)程揭示了T-Kernel內(nèi)核任務(wù)調(diào)度的原理和技術(shù)細(xì)節(jié),對(duì)于其它RTOS的開(kāi)發(fā)有很大的借鑒意義。
文中所討論的移植方法,沒(méi)有包括對(duì)于MMU(Memory Management Unit)管理模塊的移植,因?yàn)樵诮^大多數(shù)嵌入式實(shí)時(shí)性應(yīng)用中,由于對(duì)速度和資源的限制,并不開(kāi)啟處理器的MMU功能,如果在數(shù)據(jù)和信息處理的應(yīng)用中有需求,可以針對(duì)特定處理器的MMU模塊進(jìn)行相關(guān)代碼的移植。
(特別感謝上海易律電子劉湘毅的技術(shù)支持)
參考文獻(xiàn)
[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)中實(shí)時(shí)處理與高速性的設(shè)計(jì)考慮[J] 微計(jì)算機(jī)信息 No.28 P.95-97 2005
[6] 李慶誠(chéng),顧健 嵌入式實(shí)時(shí)操作系統(tǒng)性能測(cè)試方法研究 單片機(jī)與嵌入式系統(tǒng)應(yīng)用
NO.8 P.19-21 2005
評(píng)論