舒曉苓,吳雪琴
(電子科技大學(xué)成都學(xué)院,四川 成都611731)
為迎合市場(chǎng),需縮短嵌入式軟件的開(kāi)發(fā)周期,因此嵌入式軟件缺陷出現(xiàn)概率增大。嵌入式軟件微驅(qū)動(dòng)器在各大領(lǐng)域應(yīng)用最為廣泛,對(duì)微驅(qū)動(dòng)器的開(kāi)發(fā)要求較為嚴(yán)格,既要考慮其工作頻率,又要考慮其性能。為避免微驅(qū)動(dòng)器出現(xiàn)現(xiàn)實(shí)缺陷問(wèn)題,需研究遠(yuǎn)程調(diào)試方法。遠(yuǎn)程調(diào)試方法在微驅(qū)動(dòng)器開(kāi)發(fā)過(guò)程中具有重要地位,遠(yuǎn)程調(diào)試功能是判斷一個(gè)開(kāi)發(fā)工具好壞的關(guān)鍵指標(biāo)。經(jīng)過(guò)反復(fù)調(diào)試可獲取更為安全可靠的微驅(qū)動(dòng)器,令其在不同領(lǐng)域均能實(shí)現(xiàn)理想性能,在較低的微處理器使用功耗約束下,提升其工作頻率。
聶佳等人為降低維護(hù)成本,針對(duì)設(shè)備故障設(shè)計(jì)遠(yuǎn)程調(diào)試方法,實(shí)現(xiàn)設(shè)備的遠(yuǎn)程調(diào)試;張根燦等人為實(shí)現(xiàn)質(zhì)子注入器的遠(yuǎn)程調(diào)試,通過(guò)Python程序設(shè)計(jì)遠(yuǎn)程調(diào)試方法,實(shí)現(xiàn)質(zhì)子注入器的遠(yuǎn)程調(diào)試。這兩種方法均只能夠完成一對(duì)一的調(diào)試過(guò)程,無(wú)法實(shí)現(xiàn)多個(gè)宿主機(jī)對(duì)同一嵌入式軟件微處理器展開(kāi)調(diào)試。
為此,研究嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試仿真,實(shí)現(xiàn)多個(gè)宿主機(jī)對(duì)同一微處理器的虛擬遠(yuǎn)程調(diào)試,降低微驅(qū)動(dòng)器功耗,提升其工作頻率。
基于調(diào)試代理的嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試方法的整體架構(gòu)如圖1所示。
圖1 基于調(diào)試代理的虛擬遠(yuǎn)程調(diào)試的整體架構(gòu)
該方法中各開(kāi)發(fā)人員在本地IDE編輯與連接源代碼,利用虛擬USB設(shè)備連接調(diào)式代理和嵌入式軟件微驅(qū)動(dòng)器、調(diào)試器,實(shí)現(xiàn)虛擬遠(yuǎn)程調(diào)試。
嵌入式軟件微驅(qū)動(dòng)器利用監(jiān)控單元實(shí)時(shí)監(jiān)控其內(nèi)部遠(yuǎn)程調(diào)試結(jié)果,通過(guò)時(shí)鐘控制單元、數(shù)據(jù)處理單元與數(shù)據(jù)寫(xiě)回單元處理監(jiān)控結(jié)果,并傳輸至調(diào)試代理。調(diào)試代理屬于調(diào)試器與嵌入式微驅(qū)動(dòng)器監(jiān)控間數(shù)據(jù)傳輸?shù)臉蛄?,調(diào)試代理利用虛擬USB設(shè)備接收全部宿主機(jī)的命令;數(shù)據(jù)解析單元通過(guò)矩陣概率檢驗(yàn)算法檢測(cè)接收命令中協(xié)議的安全性,剔除危險(xiǎn)的協(xié)議,獲取安全命令;利用數(shù)據(jù)分發(fā)單元與IP/端口線(xiàn)程表完成安全命令的精準(zhǔn)分發(fā);利用虛擬USB設(shè)備發(fā)送安全命令至調(diào)試器;利用調(diào)試器虛擬遠(yuǎn)程調(diào)試微驅(qū)動(dòng)器;通過(guò)各宿主機(jī)內(nèi)的調(diào)試器分析微驅(qū)動(dòng)器程序和源程序間的映射,在本地微驅(qū)動(dòng)器文件內(nèi)存儲(chǔ)調(diào)試完成的信息。
在協(xié)議的隨機(jī)性測(cè)試時(shí),通過(guò)矩陣元素概率分布衡量協(xié)議的隨機(jī)性,為增強(qiáng)協(xié)議隨機(jī)性檢測(cè)的穩(wěn)定性,設(shè)計(jì)一種規(guī)范的測(cè)試組織與序列劃分方式,衡量協(xié)議序列的穩(wěn)定性與加密強(qiáng)度。測(cè)試組織的設(shè)計(jì)步驟如下:
步驟1:對(duì)待檢測(cè)協(xié)議序列展開(kāi)分組,編號(hào)為1,2,…,;
步驟2:頻數(shù)檢驗(yàn)各組協(xié)議序列,檢查所檢驗(yàn)序列各部分的隨機(jī)性,若待檢測(cè)序列沒(méi)有通過(guò)頻數(shù)檢驗(yàn),那么檢驗(yàn)結(jié)束,獲取該序列不隨機(jī)的結(jié)論,代表該協(xié)議沒(méi)有展開(kāi)加密處理,若通過(guò)頻數(shù)檢驗(yàn),轉(zhuǎn)至步驟3;
步驟3:以疊加序列的測(cè)試方式,展開(kāi)矩陣概率檢驗(yàn),檢查協(xié)議序列的隨機(jī)平穩(wěn)性,衡量協(xié)議加密程度的強(qiáng)弱。
頻數(shù)檢驗(yàn)具有檢測(cè)效率快的優(yōu)勢(shì),因此,利用頻數(shù)檢驗(yàn)進(jìn)行先驗(yàn),若未通過(guò)該檢驗(yàn),則結(jié)束檢驗(yàn),節(jié)約協(xié)議安全檢測(cè)時(shí)間,具體步驟如下:
步驟1:將協(xié)議序列內(nèi)的0碼變更成-1碼,1碼變更成+1碼,通過(guò)式(1)計(jì)算序列變更后的疊加和,指定變更為=2-1,序列內(nèi)第個(gè)點(diǎn)是,序列最短長(zhǎng)度≥100比特,計(jì)算序列變更后的疊加和公式如下
=++…+
(1)
步驟2:求解統(tǒng)計(jì)量,公式如下
(2)
步驟3:求解最終概率值-,公式如下
(3)
其中,(·)為余誤差函數(shù)。
步驟4:對(duì)比分析-和顯著性水平=001,若-≥,那么這個(gè)協(xié)議待檢測(cè)序列通過(guò)頻數(shù)檢驗(yàn),反之,沒(méi)有通過(guò)頻數(shù)檢驗(yàn),說(shuō)明這個(gè)協(xié)議待檢測(cè)序列為不隨機(jī)的。
通過(guò)-值的均勻分布方法衡量協(xié)議序列的均勻分布特性,具體步驟如下:
步驟1:計(jì)算數(shù)個(gè)分組的待檢測(cè)協(xié)議序列的-值的集合,通過(guò)檢查-值的通過(guò)率與概率分布特性,評(píng)價(jià)協(xié)議加密強(qiáng)度,將強(qiáng)度等級(jí)等分成10個(gè)區(qū)間,取值區(qū)間為[0,1],因?yàn)?span id="j5i0abt0b" class="subscript">-為區(qū)間[0,1]間的實(shí)數(shù),因此在序列數(shù)量很多的情況下,-值應(yīng)該均勻分布在10個(gè)區(qū)間中;
步驟2:記錄各區(qū)間中與-相應(yīng)的頻次,那么
++…+=
(4)
其中,為序列數(shù)量。
求解統(tǒng)計(jì)量的分布,公式如下
(5)
步驟3:求解假設(shè)條件時(shí)形成的概率,公式如下
-=(92,2)
(6)
若->00001,說(shuō)明該協(xié)議待檢測(cè)序列滿(mǎn)足均勻分布特性,代表該協(xié)議隨機(jī)性較佳。
通過(guò)頻數(shù)檢驗(yàn)后的協(xié)議序列,經(jīng)由矩陣概率檢驗(yàn)其隨機(jī)性的強(qiáng)弱,檢驗(yàn)步驟如下:
(7)
矩陣概率檢驗(yàn)步驟如下:
步驟1:分割長(zhǎng)度是的協(xié)議待檢序列,獲取兩個(gè)=?2」比特的區(qū)塊,這兩個(gè)區(qū)塊無(wú)交集,剔除余下的-2×比特;
步驟2:針對(duì)2個(gè)比特的區(qū)塊,為其建立兩個(gè)×的和,=,計(jì)算與內(nèi)0碼的出現(xiàn)比例,計(jì)算公式如下:
=(=0)=方陣內(nèi)0碼的數(shù)量
(8)
=(=0)=方陣內(nèi)0碼的數(shù)量
(9)
令方陣內(nèi)的元素為二元序列,記作,1≤≤。
利用式(10)求解各方陣內(nèi)0碼的占比,公式如下
(10)
步驟3:求解內(nèi)0碼的統(tǒng)計(jì)比例即統(tǒng)計(jì)值,公式如下
()=(=0)=方陣內(nèi)0碼的數(shù)量
(11)
步驟4:求解與相應(yīng)的的期望值=(+-),在和()差距近似于0情況下,代表該協(xié)議序列通過(guò)矩陣概率檢驗(yàn)。
經(jīng)過(guò)上述分析可知,若協(xié)議序列沒(méi)有通過(guò)頻數(shù)檢驗(yàn),那么說(shuō)明該協(xié)議的隨機(jī)性較差,代表其沒(méi)有應(yīng)用加密措施;若協(xié)議序列通過(guò)頻數(shù)檢驗(yàn),且滿(mǎn)足均勻分布特性,那么說(shuō)明該協(xié)議的隨機(jī)性較好,能夠展開(kāi)矩陣概率檢驗(yàn);若協(xié)議序列沒(méi)有通過(guò)矩陣概率檢驗(yàn),那么說(shuō)明該協(xié)議的加密機(jī)制安全性較低;若協(xié)議序列通過(guò)矩陣概率檢驗(yàn),那么說(shuō)明該協(xié)議的隨機(jī)性穩(wěn)定性強(qiáng),代表其加密機(jī)制安全性高。
嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試實(shí)現(xiàn)的關(guān)鍵是調(diào)試代理的實(shí)現(xiàn),負(fù)責(zé)分析全部宿主機(jī)的命令,處理目標(biāo)機(jī)傳回的數(shù)據(jù)。宿主機(jī)數(shù)量提升,導(dǎo)致調(diào)試代理出現(xiàn)緩沖區(qū)溢出問(wèn)題,針對(duì)該問(wèn)題,在調(diào)試代理部分設(shè)計(jì)兩個(gè)線(xiàn)程與,與分別用于接收與分析報(bào)文,通過(guò)環(huán)形緩沖存儲(chǔ)接收的報(bào)文,在接收一幀數(shù)據(jù)包情況下,調(diào)整寫(xiě)指針尺寸,設(shè)計(jì)環(huán)形緩沖尺寸,設(shè)計(jì)時(shí)需參考宿主機(jī)真實(shí)個(gè)數(shù)與報(bào)文流量;按照讀寫(xiě)針尺寸衡量?jī)?nèi)有無(wú)需分析的數(shù)據(jù)包,完成分析后,調(diào)整讀寫(xiě)針尺寸。因?yàn)閮H需將接收數(shù)據(jù)存儲(chǔ)至緩沖區(qū),無(wú)需分析數(shù)據(jù),所以可確保宿主機(jī)數(shù)據(jù)接收的實(shí)時(shí)性,可一直監(jiān)控緩沖區(qū),依據(jù)設(shè)置的協(xié)議分析監(jiān)控區(qū)域數(shù)據(jù)。
宿主機(jī)數(shù)量提升,還會(huì)導(dǎo)致調(diào)試代理無(wú)法將監(jiān)控結(jié)果精準(zhǔn)分發(fā)至宿主機(jī)內(nèi),針對(duì)該問(wèn)題,在調(diào)試代理中塑造一個(gè)宿主機(jī)地址至端口的線(xiàn)性映射表,在接收連接命令情況下,調(diào)試代理需要衡量該連接是否是新的,衡量依據(jù)是線(xiàn)性映射表,同時(shí)為其設(shè)置一個(gè)空閑端口。利用這個(gè)端口,宿主機(jī)傳遞命令至調(diào)試代理,調(diào)試代理為各個(gè)分配端口都塑造一個(gè)與。在目標(biāo)機(jī)存在數(shù)據(jù)情況下,調(diào)試代理內(nèi)相應(yīng)端口的先衡量數(shù)據(jù)的精準(zhǔn)性,再利用線(xiàn)性映射表將數(shù)據(jù)分發(fā)至相應(yīng)宿主機(jī),確保數(shù)據(jù)分析的實(shí)時(shí)性與數(shù)據(jù)分發(fā)的精準(zhǔn)性。
為驗(yàn)證本文方法的有效性,利用MATLAB仿真工具對(duì)本文方法虛擬遠(yuǎn)程調(diào)試嵌入式軟件微驅(qū)動(dòng)器的調(diào)試結(jié)果展開(kāi)仿真計(jì)算。MATLAB仿真工具具備優(yōu)越的繪圖功能、超快的計(jì)算能力與可視化操作等特點(diǎn),屬于一種易于操作的編程仿真工具,自帶各種各樣的函數(shù),可擴(kuò)展性強(qiáng)。MATLAB仿真工具的開(kāi)發(fā)環(huán)境具有圖形窗口與命令窗口等,通過(guò)幫助窗口提取不同命令與函數(shù),利用編輯窗口建立并調(diào)整MATLAB腳本,依據(jù)圖形窗口繪制圖片,采用命令窗口輸入命令,自動(dòng)生成調(diào)試結(jié)果。
利用本文方法虛擬遠(yuǎn)程調(diào)試嵌入式軟件微驅(qū)動(dòng)器,經(jīng)由MATLAB仿真工具呈現(xiàn)仿真調(diào)試結(jié)果,仿真遠(yuǎn)程調(diào)試部分結(jié)果如圖2所示。
圖2 仿真遠(yuǎn)程調(diào)試部分結(jié)果
根據(jù)圖2可知,本文方法可有效完成數(shù)據(jù)分發(fā),實(shí)現(xiàn)嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試。
選擇文獻(xiàn)[4]的電機(jī)遠(yuǎn)程調(diào)試方法與文獻(xiàn)[5]的質(zhì)子注入器遠(yuǎn)程調(diào)試方法作為本次實(shí)驗(yàn)的對(duì)比方法,通過(guò)不同虛擬遠(yuǎn)程調(diào)試功能,仿真分析三種方法的時(shí)間性能,仿真分析結(jié)果如表1所示。
表1 時(shí)間性能仿真分析結(jié)果
根據(jù)表1可知,在不同調(diào)試功能時(shí),本文方法的調(diào)試時(shí)間均顯著低于其余兩種方法,本文方法平均調(diào)試時(shí)間為62.36ms,其余兩種方法的平均調(diào)試時(shí)間分別為116.23ms、100.68ms;本文方法調(diào)試時(shí)間較快的原因是:本次研究利用目標(biāo)機(jī)實(shí)時(shí)監(jiān)控調(diào)試過(guò)程,及時(shí)反饋監(jiān)控結(jié)果至調(diào)試代理,加快調(diào)試時(shí)間。
為仿真分析本文方法協(xié)議安全檢測(cè)的有效性,在嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試過(guò)程中,隨機(jī)選取兩套協(xié)議當(dāng)成待檢測(cè)樣本,這兩套協(xié)議分別屬于未采取加密措施與采取加密措施的協(xié)議,每個(gè)待檢測(cè)樣本中均包含20組50Byte的序列,顯著性水平是0.01,利用本文方法對(duì)未采取加密措施協(xié)議的安全性展開(kāi)頻數(shù)檢驗(yàn),仿真分析結(jié)果如圖3所示。
圖3 仿真分析結(jié)果
根據(jù)圖3可知,該協(xié)議內(nèi)全部序列的-值均未超過(guò)001,說(shuō)明這些序列均未通過(guò)頻數(shù)檢驗(yàn),即該協(xié)議的隨機(jī)性不佳,代表該協(xié)議未采取加密措施,與實(shí)際情況相符,這些序列為通過(guò)頻數(shù)檢驗(yàn)便無(wú)需進(jìn)行后續(xù)的矩陣概率檢驗(yàn)。
利用本文方法檢測(cè)采取加密措施協(xié)議的安全性,仿真分析結(jié)果如圖4所示。
圖4 仿真分析結(jié)果
根據(jù)圖4可知,該協(xié)議內(nèi)全部序列的-值均高于001,說(shuō)明該協(xié)議通過(guò)頻數(shù)檢驗(yàn),同時(shí)-值在區(qū)間[0,1]間分布較為均勻,需要繼續(xù)展開(kāi)矩陣概率檢驗(yàn);根據(jù)矩陣概率檢驗(yàn)結(jié)果可知,共有五個(gè)序列的期望值和統(tǒng)計(jì)值差距較大,沒(méi)有通過(guò)矩陣概率檢驗(yàn),剩余序列期望值與統(tǒng)計(jì)值差距較小,均通過(guò)了矩陣概率檢驗(yàn),說(shuō)明該協(xié)議采取了加密措施,隨機(jī)性較佳,但加密強(qiáng)度較低。實(shí)驗(yàn)證明:本文方法能夠有效檢測(cè)出協(xié)議是否采取加密措施,并獲取其加密強(qiáng)度,具備較優(yōu)的協(xié)議安全檢測(cè)效果。
仿真分析經(jīng)過(guò)本文方法虛擬遠(yuǎn)程調(diào)試前后,微驅(qū)動(dòng)器內(nèi)部各單元的功耗與工作頻率,仿真分析結(jié)果如圖5所示。
圖5 調(diào)試前后功耗與工作頻率仿真分析結(jié)果
根據(jù)圖5可知,利用本文方法虛擬遠(yuǎn)程調(diào)試后,微驅(qū)動(dòng)器內(nèi)各單元的功耗均明顯低于調(diào)試前,各單元的工作頻率均明顯高于調(diào)試前,說(shuō)明應(yīng)用本文方法虛擬遠(yuǎn)程調(diào)試微驅(qū)動(dòng)器后,可有效降低其功耗,提升其工作頻率。
嵌入式軟件微處理器的更新速度顯著加快,導(dǎo)致其開(kāi)發(fā)周期縮短,加大了后期調(diào)試難度,一種好的遠(yuǎn)程調(diào)試方法對(duì)嵌入式軟件微處理器的開(kāi)發(fā)至關(guān)重要。為此,研究嵌入式軟件微驅(qū)動(dòng)器虛擬遠(yuǎn)程調(diào)試方法。設(shè)計(jì)虛擬遠(yuǎn)程調(diào)試架構(gòu),實(shí)現(xiàn)虛擬遠(yuǎn)程調(diào)試,利用矩陣概率檢驗(yàn)檢測(cè)發(fā)布命令協(xié)議安全性,剔除不安全的協(xié)議,確保虛擬遠(yuǎn)程調(diào)試的安全。
仿真結(jié)果表明:所研究方法可有效實(shí)現(xiàn)虛擬遠(yuǎn)程調(diào)試,縮短調(diào)試時(shí)間。本文采用虛擬USB設(shè)備實(shí)現(xiàn)嵌入式軟件微處理器調(diào)試器、調(diào)試代理與目標(biāo)機(jī)間的通信,其數(shù)據(jù)傳輸距離有限,日后可以研究遠(yuǎn)程調(diào)試通道擴(kuò)展方法,延長(zhǎng)數(shù)據(jù)傳輸距離,使虛擬遠(yuǎn)程調(diào)試方法在更多場(chǎng)合應(yīng)用。