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

基于全數(shù)字仿真的飛控嵌入式軟件測(cè)試方法與實(shí)現(xiàn)

2023-05-24 14:45:30張翔彭琿張曉娜劉志浩
無(wú)線互聯(lián)科技 2023年5期

張翔 彭琿 張曉娜 劉志浩

摘要:文章以全數(shù)字仿真測(cè)試平臺(tái)為基礎(chǔ),針對(duì)飛控嵌入式軟件的典型運(yùn)行環(huán)境,提出了飛控嵌入式軟件在動(dòng)態(tài)測(cè)試條件下的仿真測(cè)試環(huán)境構(gòu)建方法,并以某型號(hào)飛控嵌入式軟件為被測(cè)軟件,構(gòu)建了基于嵌入式CPU模擬器的全數(shù)字仿真測(cè)試環(huán)境,設(shè)計(jì)并實(shí)現(xiàn)了飛控軟件外部運(yùn)行環(huán)境的仿真。關(guān)鍵詞:仿真環(huán)境;飛控軟件;軟件測(cè)試;故障注入

中圖分類號(hào):TP311.5文獻(xiàn)標(biāo)志碼:A

0 引言

飛行控制軟件是飛行器姿態(tài)、速度、方向等控制的神經(jīng)中樞,是飛控計(jì)算機(jī)系統(tǒng)中最重要的軟件之一。飛控軟件的缺陷可能直接導(dǎo)致重大經(jīng)濟(jì)損失甚至威脅人的生命安全,所以對(duì)飛控軟件進(jìn)行全面充分的測(cè)試顯得尤為重要。目前,飛控計(jì)算機(jī)的系統(tǒng)軟件和硬件都具有很強(qiáng)的耦合性[1]。軟件實(shí)現(xiàn)的不同功能絕大多數(shù)依賴于計(jì)算機(jī)系統(tǒng)硬件的結(jié)構(gòu)、輸入輸出端口配置和接口特性。硬件設(shè)備研制周期長(zhǎng)、可用數(shù)量少、測(cè)試手段受限,使得軟件研制進(jìn)度受到了硬件研制進(jìn)度的嚴(yán)重制約,進(jìn)而導(dǎo)致軟件開發(fā)進(jìn)度拖延、測(cè)試不充分[2]。

DSP C6x系列處理器廣泛用于處理飛控軟件指令、通信、控制,是應(yīng)用較多的典型嵌入式處理器。本文以某型號(hào)飛行控制嵌入式軟件為被測(cè)軟件樣例,采用全數(shù)字仿真模擬技術(shù)搭建仿真測(cè)試平臺(tái),介紹了基于DSP6x系列CPU模擬器的飛控嵌入式軟件仿真測(cè)試方法和實(shí)現(xiàn)。

1 飛控嵌入式軟件全數(shù)字仿真測(cè)試環(huán)境構(gòu)建

1.1 總體架構(gòu)設(shè)計(jì)

全數(shù)字仿真環(huán)境在宿主機(jī)上構(gòu)造嵌入式軟件運(yùn)行所必需的硬件環(huán)境,為嵌入式軟件的運(yùn)行提供一個(gè)精確的數(shù)字化硬件環(huán)境模型[3]。嵌入式軟件真正運(yùn)行在目標(biāo)硬件之前,最大限度地模擬出目標(biāo)硬件及所有交聯(lián)外圍設(shè)備,通過(guò)模擬界面完成功能的顯示,對(duì)嵌入式軟件進(jìn)行充分全面的測(cè)試,以找出軟件缺陷。

飛控嵌入式軟件全數(shù)字仿真測(cè)試環(huán)境基本框架如圖1所示,全數(shù)字仿真測(cè)試平臺(tái)框架由交互界面、測(cè)試用例、故障注入、外設(shè)建模、覆蓋測(cè)試和代碼追蹤等功能模塊組成。嵌入式模擬器由流水線模擬、端口仿真、DSP指令集仿真等模塊構(gòu)成。

1.2 DSP C6x模擬器的建模與實(shí)現(xiàn)

嵌入式CPU的仿真采取基于解釋的指令集仿真策略,仿真運(yùn)行時(shí)需要經(jīng)過(guò)類似于處理器硬件的取指、譯碼、執(zhí)行的操作過(guò)程,實(shí)現(xiàn)對(duì)指令的仿真[4]。嵌入式DSP C6X處理器采用模塊化的結(jié)構(gòu)設(shè)計(jì),每個(gè)模塊均采用獨(dú)立類的結(jié)構(gòu)進(jìn)行設(shè)計(jì)封裝,模塊與模塊之間采用通用、標(biāo)準(zhǔn)化的數(shù)字接口。在外設(shè)接口仿真模型中,采用統(tǒng)一平臺(tái)的開發(fā)接口環(huán)境,便于系統(tǒng)的集成和一致性[5]。DSP C6x模擬器的架構(gòu)設(shè)計(jì)如圖2所示,包括端口仿真、中斷仿真、流水線仿真、指令解析、內(nèi)存仿真、總線仿真、寄存器仿真和時(shí)鐘仿真模塊。在模擬器運(yùn)行過(guò)程中,指令集仿真器循環(huán)執(zhí)行“取指、譯碼、執(zhí)行”3個(gè)步驟[6]。

2 飛控嵌入式軟件外設(shè)接口仿真方法

2.1 實(shí)現(xiàn)原理

在嵌入式軟件的外部接口中,DSP C6X模擬器與外設(shè)接口的訪問(wèn)通過(guò)外部接口寄存器進(jìn)行。如圖3所示,每個(gè)外部接口的寄存器與具體地址空間一一對(duì)應(yīng),訪問(wèn)外部接口寄存器實(shí)際就是訪問(wèn)特殊的地址空間,通過(guò)地址空間和函數(shù)綁定,建立起唯一的外設(shè)接口函數(shù),從而實(shí)現(xiàn)外部接口的仿真。例如,在外設(shè)接口函數(shù)1中,唯一對(duì)應(yīng)于端口地址集1的話,則端口地址集1的外部接口則通過(guò)外設(shè)接口函數(shù)1實(shí)現(xiàn)。

2.2 外設(shè)接口函數(shù)實(shí)現(xiàn)

在真實(shí)硬件環(huán)境中,某型號(hào)飛控嵌入式軟件運(yùn)行在處理器型號(hào)為DSP C6713的電子設(shè)備上,此電子設(shè)備能定時(shí)采集飛行器飛行速度、姿態(tài)等數(shù)據(jù),并具備進(jìn)行數(shù)據(jù)處理、轉(zhuǎn)換和通信等功能。該電子設(shè)備包括模擬量功能模塊、1553B總線等,主要接口有AD/DA接口、串口等。對(duì)其外設(shè)接口進(jìn)行仿真實(shí)現(xiàn),類圖設(shè)計(jì)如圖4所示。

2.2.1 AD/DA接口

模擬/數(shù)字轉(zhuǎn)化功能模塊包含8路的AD輸入通道和8路的DA輸出通道,其AD/DA接口的設(shè)計(jì)實(shí)現(xiàn)模式為:程序在每一個(gè)循環(huán)周期內(nèi),采集一次AD通道數(shù)據(jù),并把采集到的數(shù)據(jù)通過(guò)DA轉(zhuǎn)化輸出到DA通道。當(dāng)輸出的DA通道數(shù)據(jù)小于其門限值時(shí),則輸出的數(shù)據(jù)為DA轉(zhuǎn)化后的數(shù)值;而當(dāng)輸出的DA通道數(shù)據(jù)大于其門限值時(shí),則輸出的數(shù)據(jù)為門限值。

2.2.2 串口

串口功能模塊包含RS422和RS485兩種協(xié)議的串口通道,其串口的設(shè)計(jì)實(shí)現(xiàn)模式為:在程序運(yùn)行的每個(gè)主循環(huán)周期內(nèi),嵌入式CPU模擬器對(duì)串口的數(shù)據(jù)進(jìn)行采集,判斷數(shù)據(jù)格式是否符合串口的數(shù)據(jù)幀格式。如果數(shù)據(jù)格式正確,模擬器就對(duì)數(shù)據(jù)進(jìn)行解析,對(duì)數(shù)據(jù)進(jìn)行處理與傳輸;反之,如果格式錯(cuò)誤,就進(jìn)行錯(cuò)誤信息的反饋。

2.2.3 1553B總線接口

1553B總線接口是滿足1553B協(xié)議的一個(gè)通道,其設(shè)計(jì)實(shí)現(xiàn)模式為:程序系統(tǒng)啟動(dòng)時(shí),啟動(dòng)并讀取配置文件,依據(jù)配置文件對(duì)1553B總線模塊進(jìn)行初始化設(shè)置。在程序運(yùn)行的每個(gè)主循環(huán)周期內(nèi),嵌入式CPU模擬器對(duì)1553B總線端口進(jìn)行訪問(wèn)。如果端口有數(shù)據(jù),就采集并接收數(shù)據(jù);如果端口沒有數(shù)據(jù),就會(huì)反饋無(wú)數(shù)據(jù)的信息。

3 基于DSP C6x模擬器的飛控軟件仿真測(cè)試與實(shí)現(xiàn)

實(shí)現(xiàn)對(duì)外設(shè)接口的仿真后,測(cè)試人員就能夠在沒有硬件條件支持的情況下,實(shí)現(xiàn)對(duì)某型號(hào)飛控嵌入式軟件的測(cè)試,還能靈活、方便地模擬硬件故障,利用構(gòu)建的全數(shù)字仿真測(cè)試環(huán)境對(duì)被測(cè)軟件進(jìn)行故障注入測(cè)試[7]。

3.1 動(dòng)態(tài)測(cè)試

在構(gòu)建的全數(shù)字仿真測(cè)試環(huán)境中運(yùn)行被測(cè)軟件,利用動(dòng)態(tài)測(cè)試的方法對(duì)飛控軟件接口進(jìn)行測(cè)試[8]。測(cè)試過(guò)程中共發(fā)現(xiàn)某型號(hào)飛控嵌入式的軟件缺陷有2個(gè),下面對(duì)測(cè)試結(jié)果進(jìn)行簡(jiǎn)單分析。

3.1.1 內(nèi)存分配缺陷

在對(duì)某型號(hào)飛控嵌入式軟件進(jìn)行多次動(dòng)態(tài)內(nèi)存分配后,會(huì)出現(xiàn)內(nèi)存分配失敗的情況,導(dǎo)致軟件數(shù)據(jù)無(wú)法及時(shí)更新,數(shù)據(jù)發(fā)生錯(cuò)亂。在使用全數(shù)字仿真測(cè)試環(huán)境中的內(nèi)存分析工具對(duì)被測(cè)軟件的動(dòng)態(tài)內(nèi)存分配過(guò)程進(jìn)行分析后,發(fā)現(xiàn)軟件在內(nèi)存分配的過(guò)程中,未及時(shí)釋放內(nèi)存,導(dǎo)致內(nèi)存溢出。

內(nèi)存分配軟件缺陷源碼如下:

for (index = 0;index<10;index++)

{

testptr[index] = (int *)malloc(100*sizeof(int));

}

3.1.2 串口數(shù)組越界缺陷

在串口數(shù)據(jù)采集時(shí),如果對(duì)串口進(jìn)行多包數(shù)據(jù)注入,會(huì)導(dǎo)致被測(cè)軟件接收數(shù)據(jù)出現(xiàn)錯(cuò)誤。通過(guò)對(duì)被測(cè)軟件進(jìn)行動(dòng)態(tài)測(cè)試可發(fā)現(xiàn)在串口實(shí)現(xiàn)函數(shù)中,變量Index達(dá)到最大值時(shí),仍然會(huì)對(duì)UARTRX[Index++]數(shù)組進(jìn)行賦值操作,導(dǎo)致數(shù)組索引超出定義的長(zhǎng)度,從而產(chǎn)生數(shù)組越界錯(cuò)誤。數(shù)組越界軟件缺陷代碼如下。

for(Index = 0;Index

{

UartTemp = read_data(rUARTRX);

UARTRX[Index] = UartTemp;

}

UARTRX[Index++] = '\\0';

3.2 故障注入測(cè)試

故障可分為硬件故障、通信故障和軟件故障3種類型,而本文對(duì)飛控嵌入式軟件系統(tǒng)的測(cè)試以處理器內(nèi)存故障、串口寄存器故障和數(shù)據(jù)溢出故障為3種故障類型典型進(jìn)行說(shuō)明。

3.2.1 處理器內(nèi)存故障

內(nèi)存故障是指處理器中的RAM、ROM、FLASH等內(nèi)存出現(xiàn)異常,包括內(nèi)存“寫故障”、內(nèi)存“讀故障”和FLASH“讀寫故障”。在內(nèi)存故障模擬中,向指定的內(nèi)存地址寫入錯(cuò)誤的數(shù)據(jù)或者把指定內(nèi)存空間的數(shù)據(jù)清空,可以有效地模擬內(nèi)存故障。

3.2.2 串口寄存器通信故障

寄存器故障是處理器的寄存器值發(fā)生了變化,與正常的值不一致,原因可能是受電磁影響,致使寄存器的數(shù)值發(fā)生0和1的反轉(zhuǎn)。在被測(cè)軟件運(yùn)行過(guò)程中,通過(guò)修改嵌入式模擬器中寄存器的值,可直接實(shí)現(xiàn)寄存器故障的模擬。

3.2.3 數(shù)據(jù)溢出軟件故障

數(shù)據(jù)溢出故障是指被測(cè)軟件在運(yùn)行過(guò)程中,數(shù)據(jù)產(chǎn)生了溢出。無(wú)論是定點(diǎn)數(shù)還是浮點(diǎn)數(shù)運(yùn)算,都有可能產(chǎn)生溢出。數(shù)據(jù)溢出包括數(shù)據(jù)計(jì)算溢出和數(shù)據(jù)接收存儲(chǔ)溢出。數(shù)據(jù)計(jì)算溢出是指數(shù)據(jù)運(yùn)算時(shí),計(jì)算結(jié)果超出指定數(shù)據(jù)結(jié)果的范圍。數(shù)據(jù)接收存儲(chǔ)溢出是指接收的數(shù)據(jù)超過(guò)分配的存儲(chǔ)空間時(shí),數(shù)據(jù)不斷存儲(chǔ)導(dǎo)致覆蓋其他內(nèi)存段數(shù)據(jù)的現(xiàn)象。這種情況通常出現(xiàn)在被測(cè)軟件中的全局?jǐn)?shù)組或者結(jié)構(gòu)體中。

4 結(jié)語(yǔ)

本文基于全數(shù)字仿真測(cè)試平臺(tái)對(duì)某型號(hào)飛控嵌入式軟件的運(yùn)行環(huán)境進(jìn)行虛擬化構(gòu)建,以典型的嵌入式飛控軟件為被測(cè)對(duì)象,采用動(dòng)態(tài)運(yùn)行測(cè)試和故障注入測(cè)試對(duì)其進(jìn)行全面測(cè)試。通過(guò)測(cè)試,本研究找出兩個(gè)較為嚴(yán)重的軟件缺陷,驗(yàn)證了基于DSP C6x模擬器的全數(shù)字仿真測(cè)試環(huán)境在飛控嵌入式軟件測(cè)試中的靈活性和有效性。

參考文獻(xiàn)

[1]項(xiàng)文成.通用嵌入式虛擬驗(yàn)證系統(tǒng)中SPARCV8仿真核的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.

[2]王乾宇,朱小冬,王毅剛,等.嵌入式軟件仿真測(cè)試環(huán)境實(shí)時(shí)任務(wù)調(diào)度的研究[J].計(jì)算機(jī)測(cè)量與控制,2012(20):1162-1165.

[3]葉志玲,王向暉.基于CMMI星載嵌入式軟件測(cè)試技術(shù)研究[J].計(jì)算機(jī)測(cè)量與控制,2013(4):836-838.

[4]肖前遠(yuǎn).航空嵌入式軟件全數(shù)字仿真測(cè)試技術(shù)研究[D].南京:南京航空航天大學(xué),2010.

[5]蘇銀科,李艷雷,周平,等.基于故障注入的實(shí)時(shí)嵌入式軟件仿真測(cè)試技術(shù)研究[J].導(dǎo)航定位與授時(shí),2014(3):69-73.

[6]陳佐,張懷相,方景龍.嵌入式軟件自動(dòng)化測(cè)試技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2018(39):3126-3131.

[7]黎暉,石小華,林柯軍,等.工程裝備嵌入式軟件測(cè)試環(huán)境平臺(tái)技術(shù)研究[J].計(jì)算機(jī)測(cè)量與控制,2016(24):10-12.

[8]許福,金茂忠,劉輝,等.基于仿真器的嵌入式軟件單元測(cè)試方法[J].北京航空航天大學(xué)學(xué)報(bào),2012(12):1686-1690.

(編輯 王永超)

主站蜘蛛池模板: 中文字幕亚洲电影| 丰满人妻被猛烈进入无码| 国产精品无码久久久久久| 香蕉蕉亚亚洲aav综合| 午夜天堂视频| 免费黄色国产视频| 国产一级精品毛片基地| 亚洲最大福利视频网| 午夜丁香婷婷| 日韩第一页在线| 亚洲人成网站观看在线观看| 99国产精品一区二区| 久久精品人人做人人综合试看| 91香蕉国产亚洲一二三区| 人人艹人人爽| 国产精品视频白浆免费视频| 国产精品粉嫩| 亚洲欧美日韩中文字幕在线| 日韩欧美在线观看| 这里只有精品在线| 久久久久无码国产精品不卡| 一本色道久久88亚洲综合| 中文字幕在线视频免费| 区国产精品搜索视频| 国产AV毛片| 波多野结衣一区二区三区四区视频 | 免费一级毛片| 日韩一区精品视频一区二区| 国产在线高清一级毛片| 欧洲亚洲欧美国产日本高清| 视频二区亚洲精品| 国内黄色精品| 99re经典视频在线| 亚洲va在线∨a天堂va欧美va| 欧美精品H在线播放| 麻豆国产精品| 中文精品久久久久国产网址| 91在线视频福利| 欧洲高清无码在线| 国产精品自拍露脸视频| 亚洲国产天堂久久综合226114| 精品国产乱码久久久久久一区二区| 精品视频福利| 高清色本在线www| 在线播放91| 国产精品成| 欧美人与动牲交a欧美精品| 国产精品污视频| 爱色欧美亚洲综合图区| www.亚洲一区| 99这里只有精品在线| 秋霞一区二区三区| 热久久综合这里只有精品电影| 91色国产在线| 日韩美毛片| 亚洲欧洲免费视频| 日本日韩欧美| 久久国产精品娇妻素人| 区国产精品搜索视频| 亚洲国产高清精品线久久| 丁香五月激情图片| 亚洲精品777| 久久久噜噜噜| www精品久久| 日本高清在线看免费观看| 成人在线天堂| 香蕉伊思人视频| 国产无码精品在线播放| 凹凸精品免费精品视频| 欧美色综合网站| 欧美精品成人一区二区视频一| 亚洲天堂视频在线播放| 欧美有码在线| 亚洲AV人人澡人人双人| 日本精品视频| 亚洲第一极品精品无码| 老司机精品一区在线视频| 亚洲色图另类| 精品视频福利| 国产成人欧美| 亚洲日韩精品无码专区97| 欧美日韩综合网|