• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種航天器軟件進(jìn)程堆棧使用深度的動(dòng)態(tài)檢測(cè)方法

      2017-04-19 11:44:06董振輝侯春青郭堅(jiān)張紅軍
      航天器工程 2017年1期
      關(guān)鍵詞:堆棧航天器進(jìn)程

      董振輝 侯春青 郭堅(jiān) 張紅軍

      (1 北京空間飛行器總體設(shè)計(jì)部,北京 100094)(2 華為技術(shù)有限公司,北京 100095)

      ?

      一種航天器軟件進(jìn)程堆棧使用深度的動(dòng)態(tài)檢測(cè)方法

      董振輝1侯春青2郭堅(jiān)1張紅軍1

      (1 北京空間飛行器總體設(shè)計(jì)部,北京 100094)(2 華為技術(shù)有限公司,北京 100095)

      航天器軟件進(jìn)程堆棧溢出往往會(huì)導(dǎo)致軟件“跑飛”的后果。文章分析了現(xiàn)有堆棧使用深度檢測(cè)的靜態(tài)測(cè)試方法和動(dòng)態(tài)測(cè)試方法的優(yōu)點(diǎn)和不足,針對(duì)航天器數(shù)管軟件的特點(diǎn),提出了一種適用于航天器數(shù)管軟件進(jìn)程堆棧使用深度的動(dòng)態(tài)檢測(cè)方法。通過訪問應(yīng)用軟件與系統(tǒng)軟件的接口,獲得進(jìn)程堆棧的起始地址和大小等信息,將堆棧區(qū)初始化為特定標(biāo)識(shí),對(duì)軟件執(zhí)行最大路徑測(cè)試后,掃描堆棧區(qū)特定標(biāo)識(shí)被覆蓋情況,獲得進(jìn)程堆棧的使用深度。在嫦娥五號(hào)上升器數(shù)管軟件中,實(shí)現(xiàn)了此方法,并通過上注在軌維護(hù)指令進(jìn)行了測(cè)試。結(jié)果表明:在不借助任何專業(yè)檢測(cè)軟件的情況下,該方法能夠?qū)崟r(shí)檢測(cè)出軟件進(jìn)程堆棧的最大使用深度,以利于避免進(jìn)程堆棧溢出的風(fēng)險(xiǎn),提高軟件的可靠性。

      航天器軟件;進(jìn)程堆棧;使用深度;動(dòng)態(tài)檢測(cè)

      1 引言

      航天器數(shù)管中央處理單元軟件主要完成航天器遙控、遙測(cè)、自主管理及與其他分系統(tǒng)通信等功能,關(guān)鍵程度通常為最高等級(jí)A級(jí),它由系統(tǒng)軟件和應(yīng)用軟件組成,應(yīng)用軟件運(yùn)行在系統(tǒng)軟件之上[1]。根據(jù)軟件用戶需求,應(yīng)用軟件一般劃分為多個(gè)進(jìn)程,每個(gè)進(jìn)程堆棧的大小在創(chuàng)建進(jìn)程時(shí)配置,之后不能更改。若進(jìn)程堆??臻g分配不足,應(yīng)用軟件運(yùn)行過程可能發(fā)生進(jìn)程堆棧溢出,導(dǎo)致軟件運(yùn)行異常,甚至“跑飛”,從而影響航天器的正常工作,對(duì)航天器安全造成極大危害。

      合理分配進(jìn)程堆棧大小的關(guān)鍵,在于對(duì)堆棧的使用深度進(jìn)行準(zhǔn)確測(cè)量。堆棧使用深度檢測(cè)方法一般分為靜態(tài)測(cè)試[2-3]和動(dòng)態(tài)測(cè)試[4]兩種。基于這兩種方法,國內(nèi)外開發(fā)了一系列專業(yè)的堆棧使用深度檢測(cè)軟件。例如:德國AbsInt公司的StackAnalyzer軟件基于靜態(tài)測(cè)試方法,但測(cè)試中要對(duì)軟件使用函數(shù)指針的語句人工指定函數(shù)入口地址,這給測(cè)試帶來較大的工作量;上海創(chuàng)景科技公司的RTInsight工具基于動(dòng)態(tài)測(cè)試方法,測(cè)試中要有專門的硬件工具支持,并且對(duì)被測(cè)嵌入式系統(tǒng)的硬件接口有特定要求。由于上述專業(yè)檢測(cè)軟件面向嵌入式軟件進(jìn)行通用化設(shè)計(jì),并未針對(duì)航天領(lǐng)域進(jìn)行專門定制,因此測(cè)試和分析過程比較復(fù)雜。本文結(jié)合航天器數(shù)管軟件的開發(fā)和測(cè)試環(huán)境,提出了一種將堆棧使用深度檢測(cè)程序內(nèi)嵌到數(shù)管應(yīng)用軟件的檢測(cè)方法,可解決專業(yè)檢測(cè)軟件在航天領(lǐng)域應(yīng)用中存在的不足。

      2 堆棧溢出檢測(cè)技術(shù)

      2.1 進(jìn)程堆棧溢出的原理

      航天器數(shù)管軟件通常固化在只讀存儲(chǔ)器中,加電后將文本段和數(shù)據(jù)段均搬移到內(nèi)存,之后軟件一直運(yùn)行在內(nèi)存中,內(nèi)存空間被分為文本段、數(shù)據(jù)段、BSS(Block Started by Symbol)段和進(jìn)程堆棧區(qū)等。其中,文本段和數(shù)據(jù)段的大小由編譯后的軟件代碼決定,進(jìn)程堆棧的大小是在應(yīng)用軟件啟動(dòng)之初創(chuàng)建各個(gè)進(jìn)程時(shí)配置的,之后不能更改,因此,在軟件代碼固定的情況下,進(jìn)程堆棧的大小決定了內(nèi)存資源的可用余量(一般要求余量占整個(gè)內(nèi)存的20%以上)。以創(chuàng)建N個(gè)進(jìn)程的數(shù)管中央處理單元應(yīng)用軟件為例,系統(tǒng)軟件為RTEMS操作系統(tǒng),內(nèi)存空間分配情況如圖1所示。

      由圖1可見,每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)進(jìn)程控制塊,控制塊之后即為進(jìn)程堆棧區(qū),用于保存進(jìn)程運(yùn)行過程中函數(shù)返回地址、函數(shù)形參、局部變量等。若在進(jìn)程深層次的函數(shù)調(diào)用過程中,進(jìn)入進(jìn)程堆棧的數(shù)據(jù)超出了堆棧的邊界,將發(fā)生進(jìn)程堆棧溢出。這種情況下,首先被覆蓋的就是本進(jìn)程的進(jìn)程控制塊,由于控制塊中保存的是進(jìn)程運(yùn)行過程中的必要信息,一旦內(nèi)容被改寫,就可能發(fā)生軟件“跑飛”,進(jìn)而導(dǎo)致軟件復(fù)位前功能出錯(cuò),危及整個(gè)航天器的安全。

      在應(yīng)用軟件運(yùn)行過程中,通常有兩種情況導(dǎo)致進(jìn)程堆棧溢出,一是進(jìn)程函數(shù)嵌套調(diào)用層次過深,二是壓入到進(jìn)程堆棧的函數(shù)局部變量占用空間太大。但是,進(jìn)程堆棧溢出往往僅在滿足特定條件時(shí)才會(huì)發(fā)生,而數(shù)管應(yīng)用軟件在確認(rèn)測(cè)試或整個(gè)航天器電測(cè)過程中往往不會(huì)觸發(fā)堆棧溢出的條件,這就造成了堆棧溢出問題難以事先防范,出現(xiàn)問題后的排查工作也非常困難[5-6]。

      2.2 靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試

      進(jìn)程堆棧溢出的檢測(cè)方式多種多樣,按照測(cè)試原理一般分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩種。

      靜態(tài)測(cè)試不依賴于程序的運(yùn)行就能檢測(cè)出堆棧溢出的錯(cuò)誤。其測(cè)試思路是將源程序進(jìn)行反匯編,分析匯編語句中的特定語句和分支,建立樹狀結(jié)構(gòu)。相對(duì)動(dòng)態(tài)測(cè)試而言,靜態(tài)測(cè)試的主要優(yōu)勢(shì)在于不需要軟件實(shí)際發(fā)生堆棧溢出,堆棧使用深度通過理論分析得到;缺點(diǎn)是難以檢測(cè)遞歸調(diào)用,因?yàn)楹瘮?shù)的遞歸次數(shù)在靜態(tài)下是一個(gè)不可確定的參數(shù),所以只能檢測(cè)到部分堆棧溢出情況。另外,靜態(tài)測(cè)試分析工具通常會(huì)產(chǎn)生大量錯(cuò)誤的警告信息,實(shí)際上會(huì)加重分析人員的負(fù)擔(dān)。

      動(dòng)態(tài)測(cè)試是指檢測(cè)過程必須依賴于程序的動(dòng)態(tài)運(yùn)行,一般要在程序中插樁或者修改一些指令來檢測(cè)堆棧溢出。根據(jù)插入方式的不同,動(dòng)態(tài)測(cè)試可以進(jìn)一步劃分為靜態(tài)插樁和動(dòng)態(tài)插樁。動(dòng)態(tài)測(cè)試最主要的缺點(diǎn)是只能檢測(cè)出真正發(fā)生動(dòng)態(tài)溢出的代碼。實(shí)際上,只有極少量的代碼能夠觸發(fā)堆棧溢出,測(cè)試過程能否運(yùn)行到這些代碼取決于測(cè)試用例的設(shè)計(jì),因此,動(dòng)態(tài)測(cè)試檢測(cè)到的堆棧使用深度往往小于等于堆棧的最大使用深度。

      3 一種新的航天器軟件進(jìn)程堆棧使用深度動(dòng)態(tài)檢測(cè)方法

      3.1 檢測(cè)原理

      本文介紹的航天器軟件進(jìn)程堆棧使用深度動(dòng)態(tài)檢測(cè)方法的原理是,應(yīng)用軟件創(chuàng)建多個(gè)進(jìn)程后,通過應(yīng)用軟件與系統(tǒng)軟件的接口函數(shù)獲取各個(gè)進(jìn)程堆棧的起始地址和空間大小,并將各個(gè)進(jìn)程堆棧區(qū)初始化為特定標(biāo)識(shí)的十六進(jìn)制數(shù)據(jù)。特定標(biāo)識(shí)設(shè)計(jì)采用巴克碼或2個(gè)以上巴克碼的組合,針對(duì)壓入堆棧的內(nèi)容可能會(huì)與特定標(biāo)識(shí)相同的問題,可使用2種不同的特定標(biāo)識(shí)獨(dú)立執(zhí)行2次檢測(cè),取2次檢測(cè)結(jié)果的最大值。在軟件運(yùn)行過程中,被壓入堆棧的數(shù)據(jù)會(huì)將特定標(biāo)識(shí)覆蓋。從進(jìn)程堆棧區(qū)的最低地址開始檢查,凡是內(nèi)容為特定標(biāo)識(shí)的地址,可以認(rèn)為沒有保存過入棧數(shù)據(jù),檢測(cè)到首個(gè)不為特定標(biāo)識(shí)的地址,即可視為堆棧被使用過的最大地址,該地址減去進(jìn)程堆棧起始地址,即可獲得堆棧使用深度,檢測(cè)原理和流程分別如圖2和圖3所示。

      實(shí)現(xiàn)本文方法的難點(diǎn)和關(guān)鍵在于獲取各個(gè)進(jìn)程堆棧的起始地址和堆棧大小信息。目前,航天器數(shù)管系統(tǒng)軟件一般使用裁剪過的RTEMS或VxWorks操作系統(tǒng),應(yīng)用軟件調(diào)用系統(tǒng)軟件接口函數(shù)創(chuàng)建進(jìn)程時(shí),系統(tǒng)軟件會(huì)為每個(gè)進(jìn)程創(chuàng)建并維護(hù)一個(gè)進(jìn)程控制塊結(jié)構(gòu)體變量,用于存放進(jìn)程運(yùn)行所需的一切信息,包括進(jìn)程堆棧起始地址和堆棧大小信息。通過對(duì)RTEMS或VxWorks操作系統(tǒng)的進(jìn)程控制塊結(jié)構(gòu)體進(jìn)行分析,可以獲得進(jìn)程堆棧的起始地址和堆棧大小信息在進(jìn)程控制塊結(jié)構(gòu)體中的地址偏移量。每個(gè)進(jìn)程的進(jìn)程控制塊內(nèi)存地址,可通過應(yīng)用軟件與系統(tǒng)軟件的接口函數(shù)獲取,加上固定偏移之后,即可獲得進(jìn)程堆棧的起始地址和堆棧大小信息。

      3.2 測(cè)試流程

      如果將檢測(cè)程序作為應(yīng)用軟件的一部分添加到代碼中,將會(huì)導(dǎo)致軟件編譯后的文本段和數(shù)據(jù)段變大,且該功能并不是應(yīng)用軟件功能的一部分,僅用于地面測(cè)試使用,對(duì)于航天器上應(yīng)用功能來說就是多余物??紤]到數(shù)管計(jì)算機(jī)內(nèi)存中通常留有20%以上的余量,可以在需要開展進(jìn)程堆棧使用深度測(cè)試時(shí),將檢測(cè)程序通過在軌維護(hù)指令[7]的方式上注到內(nèi)存的空閑區(qū)域,并通過修改應(yīng)用軟件的函數(shù)指針跳轉(zhuǎn)到該函數(shù)執(zhí)行。這種方法避免了對(duì)應(yīng)用軟件本身進(jìn)行修改,且可以隨時(shí)啟動(dòng)測(cè)試。堆棧使用深度檢測(cè)的測(cè)試流程如圖4所示。

      檢測(cè)程序執(zhí)行之后,結(jié)果保存在內(nèi)存中,并可通過內(nèi)存讀出[8]的方式利用測(cè)控信道下傳給地面測(cè)試設(shè)備,供軟件開發(fā)人員分析。整個(gè)檢測(cè)過程基于現(xiàn)有數(shù)管軟件開發(fā)和測(cè)試環(huán)境,不須要借助任何專業(yè)軟件或工具,這也是本文方法區(qū)別于其他專業(yè)檢測(cè)軟件的一個(gè)重要特點(diǎn)。

      3.3 結(jié)果獲取時(shí)機(jī)

      航天器數(shù)管應(yīng)用軟件是多任務(wù)軟件,通常會(huì)創(chuàng)建一個(gè)空閑自檢進(jìn)程,它運(yùn)行在系統(tǒng)時(shí)間片空閑時(shí)段,空閑時(shí)段占整個(gè)系統(tǒng)時(shí)間片的20%以上,以滿足時(shí)間性能要求。為避免對(duì)其他進(jìn)程功能產(chǎn)生影響,堆棧使用深度檢測(cè)程序運(yùn)行在空閑自檢進(jìn)程中,并在每個(gè)系統(tǒng)時(shí)間片運(yùn)行1次。

      檢測(cè)結(jié)果以全局變量的形式保存在特定內(nèi)存地址中,并被新的檢測(cè)數(shù)據(jù)不斷更新,檢測(cè)數(shù)據(jù)包括各進(jìn)程堆棧空間大小和各進(jìn)程堆棧最大使用深度。地面可在任意時(shí)刻上注內(nèi)存讀出指令,獲得檢測(cè)結(jié)果。由于軟件實(shí)際測(cè)出的是堆棧使用過的最大深度,因此在執(zhí)行軟件最大運(yùn)行路徑測(cè)試[9-10]或者觸發(fā)深層次的函數(shù)調(diào)用之后的檢測(cè)結(jié)果,才具有實(shí)際參考價(jià)值。

      3.4 堆棧大小分配原則

      航天器數(shù)管軟件進(jìn)程堆棧大小分配時(shí)須留有足夠的空間:一是在軟件運(yùn)行異常情況下,要留有足夠的堆??臻g,避免軟件馬上“跑飛”,便于問題排查;二是為將來軟件在軌維護(hù)留有足夠的空間,避免上注新的函數(shù)模塊后導(dǎo)致進(jìn)程堆??臻g不足。但是,航天器數(shù)管軟件通常要求內(nèi)存余量大于20%,在內(nèi)存資源非常有限的情況下,進(jìn)程堆棧又不宜分配過大,以免浪費(fèi)。

      4 實(shí)例驗(yàn)證

      以嫦娥五號(hào)上升器數(shù)管分系統(tǒng)綜合管理單元軟件在地面測(cè)試驗(yàn)證為例,其處理器采用TSC695F,只讀存儲(chǔ)器容量為128 Kbyte,內(nèi)存容量為2 Mbyte,系統(tǒng)軟件為RTEMS操作系統(tǒng),應(yīng)用軟件共創(chuàng)建了12個(gè)進(jìn)程。該軟件為典型航天器數(shù)管軟件,可基于本文方法執(zhí)行堆棧使用深度檢測(cè),檢測(cè)過程不須要借助其他專業(yè)軟件,僅使用數(shù)管軟件自身的開發(fā)和測(cè)試環(huán)境,如圖5所示。

      對(duì)照?qǐng)D4檢測(cè)程序的測(cè)試流程,在圖5所示環(huán)境中,可通過總線仿真卡、測(cè)試客戶機(jī)和主控計(jì)算機(jī)模擬觸發(fā)軟件最大運(yùn)行路徑的條件,檢測(cè)程序以在軌維護(hù)指令的形式上注到數(shù)管應(yīng)用軟件,檢測(cè)結(jié)果通過上注內(nèi)存讀出指令后從下行遙測(cè)中獲取。在相同觸發(fā)軟件最大運(yùn)行路徑的條件下,使用同樣基于動(dòng)態(tài)測(cè)試方法的RTInsight工具執(zhí)行堆棧使用深度檢測(cè),將2種檢測(cè)方法進(jìn)行比較,結(jié)果見表1,證明本文方法是可行的。執(zhí)行堆棧使用深度檢測(cè)程序后,堆??臻g分配優(yōu)化前的測(cè)試結(jié)果見表2和圖6。

      通過分析測(cè)試結(jié)果,結(jié)合軟件任務(wù)需求,對(duì)部分進(jìn)程的堆棧大小進(jìn)行調(diào)整,將(Task)12的堆??臻g擴(kuò)展保證足夠的余量,將(Task)2的堆??臻g縮小以避免不必要的浪費(fèi)。調(diào)整后,將軟件重新編譯運(yùn)行,并在相同條件下重新執(zhí)行堆棧使用深度檢測(cè)程序。堆??臻g分配優(yōu)化后的測(cè)試結(jié)果見表3和圖7。

      表1 2種檢測(cè)方法比較Table 1 Comparison of two detection methods

      表2 優(yōu)化前堆棧使用情況Table 2 Usage of stack before optimization

      進(jìn)程ID分配空間/byte已用空間/byte使用百分比/%(Task)112560152012(Task)28704133615(Task)320752324815(Task)4436848010(Task)520752714434(Task)620752543226(Task)720752376018(Task)820752432021(Task)910512237622(Task)10436899222(Task)1110512236823(Task)1210512227222總計(jì)1652963524821

      通過優(yōu)化前后的對(duì)比可見,在所有進(jìn)程堆棧占用內(nèi)存之和變化不大的情況下,通過調(diào)整各個(gè)進(jìn)程堆棧大小,可以實(shí)現(xiàn)每個(gè)進(jìn)程堆棧余量百分比保持在一個(gè)合理的范圍,從而實(shí)現(xiàn)進(jìn)程堆棧空間的合理分配。

      5 結(jié)束語

      根據(jù)航天器數(shù)管軟件的運(yùn)行環(huán)境和使用特點(diǎn),本文設(shè)計(jì)了一種進(jìn)程堆棧使用深度的動(dòng)態(tài)檢測(cè)方法。此方法不須要借助專業(yè)檢測(cè)軟件,具有實(shí)現(xiàn)簡單、測(cè)試方便的特點(diǎn),有利于優(yōu)化進(jìn)程堆??臻g分配。本文方法屬于動(dòng)態(tài)測(cè)試方法,檢測(cè)結(jié)果為軟件開始運(yùn)行后所使用過的最大堆棧深度,不一定等于理論最大堆棧使用深度,兩者的誤差取決于軟件測(cè)試用例的設(shè)計(jì)。該方法已在航天器地面軟件調(diào)試中得到了應(yīng)用,對(duì)提高航天器軟件的可靠性和安全性起到了一定作用。

      References)

      [1] 何熊文,孫勇.一種衛(wèi)星數(shù)管中心計(jì)算機(jī)軟件的工程實(shí)現(xiàn)[J].航天器工程,2007,16(5):47-53

      He Xiongwen,Sun Yong. Engineering realization of software in central terminal unit of satellite data mana-gement system [J]. Spacecraft Engineering,2007,16(5): 47-53 (in Chinese)

      [2]張西超,郭向英.一種用于分析MCS-51目標(biāo)碼堆棧深度的方法[J].空間控制技術(shù)與應(yīng)用,2010,36(2):47-50

      Zhang Xichao,Guo Xiangying. An approach to MCS-51 object stack depth analysis [J]. Aerospace Control and Application,2010,36(2): 47-50 (in Chinese)

      [3]魏強(qiáng),金然,王清賢.基于中間匯編的緩沖區(qū)溢出檢測(cè)模型[J].計(jì)算機(jī)工程,2009,35(3):169-172

      Wei Qiang,Jin Ran,Wang Qingxian. Buffer overflow detection model based on intermedia assembly [J]. Computer Engineering,2009,35(3): 169-172 (in Chinese)

      [4]劉通平.棧溢出的動(dòng)態(tài)檢測(cè)技術(shù)[J].計(jì)算機(jī)科學(xué),2007,

      34(9):282-286

      Liu Tongping. Dynamic detection of stack overflow [J]. Computer Science,2007,34(9): 282-286 (in Chinese)

      [5]孫海彬,徐良賢,楊懷銀.堆棧溢出攻擊的原理及檢測(cè)[J].計(jì)算機(jī)工程,2001,27(1):127-128

      Sun Haibin,Xu Liangxian,Yang Huaiyin. The principle and detection of buffer overflow attack [J]. Computer Engineering,2001,27(1): 127-128 (in Chinese)

      [6]潘琦,王澄,楊宇航.堆棧溢出攻擊的分析及防范[J].上海交通大學(xué)學(xué)報(bào),2002,36(9):1346-1350

      Pan Qi,Wang Cheng,Yang Yuhang. Analysis and prevention of the stack overflow attacking [J]. Journal of Shanghai Jiaotong University,2002,36(9): 1346-1350 (in Chinese)

      [7]安軍社,劉艷秋,孫輝先.軟件的動(dòng)態(tài)維護(hù)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003,29(2):238-239

      An Junshe,Liu Yanqiu,Sun Huixian. Implementation of on-board software maintenance [J]. Computer Engineering,2003,29(2): 238-239 (in Chinese)

      [8]何熊文,張猛.遙控和遙測(cè)包應(yīng)用標(biāo)準(zhǔn)在航天器中的使用方法[J].航天器工程,2012,21(3):54-60

      He Xiongwen,Zhang Meng. Application method of telecommand and telemetry packet utilization standard in spacecraft [J]. Spacecraft Engineering,2012,21(3): 54-60 (in Chinese)

      [9]吳國偉,姚琳,岳峰.一種快速程序最壞執(zhí)行時(shí)間分析方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(21):69-71,96

      Wu Guowei,Yao Lin,Yue Feng. Study on fast program worst-case execution time estimation [J]. Computer Engineering and Applications,2010,46(21): 69-71,96 (in Chinese)

      [10] 劉育芳,張立臣.兩種基于符號(hào)的最壞執(zhí)行時(shí)間分析方法的比較與分析[J].微電子學(xué)與計(jì)算機(jī),2006,23(5):60-62

      Liu Yufang,Zhang Lichen. Comparison and analysis of two symbolic worst-case execution time analysis methods [J]. Microelectronics & Computer,2006,23(5): 60-62 (in Chinese)

      (編輯:夏光)

      Dynamic Detection Method of Spacecraft Software Process Stack Used Depth

      DONG Zhenhui1HOU Chunqing2GUO Jian1ZHANG Hongjun1

      (1 Beijing Institute of Spacecraft System Engineering,Beijing 100094,China) (2 Huawei Technologies Co., Ltd.,Beijing 100095,China)

      Spacecraft software process stack overflow often causes the procedure to lose control. The paper analyzes the advantages and disadvantages of stack used depth detection of static test and dynamic test methods,and proposes a dynamic detection method according to the characteristics of spacecraft software. Through the interface of application software and system software,the start address and size of process stack can be obtained and the stack space will be initialized as specific identity after the software performs the maximum path test,and the stack space will be scanned to obtain the process stack used depth. In CE-5 ascent stage onboard data handling software,the method is realized and tested by the way of onboard software maintenance. The results show that the method can detect the maximum used depth of the process stack in real time without any professional software,which is beneficial for avoiding the risk of process stack overflow,then improving the software reliability.

      spacecraft software; process stack; used depth; dynamic detection

      2016-08-16;

      2016-12-29

      國家重大科技專項(xiàng)工程

      董振輝,男,工程師,從事航天器器載軟件設(shè)計(jì)工作。Email:564760683@qq.com。

      V446

      A

      10.3969/j.issn.1673-8748.2017.01.013

      猜你喜歡
      堆棧航天器進(jìn)程
      2022 年第二季度航天器發(fā)射統(tǒng)計(jì)
      國際太空(2022年7期)2022-08-16 09:52:50
      債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      2019 年第二季度航天器發(fā)射統(tǒng)計(jì)
      國際太空(2019年9期)2019-10-23 01:55:34
      2018 年第三季度航天器發(fā)射統(tǒng)計(jì)
      國際太空(2018年12期)2019-01-28 12:53:20
      2018年第二季度航天器發(fā)射統(tǒng)計(jì)
      國際太空(2018年9期)2018-10-18 08:51:32
      嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
      基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
      社會(huì)進(jìn)程中的新聞學(xué)探尋
      我國高等教育改革進(jìn)程與反思
      Linux僵死進(jìn)程的產(chǎn)生與避免
      琼海市| 石楼县| 嘉兴市| 德化县| 泾阳县| 嘉义县| 龙里县| 延寿县| 兴国县| 巢湖市| 古丈县| 隆安县| 宝清县| 新干县| 吴堡县| 葫芦岛市| 惠水县| 拉萨市| 诏安县| 陆丰市| 礼泉县| 平南县| 连南| 新巴尔虎右旗| 清镇市| 册亨县| 兴文县| 汕头市| 屏东县| 南江县| 固始县| 金堂县| 全州县| 长垣县| 上林县| 乌鲁木齐县| 长春市| 伊吾县| 垦利县| 临漳县| 班玛县|