999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

UC/OS_II在浮點DSP上的移植和測試

2009-08-25 09:37:50李文新曹覲姝
新媒體研究 2009年15期

葛 瑩 李文新 許 珩 曹覲姝

[摘要]市面上的嵌入式操作系統種類繁多,UC/OS_II由于其簡單易學,注釋清晰,范例豐富,受到了廣泛的喜愛。詳細介紹UC/OS_II在浮點DSP TMS320VC33

上的移植過程,即數據類型轉化成編譯器能編譯的數據類型,設計UC/OS_II與DSP硬件接口,設計硬件抽象層函數,深入到底層細節。移植工作結束后還進行測試,測試結果證明UC/OS_II是一種穩定可靠的實時操作系統。

[關鍵詞]嵌入式實時操作系統 DSP 移植 測試

中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0810014-02

一、引言

UC/OS_II是一種源碼公開的占先式實時多任務操作系統,其大部分編碼都是由ANSI C編寫的,小部分與硬件相關的內容是由匯編寫成的,具有操作系統的基本功能,并有可剪裁,可移植性很高的特點。TMS320VC33是TI公司生產的高性能浮點DSP芯片,功能強大。本文針對UC/OS_II在TMS320vc33上的移植,著重討論了堆棧保存與恢復及任務切換等核心問題的分析與實現。UC/OS_II的基本結構比較明了,改寫的移植代碼都是和硬件處理器和編譯器相關的。

二、移植過程的設計和實現

移植分為DSP硬件驅動模塊和操作系統與DSP接口模塊兩部分。在DSP硬件驅動模塊中主要包括中斷向量,硬件初始化和時鐘初始化。操作系統與DSP接口模塊包括UC/OS_II數據類型移植,任務堆棧的設計和操作系統與DSP硬件的接口函數。

(一)數據類型重定義

在此文件中應該先完成數據類型的重新定義,堆棧數據類型的定義,堆棧增長方向的定義,臨界區開關中斷的方法,任務切換函數OS_TASK_SW的宏定義,數據類型聲明。

UC/OS_II訪問代碼臨界區時首先要禁止中斷,并且在訪問完畢后重新允許中斷。有三種方式可以實現,這里只能用通過狀態寄存器中的中斷使能位開關中斷的方式。

Cregisterunsigned int ST;

#defineOS_ENTER_CRITICAL();asm(“ANDN 2OOOH,ST”);

#defineOS_ENTER_CRITICAL();asm(“OR 2OOOH,ST”);

(二)改寫OSTaskStkInit()函數

OS_CPU_C.C中主要完成的是OSTaskStkInit()函數。此函數完成任務棧的初始化,使得任務棧的結構看起來如同在任務執行過程中發生過一次中斷,并將所有寄存器保存到堆棧一樣。CCS函數調用時的堆棧規則為:先將參數從左往右入棧,然后是函數返回地址入棧。按照此規則設計任務棧結構。VC33有28個寄存器,程序中應將寄存器全部入棧。

(三)OS_CPU_A.ASM

在此文件中要求用戶編寫四個匯編函數OSStartHighRdy(),OSCtxSw(),

OSIntCtxSw(),OSTickISR(),這四個函數具有公共部分:寄存器入棧和寄存器出棧。主要按照上面設計好的棧結構進行就好了。

函數OSIntCtxSw()具有特殊部分,該函數用于從中斷返回時進行任務切換,此處不再進行寄存器保存。同時還要進行指針的調整,去掉堆棧中一些不需要的內容,然后將寄存器全部出棧。

(四)時鐘中斷函數OSTickISR()偽碼如下

Void OSTickISR(void)

{

保存現場;

OSIntEnter();//DSP要求速度,用OSIntNesting++;代替

如果中斷嵌套層數是1則OSTCBCurOSTCB_StkPtr=當前SP;

OSTimeTick();

OSIntExit();

回復最高優先級任務的現場;

}

三、測試

軟件測試在軟件開發過程中是必不可少的,其重要程度不容忽視。歷史上曾出現過由于軟件錯誤而導致整個系統失敗的教訓。軟件測試的工作量往往占軟件開發總工作量的以上。測試步驟一般分為單元測試、集成測試、系統測試的步驟。

(一)單元測試

必須先通過編譯程序檢查,并且改正所有語法錯誤,采用白盒測試法,分析系統服務的邏輯結構、選用測試用例,盡可能實現條件覆蓋,分支覆蓋。

(二)集成測試

在單元測試之后,完成一定的功能時,可能會出現一些新的問題如跨越系統服務接口的數據是否會丟失全程數據結構是否會有問題產生的數據是否會被沖掉等等。這里采用了以下兩種方法:

等價類劃分法:等價類劃分是集成測試中的主要方法。窮盡的黑盒測試需要使用所有有效的和無效的輸入數據來測試程序,通常這是不現實的。因此選用最有代表性的輸入數據,以期用較小的代價暴露出較多的錯誤。

邊界值分析法:邊界值分析同樣是集成測試中很重要的方法。這是一種根據等價類邊界上或緊靠邊界的條件,選擇測試用例的更有效的方法。

測試過程中,在修改軟件錯誤后都進行了回歸測試,以發現是否會因系統的修改而帶來新的錯誤。

對嵌入式實時操作系統UC/OS_II的測試結果統計見圖1。

四、測試結論

1.EKnots節點過多將增加程序復雜性,UC/OS_II的程序基本節點度量為0,證明此操作系統內核為完全結構化程序。

2.EV(G)指通過結構化流程簡化后,圈復雜度用于表示程序復雜性,這里的圈復雜度測量值為4,正常范圍為0到500之間,復雜性不高。

3.結點度量用于表明程序實施時附加復雜性,由于操作系統結構特性導致系統節點數較大。但不影響系統正常功能與使用。

4.測試結果綜述,此操作系統可測試性好,易于維護,結構比較清晰。

UC/OS_II操作系統本身是非常穩定的,具有高可靠性。因其可裁剪性,內核占用空間小,是理想的嵌入式實時操作系統之一。有廣泛的利用價值和前景。

嵌入式系統是一個不斷發展的過程,相信隨著科技的進步,存在的部分問題也一定能夠得到妥善地解決。UC/OS_II實時操作系統將會用在越來越多的方面,它的性能也會越來越完善。

參考文獻:

[1]鐘堅文、蔡旭,基于UC/OS--II的CAN總線驅動程序設計,計算機信息,2005(7-2):35-37.

[2]Jean J.Labrosse著,邵貝貝等譯,嵌入式實時操作系統UC/OS-Ⅱ[M].第2版,北京:北京航空航天大學出版社,2003.5.

[3]劉和平、王維俊等,TMS320LF240X DSP C語言開發應用,北京:北京航空航天大學出版社.

[4]沈緒榜,嵌入式計算機系統的展望,《單片機與嵌入式系統應用》,2001.1.

[5]竇振中,嵌入式系統設計方法的演化從單片機到單片系統,《單片機與嵌入式系統應用》,2001.2.

[6]蔡建平,關于嵌入式應用開發技術,《單片機與嵌入式系統應用》,2001.3.

[7]何小慶,嵌入式實時操作系統的現狀和未來,《單片機與嵌入式系統應用》,2001.3.

[8]馬忠梅,《嵌入式應用設計模式》,《單片機與嵌入式系統應用》,2001.1.

作者簡介:

葛瑩(1983-),女,空間技術研究院510研究所,碩士研究生,研究方向:嵌入式操作系統;李文新(1969-),男,西北工業大學,研究方向:嵌入式軟件開發。

主站蜘蛛池模板: 欧美色视频网站| 40岁成熟女人牲交片免费| 亚洲乱码在线视频| 国产在线精品人成导航| 久无码久无码av无码| 国产精品无码AⅤ在线观看播放| 视频二区中文无码| 国产精品偷伦在线观看| 粉嫩国产白浆在线观看| 欧美午夜理伦三级在线观看| 天天操精品| 波多野结衣久久精品| 久久鸭综合久久国产| 欧美性天天| 亚欧美国产综合| 天天综合网色中文字幕| 免费a在线观看播放| 黄色在线不卡| 亚洲中文字幕23页在线| 亚洲中文无码av永久伊人| 亚洲国产系列| 国产区人妖精品人妖精品视频| 久久久久久尹人网香蕉| 亚洲黄色视频在线观看一区| 成人免费一区二区三区| 欧美一区二区啪啪| 欧美成人精品一区二区| 日本三级黄在线观看| 国产欧美日韩免费| 日韩免费中文字幕| 波多野结衣久久高清免费| 天天色综合4| 四虎永久在线| 日韩视频免费| 麻豆精品在线| 国产一级在线播放| 国产精彩视频在线观看| 怡红院美国分院一区二区| 欧美激情伊人| 91丝袜乱伦| 中文字幕亚洲电影| 国产精品永久久久久| 野花国产精品入口| 国外欧美一区另类中文字幕| 国产亚洲高清视频| 天天综合天天综合| 久久久波多野结衣av一区二区| 国产精品无码制服丝袜| 一级高清毛片免费a级高清毛片| 久久男人资源站| 国产高清精品在线91| 中文字幕无码中文字幕有码在线| 亚洲第一成年免费网站| 欧美激情视频二区| 亚洲有无码中文网| 国产探花在线视频| 欧美日韩亚洲国产| 欧美五月婷婷| 亚洲欧美激情另类| 亚洲视频四区| 91精品啪在线观看国产91九色| 最新国产成人剧情在线播放 | 国产精品偷伦在线观看| 热久久这里是精品6免费观看| 亚洲无线一二三四区男男| 日韩在线第三页| 日韩高清一区 | 国产高颜值露脸在线观看| 四虎成人在线视频| 欧美福利在线| 欧美综合一区二区三区| 国产成人高清精品免费软件| 蜜桃视频一区二区| 亚洲性网站| 欧美自慰一级看片免费| 欧美在线观看不卡| 亚洲欧美成aⅴ人在线观看| 久久久久久尹人网香蕉| 欧美亚洲国产日韩电影在线| 国产日韩欧美精品区性色| 91丨九色丨首页在线播放 | 天天操天天噜|