新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > T-Kernel在Blackfin處理器上的移植分析

T-Kernel在Blackfin處理器上的移植分析

作者: 時(shí)間:2012-03-20 來(lái)源:網(wǎng)絡(luò) 收藏

1 概述

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

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

2 T-Kernel概述

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

圖1 T-Kernel的位置

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

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

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

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

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

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

3 Blackfin處理器概述

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

Blackfin內(nèi)核相關(guān)的寄存器除了堆棧和返回地址寄存器: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ù)字信號(hào)處理相關(guān)寄存器 L0~L3,LB0~LB1,LC0~LC1,LT0~LT1,ASTAT,A0~A1,I0~I3, B0~B3,M0~M3. 在任務(wù)切換和中斷前后處理中,需要進(jìn)行寄存器保存恢復(fù)及相應(yīng)的設(shè)置[2]。

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

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: T-Kernel Blakfin T-Engine RTOS移植

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉