国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UC/OS_II在浮點(diǎn)DSP上的移植和測(cè)試

2009-08-25 09:37李文新曹覲姝
新媒體研究 2009年15期
關(guān)鍵詞:移植測(cè)試

葛 瑩 李文新 許 珩 曹覲姝

[摘要]市面上的嵌入式操作系統(tǒng)種類(lèi)繁多,UC/OS_II由于其簡(jiǎn)單易學(xué),注釋清晰,范例豐富,受到了廣泛的喜愛(ài)。詳細(xì)介紹UC/OS_II在浮點(diǎn)DSP TMS320VC33

上的移植過(guò)程,即數(shù)據(jù)類(lèi)型轉(zhuǎn)化成編譯器能編譯的數(shù)據(jù)類(lèi)型,設(shè)計(jì)UC/OS_II與DSP硬件接口,設(shè)計(jì)硬件抽象層函數(shù),深入到底層細(xì)節(jié)。移植工作結(jié)束后還進(jìn)行測(cè)試,測(cè)試結(jié)果證明UC/OS_II是一種穩(wěn)定可靠的實(shí)時(shí)操作系統(tǒng)。

[關(guān)鍵詞]嵌入式實(shí)時(shí)操作系統(tǒng) DSP 移植 測(cè)試

中圖分類(lèi)號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0810014-02

一、引言

UC/OS_II是一種源碼公開(kāi)的占先式實(shí)時(shí)多任務(wù)操作系統(tǒng),其大部分編碼都是由ANSI C編寫(xiě)的,小部分與硬件相關(guān)的內(nèi)容是由匯編寫(xiě)成的,具有操作系統(tǒng)的基本功能,并有可剪裁,可移植性很高的特點(diǎn)。TMS320VC33是TI公司生產(chǎn)的高性能浮點(diǎn)DSP芯片,功能強(qiáng)大。本文針對(duì)UC/OS_II在TMS320vc33上的移植,著重討論了堆棧保存與恢復(fù)及任務(wù)切換等核心問(wèn)題的分析與實(shí)現(xiàn)。UC/OS_II的基本結(jié)構(gòu)比較明了,改寫(xiě)的移植代碼都是和硬件處理器和編譯器相關(guān)的。

二、移植過(guò)程的設(shè)計(jì)和實(shí)現(xiàn)

移植分為DSP硬件驅(qū)動(dòng)模塊和操作系統(tǒng)與DSP接口模塊兩部分。在DSP硬件驅(qū)動(dòng)模塊中主要包括中斷向量,硬件初始化和時(shí)鐘初始化。操作系統(tǒng)與DSP接口模塊包括UC/OS_II數(shù)據(jù)類(lèi)型移植,任務(wù)堆棧的設(shè)計(jì)和操作系統(tǒng)與DSP硬件的接口函數(shù)。

(一)數(shù)據(jù)類(lèi)型重定義

在此文件中應(yīng)該先完成數(shù)據(jù)類(lèi)型的重新定義,堆棧數(shù)據(jù)類(lèi)型的定義,堆棧增長(zhǎng)方向的定義,臨界區(qū)開(kāi)關(guān)中斷的方法,任務(wù)切換函數(shù)OS_TASK_SW的宏定義,數(shù)據(jù)類(lèi)型聲明。

UC/OS_II訪問(wèn)代碼臨界區(qū)時(shí)首先要禁止中斷,并且在訪問(wèn)完畢后重新允許中斷。有三種方式可以實(shí)現(xiàn),這里只能用通過(guò)狀態(tài)寄存器中的中斷使能位開(kāi)關(guān)中斷的方式。

Cregisterunsigned int ST;

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

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

(二)改寫(xiě)OSTaskStkInit()函數(shù)

OS_CPU_C.C中主要完成的是OSTaskStkInit()函數(shù)。此函數(shù)完成任務(wù)棧的初始化,使得任務(wù)棧的結(jié)構(gòu)看起來(lái)如同在任務(wù)執(zhí)行過(guò)程中發(fā)生過(guò)一次中斷,并將所有寄存器保存到堆棧一樣。CCS函數(shù)調(diào)用時(shí)的堆棧規(guī)則為:先將參數(shù)從左往右入棧,然后是函數(shù)返回地址入棧。按照此規(guī)則設(shè)計(jì)任務(wù)棧結(jié)構(gòu)。VC33有28個(gè)寄存器,程序中應(yīng)將寄存器全部入棧。

(三)OS_CPU_A.ASM

在此文件中要求用戶(hù)編寫(xiě)四個(gè)匯編函數(shù)OSStartHighRdy(),OSCtxSw(),

OSIntCtxSw(),OSTickISR(),這四個(gè)函數(shù)具有公共部分:寄存器入棧和寄存器出棧。主要按照上面設(shè)計(jì)好的棧結(jié)構(gòu)進(jìn)行就好了。

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

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

Void OSTickISR(void)

{

保存現(xiàn)場(chǎng);

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

如果中斷嵌套層數(shù)是1則OSTCBCurOSTCB_StkPtr=當(dāng)前SP;

OSTimeTick();

OSIntExit();

回復(fù)最高優(yōu)先級(jí)任務(wù)的現(xiàn)場(chǎng);

}

三、測(cè)試

軟件測(cè)試在軟件開(kāi)發(fā)過(guò)程中是必不可少的,其重要程度不容忽視。歷史上曾出現(xiàn)過(guò)由于軟件錯(cuò)誤而導(dǎo)致整個(gè)系統(tǒng)失敗的教訓(xùn)。軟件測(cè)試的工作量往往占軟件開(kāi)發(fā)總工作量的以上。測(cè)試步驟一般分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試的步驟。

(一)單元測(cè)試

必須先通過(guò)編譯程序檢查,并且改正所有語(yǔ)法錯(cuò)誤,采用白盒測(cè)試法,分析系統(tǒng)服務(wù)的邏輯結(jié)構(gòu)、選用測(cè)試用例,盡可能實(shí)現(xiàn)條件覆蓋,分支覆蓋。

(二)集成測(cè)試

在單元測(cè)試之后,完成一定的功能時(shí),可能會(huì)出現(xiàn)一些新的問(wèn)題如跨越系統(tǒng)服務(wù)接口的數(shù)據(jù)是否會(huì)丟失全程數(shù)據(jù)結(jié)構(gòu)是否會(huì)有問(wèn)題產(chǎn)生的數(shù)據(jù)是否會(huì)被沖掉等等。這里采用了以下兩種方法:

等價(jià)類(lèi)劃分法:等價(jià)類(lèi)劃分是集成測(cè)試中的主要方法。窮盡的黑盒測(cè)試需要使用所有有效的和無(wú)效的輸入數(shù)據(jù)來(lái)測(cè)試程序,通常這是不現(xiàn)實(shí)的。因此選用最有代表性的輸入數(shù)據(jù),以期用較小的代價(jià)暴露出較多的錯(cuò)誤。

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

測(cè)試過(guò)程中,在修改軟件錯(cuò)誤后都進(jìn)行了回歸測(cè)試,以發(fā)現(xiàn)是否會(huì)因系統(tǒng)的修改而帶來(lái)新的錯(cuò)誤。

對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)UC/OS_II的測(cè)試結(jié)果統(tǒng)計(jì)見(jiàn)圖1。

四、測(cè)試結(jié)論

1.EKnots節(jié)點(diǎn)過(guò)多將增加程序復(fù)雜性,UC/OS_II的程序基本節(jié)點(diǎn)度量為0,證明此操作系統(tǒng)內(nèi)核為完全結(jié)構(gòu)化程序。

2.EV(G)指通過(guò)結(jié)構(gòu)化流程簡(jiǎn)化后,圈復(fù)雜度用于表示程序復(fù)雜性,這里的圈復(fù)雜度測(cè)量值為4,正常范圍為0到500之間,復(fù)雜性不高。

3.結(jié)點(diǎn)度量用于表明程序?qū)嵤r(shí)附加復(fù)雜性,由于操作系統(tǒng)結(jié)構(gòu)特性導(dǎo)致系統(tǒng)節(jié)點(diǎn)數(shù)較大。但不影響系統(tǒng)正常功能與使用。

4.測(cè)試結(jié)果綜述,此操作系統(tǒng)可測(cè)試性好,易于維護(hù),結(jié)構(gòu)比較清晰。

UC/OS_II操作系統(tǒng)本身是非常穩(wěn)定的,具有高可靠性。因其可裁剪性,內(nèi)核占用空間小,是理想的嵌入式實(shí)時(shí)操作系統(tǒng)之一。有廣泛的利用價(jià)值和前景。

嵌入式系統(tǒng)是一個(gè)不斷發(fā)展的過(guò)程,相信隨著科技的進(jìn)步,存在的部分問(wèn)題也一定能夠得到妥善地解決。UC/OS_II實(shí)時(shí)操作系統(tǒng)將會(huì)用在越來(lái)越多的方面,它的性能也會(huì)越來(lái)越完善。

參考文獻(xiàn):

[1]鐘堅(jiān)文、蔡旭,基于UC/OS--II的CAN總線驅(qū)動(dòng)程序設(shè)計(jì),計(jì)算機(jī)信息,2005(7-2):35-37.

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

[3]劉和平、王維俊等,TMS320LF240X DSP C語(yǔ)言開(kāi)發(fā)應(yīng)用,北京:北京航空航天大學(xué)出版社.

[4]沈緒榜,嵌入式計(jì)算機(jī)系統(tǒng)的展望,《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》,2001.1.

[5]竇振中,嵌入式系統(tǒng)設(shè)計(jì)方法的演化從單片機(jī)到單片系統(tǒng),《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》,2001.2.

[6]蔡建平,關(guān)于嵌入式應(yīng)用開(kāi)發(fā)技術(shù),《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》,2001.3.

[7]何小慶,嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)狀和未來(lái),《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》,2001.3.

[8]馬忠梅,《嵌入式應(yīng)用設(shè)計(jì)模式》,《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》,2001.1.

作者簡(jiǎn)介:

葛瑩(1983-),女,空間技術(shù)研究院510研究所,碩士研究生,研究方向:嵌入式操作系統(tǒng);李文新(1969-),男,西北工業(yè)大學(xué),研究方向:嵌入式軟件開(kāi)發(fā)。

猜你喜歡
移植測(cè)試
心理測(cè)試
基于FreeRTOS系統(tǒng)和LwIP協(xié)議棧的網(wǎng)絡(luò)通訊
西方音樂(lè)元素在二胡演奏中的移植
“移植”瘦人糞便能減肥?
心理小測(cè)試
測(cè)試
小測(cè)試:你對(duì)電子郵件上癮了嗎?
安溪县| 尼玛县| 杭州市| 天台县| 得荣县| 兖州市| 通化县| 资阳市| 鄂托克前旗| 裕民县| 揭阳市| 青神县| 志丹县| 通化市| 定远县| 抚远县| 鄂伦春自治旗| 来宾市| 成都市| 庐江县| 泊头市| 玉屏| 得荣县| 安福县| 溧水县| 三原县| 江永县| 乌拉特后旗| 安西县| 天长市| 江油市| 读书| 新野县| 黔西县| 乌兰浩特市| 仁怀市| 景洪市| 成都市| 浦东新区| 和林格尔县| 图们市|