周 杰
揚州工業職業技術學院,江蘇揚州 225127
DSP /BIOS實時多任務操作系統內核的研究
周 杰
揚州工業職業技術學院,江蘇揚州 225127
本文介紹了TI公司TMS320C6713的DSP/BIOS實時多任務操作系統內核,通過研究分析 DSP/BIOS的啟動順序,線程指令流在DSP中存在的方式以及調度的優先級,線程間的讓出與搶中,總結出多任務的執行狀態和調度的規律。最后將該多任務操作系統應于某伺服控制系統,取得了良好的效果。
BIOS;DSP; 線程搶占;任務
DSP/BIOS是TI公司特別為其TMS320C6000TM、TMS320 C28XTM系統DSP平臺所設計開發的一個尺寸可裁剪的實時多任務操作系統內核,是TI公司的Code Composer StudioTM開發工具的組成部分之一。
當一個應用程序啟動時,boot.s54(C54x 平臺)或autoinit.c和boot.snn(C600g 平臺)文件中的代碼決定了其啟動序列,這些文件的編譯版本由 biosi.ann 庫提供。一般BIOS啟動順序如下:
1)初始化DSP:DSP/BIOS程序從C或C++環境入口點c_ int00開始運行,而復位中斷向量被設置為復位后跳轉到c_int00,對C600來說,系統堆棧指針(B15)和全局頁指針(B14)被初始化分別指向.stack段的末尾和.bss段的開始。
2)當堆棧建立好后,初始化程序用.cinit段中的記錄初始化全局變量。
3)調用BIOS_init初始化程序中用到的DSP/BIOS 模塊,BIOS_init由配置生成并位于programcfg.snn文件中。主要完成三個子模塊的初始化。
HWI_init:硬件中斷,設置ISTP和中斷選擇寄存器。
HST_init:初始化主機I/O通道接口,該程序決定主機與目標DSP的連接方式;
IDL_init:空閑循環的指令計數。該程序用于校準CPU負荷里實時顯示的CPU負載值。
4)處理.pinit表:.pinit表包含了指向初始化函數的指針,這里主要初始化各種全局變量。
5)調用用戶應用程序的 mian函數:在所有DSP/BIOS模塊初始化完成之后,用戶mian 函數才會被調用。
6)調用BIOS_start啟動DSP/BIOS:該函數在programcfg.snn文件中,在用戶mian函數返回調用BIOS_start 。
7)執行空循環:有兩種方式可以調用該函數:第一種是任務管理器被使能,任務管理器在運行TSK_idle時會調用IDL_loop;第二種是任務管理器被禁用,則當BIOS start返回時緊接著調用TDL loop。
3線程調度
在DSP/BIOS中線程被定義為由DSP執行的任何獨立的指令流,一個線程可以是一段程序,一個函數或一個ISR調用。DSP/ BIOS支持多種不同優先級的線程,每種線程類型都有不同的執行和搶占特性。
硬件中斷(HWI),包括CKL函數,用于響應外部異步事件。
軟件中斷(HWI),包括PRD函數,軟件中斷通過在程序中調用SWI函數而觸發的。
DSP/BIOS調度器會運行處于就緒狀態的優先級最高線程,除非發生下列情況:
1)運行中的線程暫時禁止了部分或全部的硬件中斷(HWI disable),阻止了相應硬件 ISR運行;
2)運行中的線程暫時禁止了軟件中斷(SWI disable),阻止了任何更高優先級的軟件中斷搶占當前線程,但并不阻止硬件中斷搶占當前線程;
3)運行中的線程暫時禁止了任務調度(TSK disable),阻止了任務更高優先級的任務搶占當前線程,但并不阻止硬件中斷或軟件中斷搶占當前線程;
4)最高優先級的線程是一個被阻塞的任務線程,當任務調用了TSK sleep、LCK pend、MBX pend、或SEM pend時會發生阻塞。
任務有16個優先級,最低為0,最高為15。且優先級0保留給系統空閑任務。每個TSK對象總是處于如下四種可能的執行狀態之一:
1)運行狀態(Running):代表該任務當前正在系統處理器上執行。
2)就緒狀態(Ready): 代表任務已經被調度并在等待處理器上執行。
3)阻塞態(Blocked):代表任務必須等到某個事件發生或某些資源呆用時才能執行。
4)終止態(Terminated):代表任務已經被終止,不會再執行。
最高的任務優先級是TSK MAXPRI(15),最低的任務優先級是TSK MINPRI(1)。圖1說明了任務的狀態是如何改變的。

圖1 任務狀態化
TSK、SEMT和SIO模塊的函數可以改變任務的狀態:阻塞或終止當前運行的任務,使之前被掛起(阻塞)的任務就緒,以及重新調度當前線程等。
通過對DSP/BIOS實時搶占式內核的分析研究,將該操作系統用于某伺服系統。從復位狀態開始伺服系統需要實時向上位機發送一些系統的狀態信息。實踐證明該系統可以完成系統的功能要求取得很好的效果。
[1]Texas Instruments Incorporated.TI DSP/BIOS 用戶手冊與驅動開發[M].北京:清華大學出版社,2007.
[2]Texas Instruments Incorporated,TMS320C6000系列DSP的CPU與外設[M].北京:清華大學出版社,2007.
[3]汪安民,張松燦,常春藤,TMS320C6000 DSP實用技術與開發案例[M].北京:人民郵電出版社,2004,4.
[4]三恒星科技.TMS320C6712 DSP 原理與應用實例[M].北京:電子工業出版社,2009,4.
TP39
A
1674-6708(2010)33-0220-02
周杰,講師,主要從事計算機控制的研究