新聞中心

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

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

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

        系統中的每個任務可以定義一個特定的任務異常處理程序,任務異常處理被觸發后,優先于該任務得到執行。

        4.3系統調用入口移植

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

        圖3 系統調用處理流程

        5 移植測試

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

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

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

        任務切換時間

        搶占時間(中斷觸發)

        中斷延遲時間

        信號量混洗時間

        cycles

        1716

        1662

        424

        1584

        運行時間(600MHz)

        2.9us

        2.7us

        0.7 us

        2.6us

        表1 部分適時性測試時間結果

        6 總結

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

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

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

        參考文獻

        [1] 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 System Call, page:www.onghu.com/te 2006

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

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

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

        NO.8 P.19-21 2005


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 屯昌县| 安龙县| 寻甸| 古田县| 河东区| 山阳县| 哈尔滨市| 祥云县| 肃南| 临海市| 永修县| 江北区| 富顺县| 静宁县| 兰州市| 宜兰市| 五家渠市| 邯郸市| 昌图县| 特克斯县| 黄陵县| 小金县| 田东县| 通河县| 镇沅| 石门县| 怀宁县| 城固县| 方城县| 沙雅县| 竹溪县| 明水县| 巴青县| 张家港市| 达州市| 拜城县| 娄烦县| 乐清市| 咸宁市| 肇庆市| 贵定县|