新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > T-Kernel在Blackfin處理器上的移植分析

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

        作者: 時間:2012-03-20 來源:網絡 收藏

        1 概述

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

        本文分析內核調度原理和Blackfin處理器內核結構,歸納了在Blackfin處理器BF533系統移植過程中的三個主要問題:中斷管理,任務切換和系統調用入口三個模塊的實現方法,并討論了系統穩定性和實時性的測試以保證系統的穩定性和實時性。

        2 T-Kernel概述

        2.1 T-Kernel的系統結構

        圖1 T-Kernel的位置

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

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

        2.2 T-Kernel的系統狀態和任務調度

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

        T-Kernel內核采用了基于優先級的可搶先調度策略,優先級相同的任務采用先進先出的時間片輪轉調度,允許任務動態更改優先級。

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

        3 Blackfin處理器概述

        Blakcfin處理器內核包含雙算術處理單元的DSP引擎,執行RISK指令集,結合了優異的數字信號處理功能和完善的控制功能。.

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

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

        T-Kernel系統運行在ADSP-BF533 EZ-KIT LITE開發板,開發環境是ADI VisualDSP++4.5 Environment.


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉林市| 建瓯市| 永泰县| 黄龙县| 昭苏县| 南通市| 安丘市| 临海市| 桐柏县| 封开县| 屏山县| 西林县| 娱乐| 托克逊县| 林甸县| 内丘县| 九寨沟县| 剑河县| 隆回县| 汽车| 陕西省| 长岛县| 新源县| 渑池县| 花莲市| 灵璧县| 宣威市| 南宫市| 郸城县| 互助| 铜山县| 花垣县| 平武县| 玉门市| 白城市| 阿鲁科尔沁旗| 龙井市| 新沂市| 奉化市| 安吉县| 祁门县|