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.

(編輯 王永超)

主站蜘蛛池模板: 国产菊爆视频在线观看| 狂欢视频在线观看不卡| 免费国产黄线在线观看| 免费av一区二区三区在线| 精品国产免费观看一区| 小说 亚洲 无码 精品| 欧美成人精品在线| 99成人在线观看| 国产va在线观看免费| 色视频国产| 欧美成人手机在线视频| 欧美精品不卡| 毛片网站在线播放| 国产区福利小视频在线观看尤物| 欧美无遮挡国产欧美另类| 日韩中文无码av超清| 欧美色香蕉| 国产毛片高清一级国语| 国产亚洲精| 久久公开视频| 在线国产91| 欧美人在线一区二区三区| 亚洲午夜国产精品无卡| 国产91麻豆免费观看| 免费一级毛片在线播放傲雪网| 亚洲日韩精品无码专区97| 欧美性精品| 国产在线精彩视频二区| 精品伊人久久久香线蕉| 伊人成人在线视频| 久久精品国产免费观看频道| 国产在线一区二区视频| 久久国产精品国产自线拍| 丁香六月激情综合| 国产成人综合亚洲网址| 五月天在线网站| 欧美另类精品一区二区三区 | 日本高清在线看免费观看| 亚洲成肉网| 东京热av无码电影一区二区| 欧美成人免费一区在线播放| 亚洲美女久久| 成人亚洲天堂| 欧美无遮挡国产欧美另类| 久久黄色毛片| 成人av手机在线观看| 激情午夜婷婷| 三区在线视频| 动漫精品中文字幕无码| 国产成人乱码一区二区三区在线| 亚洲人成日本在线观看| 9966国产精品视频| 中国黄色一级视频| 亚洲区第一页| 精品自窥自偷在线看| 欧美精品在线观看视频| 国产成人免费高清AⅤ| 亚洲欧美极品| 国产黄色片在线看| 色哟哟国产精品| 色天天综合久久久久综合片| 国产在线精品网址你懂的| 久草视频精品| 亚洲天堂高清| 久久精品视频一| 亚洲一区二区约美女探花| 久久无码高潮喷水| 国产91丝袜在线播放动漫| 成人中文字幕在线| 国产网站免费| 天堂av综合网| 国产区免费| 成人国产一区二区三区| 欧美性猛交xxxx乱大交极品| 亚洲欧美自拍中文| 国产欧美日韩在线一区| 激情无码字幕综合| 久热re国产手机在线观看| 久久成人18免费| 国产无遮挡猛进猛出免费软件| 国产激情影院| 在线中文字幕网|