束韶光,崔 宇,劉俊陽(yáng)
(北京航天自動(dòng)控制研究所,北京,100854)
隨著計(jì)算機(jī)技術(shù)和設(shè)備數(shù)字化的飛速發(fā)展,航天系統(tǒng)從早期以硬件設(shè)備為主導(dǎo)、軟件實(shí)現(xiàn)硬件系統(tǒng)特定功能的年代,逐漸邁入以軟件為神經(jīng)中樞,貫穿于航天系統(tǒng)的各條脈絡(luò)的年代。如今的航天軟件,既可在天上實(shí)現(xiàn)飛行控制,又可在地面完成各項(xiàng)檢測(cè)任務(wù),其可靠性已成為影響航天系統(tǒng)質(zhì)量的關(guān)鍵因素。
近年來(lái),中國(guó)運(yùn)載火箭型號(hào)進(jìn)入了跨越式發(fā)展的關(guān)鍵時(shí)期,大量軟件和硬件的新技術(shù)在載人運(yùn)載型號(hào)中得到了應(yīng)用與推廣。這些新技術(shù)的應(yīng)用,造成軟件功能和復(fù)雜度的不斷增加。當(dāng)前的軟件已不再是簡(jiǎn)單堆疊起來(lái)的獨(dú)立配置項(xiàng),而是有機(jī)結(jié)合的復(fù)雜分布式軟件系統(tǒng)。軟件產(chǎn)品作為中國(guó)運(yùn)載型號(hào)的重要組成部分,直接影響航天任務(wù)的成敗,可能造成人員傷亡、設(shè)備損壞和環(huán)境破壞等事故,在這種背景下,載人航天任務(wù)對(duì)軟件可靠性提出了更高要求,而運(yùn)載火箭承擔(dān)著空間站工程的發(fā)射和運(yùn)載的重要任務(wù),軟件可靠性更是倍受關(guān)注,其中承擔(dān)關(guān)鍵重要功能的嵌入式軟件的可靠性設(shè)計(jì)又是一個(gè)重要環(huán)節(jié)。
航天型號(hào)關(guān)鍵軟件大多是飛行中使用的嵌入式軟件,固化在航天箭載計(jì)算機(jī)中,與硬件關(guān)系密切,協(xié)同完成特定功能;航天型號(hào)大部分為強(qiáng)實(shí)時(shí)系統(tǒng),具有嚴(yán)格的時(shí)限要求,要求軟件在一定時(shí)間完成相應(yīng)的處理,系統(tǒng)處理結(jié)果不僅要求邏輯正確,而且要求時(shí)間時(shí)序正確可靠。
軟件的錯(cuò)誤或缺陷(不可靠)會(huì)導(dǎo)致任務(wù)的失敗,甚至導(dǎo)致災(zāi)難性的后果。1996年6月4日,阿里安5運(yùn)載火箭因64位浮點(diǎn)向16位帶符號(hào)整數(shù)值的數(shù)據(jù)轉(zhuǎn)換問(wèn)題導(dǎo)致首飛失敗。1998年12月,美國(guó)火星軌道器數(shù)據(jù)數(shù)制轉(zhuǎn)換問(wèn)題,導(dǎo)致毀壞。1999年4月,美國(guó)某軍事衛(wèi)星發(fā)射任務(wù)中,由于運(yùn)載器某個(gè)常量輸入錯(cuò)誤,并且地面試驗(yàn)未檢查出,導(dǎo)致系統(tǒng)工作異常。2009年8月19日,韓國(guó)首枚運(yùn)載火箭羅老號(hào),由于測(cè)量高壓罐壓力的軟件出現(xiàn)了問(wèn)題取消發(fā)射。大量的事故案例表明,軟件設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)過(guò)程中,都需要對(duì)可能發(fā)生的故障進(jìn)行分析,采取充分的可靠性措施,避免出現(xiàn)缺陷或消除故障,來(lái)確保系統(tǒng)不發(fā)生失效。
軟件可靠性一般是指在規(guī)定的條件下和規(guī)定的時(shí)間內(nèi),軟件無(wú)失效運(yùn)行的概率,軟件可靠性設(shè)計(jì)是軟件可靠性工程的重要內(nèi)容,實(shí)質(zhì)是在常規(guī)的軟件設(shè)計(jì)中,應(yīng)用各種必須的方法和技術(shù),使程序設(shè)計(jì)在兼顧用戶(hù)的各種需求時(shí),全面滿(mǎn)足軟件的可靠性要求。軟件的可靠性設(shè)計(jì)貫穿于研制過(guò)程始終。本文主要從載人航天嵌入式軟件的程序設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)兩個(gè)方面來(lái)具體描述高可靠嵌入式軟件的一些設(shè)計(jì)方法。
運(yùn)載型號(hào)的嵌入式軟件的代表產(chǎn)品是控制系統(tǒng)飛行軟件,由它自主、實(shí)時(shí)完成對(duì)火箭的飛行控制,保障載荷精確入軌。同樣在火箭發(fā)射流程中,也有些嵌入式軟件與發(fā)射點(diǎn)火這類(lèi)安全關(guān)鍵的功能相關(guān)。針對(duì)具有這些安全關(guān)鍵功能的程序,都需要采取充分的可靠性設(shè)計(jì)措施,來(lái)確保軟件安全可靠運(yùn)行,避免發(fā)生危險(xiǎn)事件,導(dǎo)致任務(wù)失敗。而程序的查錯(cuò)容錯(cuò)設(shè)計(jì)、多版本容錯(cuò)設(shè)計(jì)、同步輸出設(shè)計(jì)是保障嵌入式軟件可靠性的重要方法。
軟件查錯(cuò)容錯(cuò)設(shè)計(jì)是指在業(yè)務(wù)邏輯功能設(shè)計(jì)基礎(chǔ)上,增加某些特定可靠性措施,使程序在運(yùn)行過(guò)程中自動(dòng)查找存在的錯(cuò)誤并控制錯(cuò)誤影響的一種設(shè)計(jì)方法。它主要包括檢查點(diǎn)設(shè)計(jì)和巡回檢測(cè)設(shè)計(jì)兩個(gè)方面。
1.1.1 檢查點(diǎn)設(shè)計(jì)
檢查點(diǎn)設(shè)計(jì)是在程序的相關(guān)部位設(shè)置檢查點(diǎn),檢查是否發(fā)生了故障。檢查點(diǎn)設(shè)置和執(zhí)行的原則有以下兩點(diǎn):
a)接口原則:在設(shè)計(jì)時(shí)考慮其它硬件或軟件單元存在著錯(cuò)誤;
b)實(shí)時(shí)原則:當(dāng)錯(cuò)誤征兆被偵測(cè)到后,應(yīng)盡快處理,限制錯(cuò)誤的損害程度。
嵌入式軟件的檢查點(diǎn)的選取是為了有效和及時(shí)地識(shí)別故障,從而讓軟件的業(yè)務(wù)邏輯不應(yīng)該因?yàn)楣收咸貏e是瞬發(fā)故障而不能繼續(xù)執(zhí)行任務(wù)。
原則上講,嵌入式軟件在與其他硬件交互時(shí),往往需要進(jìn)行檢查點(diǎn)設(shè)計(jì)來(lái)完善可靠性措施。對(duì)于有時(shí)間應(yīng)答要求的操作,可以設(shè)置一個(gè)計(jì)時(shí)器,當(dāng)在預(yù)定的時(shí)間內(nèi)未獲得應(yīng)答要求時(shí),則可推斷必定出現(xiàn)了故障。如軟件通過(guò)硬件進(jìn)行信號(hào)采集,對(duì)等待外部信號(hào)的程序可進(jìn)行超時(shí)處理,在采集過(guò)程中插入檢查點(diǎn)程序,實(shí)現(xiàn)使用定時(shí)器來(lái)控制循環(huán)動(dòng)作的上限,使得程序能在規(guī)定時(shí)間內(nèi)(無(wú)論采集成功或失?。┩顺龅却獠啃盘?hào)的狀態(tài),避免程序陷入死循環(huán),從而避免出現(xiàn)程序“假死”現(xiàn)象。飛行控制軟件中AD采樣單元在采樣速率陀螺模擬量數(shù)值時(shí)采取了該方法。AD采樣單元中對(duì)某一路AD通道的采樣流程見(jiàn)圖1。
圖1 速率陀螺信號(hào)單個(gè)通道采集設(shè)計(jì)流程Fig.1 Rate Gyro Signal Acquisition Design Diagram
圖1中加粗線的程序段就是一個(gè)簡(jiǎn)單的檢查點(diǎn)設(shè)計(jì)。程序在未判斷出AD轉(zhuǎn)換結(jié)果寄存器有效前,會(huì)循環(huán)讀取該寄存器的值,為了避免AD轉(zhuǎn)換結(jié)果寄存器出現(xiàn)異常而無(wú)法退出循環(huán)的故障情況發(fā)生,在此處設(shè)置檢查點(diǎn),通過(guò)對(duì)AD讀取次數(shù)進(jìn)行控制來(lái)完成AD采樣的可靠性退出機(jī)制,能有效避免硬件錯(cuò)誤的影響范圍和程度。
另外軟件與軟件之間的交互過(guò)程中也往往需要設(shè)計(jì)檢查點(diǎn)。以三冗余的飛行控制軟件與組合導(dǎo)航軟件通過(guò)雙口RAM交換信息的設(shè)計(jì)方法為例。單模的組合導(dǎo)航軟件在讀取三冗余的飛行控制軟件前,需要通過(guò)讀取三CPU雙口RAM硬件同步信號(hào)判斷三CPU數(shù)據(jù)是否準(zhǔn)備好,當(dāng)組合導(dǎo)航軟件判斷存在未準(zhǔn)備好數(shù)據(jù)的CPU時(shí),會(huì)進(jìn)入判斷硬件同步信號(hào)的循環(huán)中。為了避免硬件同步信號(hào)出現(xiàn)異常無(wú)法退出循環(huán)的故障情況發(fā)生,組合導(dǎo)航軟件在查詢(xún)同步信號(hào)狀態(tài)處設(shè)置了檢查點(diǎn),通過(guò)設(shè)置超時(shí)時(shí)間完成可靠性退出機(jī)制。組合導(dǎo)航軟件讀取雙口RAM檢查點(diǎn)設(shè)計(jì)見(jiàn)圖2。
圖2 組合導(dǎo)航飛控導(dǎo)航數(shù)據(jù)的錄取設(shè)計(jì)流程Fig.2 Navigation Data Admission Design Diagram
圖2中加粗線的的程序段是組合導(dǎo)航軟件的2個(gè)檢查點(diǎn)。根據(jù)圖2中流程可知,無(wú)論數(shù)據(jù)準(zhǔn)備好的飛行控制軟件是2個(gè)還是小于2個(gè),均會(huì)進(jìn)入循環(huán)查詢(xún)的檢查點(diǎn),區(qū)別僅是所設(shè)置的超時(shí)時(shí)間不同,此項(xiàng)可靠性設(shè)計(jì)使得組合導(dǎo)航軟件能在飛行控制軟件各種異常狀態(tài)下均能繼續(xù)正常運(yùn)行。
1.1.2 巡回檢測(cè)設(shè)計(jì)
巡回檢測(cè)設(shè)計(jì),即軟件主動(dòng)對(duì)硬件及程序或數(shù)據(jù)進(jìn)行循環(huán)檢查的設(shè)計(jì),其中包括定時(shí)或低優(yōu)先級(jí)的巡檢等。嵌入式軟件中主要檢測(cè)以下幾個(gè)方面:
a)對(duì)RAM中代碼區(qū)進(jìn)行CRC校驗(yàn),以保證正確的操作;
b)對(duì)RAM中諸元區(qū)進(jìn)行CRC校驗(yàn),以保證正確的操作;
c)對(duì)關(guān)鍵及重要的標(biāo)志字及邏輯功能進(jìn)行校核。
嵌入式軟件啟動(dòng)后,會(huì)完成各關(guān)鍵數(shù)據(jù)及關(guān)鍵硬件寄存器的初始化工作,同時(shí)在后臺(tái)對(duì)存放在RAM區(qū)的代碼段和諸元數(shù)據(jù)段進(jìn)行了循環(huán)CRC校核,確保程序與數(shù)據(jù)上傳及搬移的正確性,循環(huán)校核任務(wù)工作在火箭點(diǎn)火前。圖3給出了飛行控制軟件的自檢流程,它是巡回檢測(cè)的典型應(yīng)用。
圖3 飛行控制軟件巡回自檢流程Fig.3 Flight Control Software Tour Self-check Flow Chart
版本程序設(shè)計(jì)由個(gè)開(kāi)發(fā)小組各自獨(dú)立實(shí)現(xiàn)相同功能的相異程序和表決器組成,各相異程序的運(yùn)算結(jié)果經(jīng)過(guò)比較(表決)以確定輸出。在表決器不能分辨出對(duì)錯(cuò)的情況下,采取少數(shù)服從多數(shù)的表決方式確定輸出。
火箭的點(diǎn)火時(shí)序程序采用了3版本程序設(shè)計(jì)。點(diǎn)火時(shí)序程序是控制系統(tǒng)能順利完成火箭點(diǎn)火控制工作的重要組成部分,它由3個(gè)功能相同、版本不同、相互獨(dú)立的程序組成。3個(gè)程序由3個(gè)開(kāi)發(fā)人員獨(dú)立完成,點(diǎn)火1時(shí)序程序的輸出經(jīng)過(guò)硬件控制與點(diǎn)火2時(shí)序程序、點(diǎn)火3時(shí)序程序的輸出三取二后完成火箭的點(diǎn)火和緊急關(guān)機(jī)時(shí)序的控制。3個(gè)軟件在實(shí)現(xiàn)相同時(shí)序控制功能的前提下,采用了不同的設(shè)計(jì)方法:
a)點(diǎn)火1時(shí)序程序的計(jì)時(shí)零點(diǎn)為點(diǎn)火,后續(xù)時(shí)序的輸出采用相對(duì)于點(diǎn)火零點(diǎn)的絕對(duì)時(shí)間;
b)點(diǎn)火2時(shí)序程序的計(jì)時(shí)零點(diǎn)為點(diǎn)火,時(shí)序的輸出采用相對(duì)于前一時(shí)序的相對(duì)時(shí)間;
c)點(diǎn)火3時(shí)序程序使用了跑表型延時(shí)接通定時(shí)器和延時(shí)斷開(kāi)定時(shí)器,時(shí)序的接通以點(diǎn)火計(jì)時(shí)到為條件;本路斷開(kāi)以本路接通作為起始,延時(shí)斷開(kāi)。
3種不同的設(shè)計(jì)方法避免了共因失效,即避免了軟件同因一種邏輯故障機(jī)理失效的可能性,從而提高了軟件系統(tǒng)的可靠性。
載人航天中使用到的三冗余軟件在完成相同的功能時(shí),由于輸入的隨機(jī)性以及軟件運(yùn)行方式的差異性 ,存在三冗余軟件在相鄰的不同周期收到同一輸入信號(hào)的情形,三冗余軟件信號(hào)響應(yīng)時(shí)刻的不同,會(huì)導(dǎo)致輸出結(jié)果會(huì)有所差別。為避免上述情況的發(fā)生,嵌入式軟件采用了交互表決策略進(jìn)行同步處理。
以三冗余驅(qū)動(dòng)信號(hào)輸出嵌入式軟件為例,在三CPU輸出前需要軟件進(jìn)行三CPU同步判別:運(yùn)行在單個(gè)CPU上的每個(gè)軟件通過(guò)查詢(xún)?nèi)鼵PU同步狀態(tài),以及表決功能完成三CPU同步輸出。三CPU同步輸出判別流程見(jiàn)圖4。
圖4 三CPU同步輸出流程Fig.4 Three CPU Synchronous Output Flow Chart
圖4描述的同步輸出基本邏輯如下:
a)本機(jī)在決定是否要輸出前,需確定本機(jī)及另外兩機(jī)是否準(zhǔn)備好輸出;
b)如果本機(jī)和另外兩機(jī)均準(zhǔn)備好,則本機(jī)立即輸出,此時(shí)另外兩機(jī)也會(huì)立即輸出,可以確保此情況三機(jī)同步輸出;
c)如果本機(jī)未準(zhǔn)備好,而另外兩機(jī)準(zhǔn)備好,則進(jìn)入超時(shí)等待機(jī)制;如果超時(shí)時(shí)間Timerout 1過(guò)了本機(jī)仍未準(zhǔn)備好輸出,則本機(jī)不輸出,另外兩機(jī)輸出;
d)如果本機(jī)準(zhǔn)備好,而另外只有1機(jī)準(zhǔn)備好,則進(jìn)入超時(shí)等待機(jī)制,如果超時(shí)時(shí)間Timerout 2過(guò)了三機(jī)仍未全部準(zhǔn)備好,則本機(jī)和另外一機(jī)輸出。
這種同步策略從邏輯上保障了只要有兩機(jī)準(zhǔn)備好時(shí)就能實(shí)現(xiàn)輸出的脈沖嚴(yán)格同步,確保脈沖驅(qū)動(dòng)功能的可靠性。
火箭使用的數(shù)據(jù)主要包括計(jì)算常量、內(nèi)部變量、諸元數(shù)據(jù)以及實(shí)時(shí)采集的數(shù)據(jù)。計(jì)算常量固化在軟件代碼中。諸元數(shù)據(jù)與當(dāng)次飛行任務(wù)密切相關(guān),它隨著飛行任務(wù)不同而變化,需要在臨發(fā)射前生成并裝訂到箭載計(jì)算機(jī)內(nèi)存中,供飛行軟件使用。實(shí)時(shí)采集的數(shù)據(jù)主要包括電壓、壓力、液位等。本章以諸元數(shù)據(jù)為例闡述嵌入式軟件中數(shù)據(jù)的可靠性設(shè)計(jì)方法。
諸元數(shù)據(jù)設(shè)計(jì)過(guò)程中,考慮到在人工輸入、計(jì)算、生成、使用等環(huán)節(jié)可能引入錯(cuò)誤,因此采取了相應(yīng)的可靠性設(shè)計(jì)方法進(jìn)行避錯(cuò)、查錯(cuò),同時(shí)從流程上規(guī)范諸元數(shù)據(jù)生成及驗(yàn)證的過(guò)程,具體流程如圖5所示。圖5中闡述了諸元數(shù)據(jù)設(shè)計(jì)含諸元輸入數(shù)據(jù)確認(rèn)、諸元數(shù)據(jù)自動(dòng)生成、諸元數(shù)據(jù)完整性確認(rèn)、諸元數(shù)據(jù)驗(yàn)證等工作,本節(jié)分別從諸元產(chǎn)生的全生命周期中各個(gè)階段闡述可靠性設(shè)計(jì)和驗(yàn)證的技術(shù)方法。
圖5 諸元數(shù)據(jù)設(shè)計(jì)及驗(yàn)證流程Fig.5 Data Design and Verification Process
為避免人工生成諸元數(shù)據(jù)過(guò)程中引入操作錯(cuò)誤,通過(guò)諸元生成系統(tǒng)讀取諸元原始數(shù)據(jù)以及配置文件,自動(dòng)生成箭上飛行控制軟件能夠識(shí)別的二進(jìn)制格式的諸元文件。諸元原始數(shù)據(jù)由多組文件組成,如制導(dǎo)諸元、姿控諸元、時(shí)序諸元等數(shù)據(jù)輸入文件。配置文件也由多組文件組成,與諸元數(shù)據(jù)輸入文件相對(duì)應(yīng),它規(guī)定了相應(yīng)諸元的數(shù)據(jù)類(lèi)型、數(shù)目、計(jì)算約束條件等信息。諸元數(shù)據(jù)自動(dòng)生成軟件依次讀取諸元原始數(shù)據(jù)輸入文件中的數(shù)據(jù),轉(zhuǎn)換成為目標(biāo)處理器識(shí)別的二進(jìn)制數(shù)據(jù),根據(jù)配置文件排列順序。圖6為諸元自動(dòng)生成系統(tǒng)的示意圖。
圖6 飛行諸元數(shù)據(jù)設(shè)計(jì)和生成系統(tǒng)Fig.6 Flight Metadata Design and Generation System
a)諸元輸入數(shù)據(jù)合理性檢測(cè)。
根據(jù)查錯(cuò)設(shè)計(jì)原則,對(duì)讀到的數(shù)據(jù)進(jìn)行合理性檢測(cè),當(dāng)檢測(cè)到輸入數(shù)據(jù)不合理時(shí)立即中止諸元生成工作,并向用戶(hù)反饋該錯(cuò)誤。合理性檢測(cè)主要包括:
1)變量范圍合理性檢測(cè)。如助推段俯仰、偏航切換網(wǎng)絡(luò)時(shí)間的非負(fù)性判斷。
2)數(shù)組變量非負(fù)性和單調(diào)性檢測(cè)。如為對(duì)飛行時(shí)和各段飛行時(shí)t的非負(fù)性和單調(diào)性檢查,以及每行數(shù)據(jù)時(shí)間間隔合理性檢查。
b)數(shù)組型諸元數(shù)據(jù)外推設(shè)計(jì)。
為保證飛行控制軟件使用諸元數(shù)據(jù)時(shí)工作于內(nèi)插狀態(tài),將數(shù)據(jù)進(jìn)行外推,最終裝訂量滿(mǎn)足裝訂時(shí)間范圍后如果仍未填滿(mǎn)數(shù)據(jù)空間,則將數(shù)據(jù)進(jìn)行外推擴(kuò)展,直至填滿(mǎn)整個(gè)裝訂數(shù)據(jù)空間,對(duì)飛行控制軟件起到內(nèi)插保護(hù)的效果。
為確保諸元數(shù)據(jù)的完整性,對(duì)諸元數(shù)據(jù)進(jìn)行完整性檢驗(yàn)設(shè)計(jì)。在二進(jìn)制諸元文件開(kāi)頭增加諸元數(shù)據(jù)開(kāi)始標(biāo)志,尾部增加諸元數(shù)據(jù)結(jié)束標(biāo)志以及校驗(yàn)信息,使飛行控制軟件能在啟動(dòng)運(yùn)行后,根據(jù)文件中諸元數(shù)據(jù)開(kāi)始標(biāo)志和結(jié)束標(biāo)志計(jì)算出諸元文件長(zhǎng)度,根據(jù)諸元文件的長(zhǎng)度以及文件中的CRC值循環(huán)進(jìn)行諸元段CRC校驗(yàn),如果計(jì)算的CRC校驗(yàn)碼與文件中自帶的CRC校驗(yàn)碼相等,則諸元數(shù)據(jù)沒(méi)有損壞,否則說(shuō)明諸元數(shù)據(jù)在傳輸或存儲(chǔ)過(guò)程中發(fā)生損壞。二進(jìn)制格式的諸元數(shù)據(jù)空間分配示意見(jiàn)圖7。
圖7 二進(jìn)制諸元文件結(jié)構(gòu)Fig.7 Binary Metafile Structure Diagram
為驗(yàn)證編譯器在諸元數(shù)據(jù)源碼向目標(biāo)碼轉(zhuǎn)換過(guò)程的正確性。對(duì)諸元數(shù)據(jù)目標(biāo)碼進(jìn)行快速逆向解析、比對(duì)和翻譯,并在源碼中定位,生成比對(duì)報(bào)告,驗(yàn)證諸元目標(biāo)碼和源碼的一致性。設(shè)計(jì)上是先以?xún)?nèi)存map文件和諸元模板文件為基礎(chǔ),把諸元目標(biāo)碼逆向生成源碼,其中要解決目標(biāo)碼中諸元變量的源碼定位、分析和格式翻譯等諸多問(wèn)題。再利用諸元模板、誤差容限配置進(jìn)行諸元比對(duì)。它能確保生成諸元數(shù)據(jù)目標(biāo)碼產(chǎn)品同源碼完全一致,避免由于生成過(guò)程缺陷影響最終諸元數(shù)據(jù)產(chǎn)品的正確性。計(jì)算溢出錯(cuò)誤便可通過(guò)諸元數(shù)據(jù)的反向比對(duì)進(jìn)行檢驗(yàn)。計(jì)算溢出錯(cuò)誤,就是在計(jì)算過(guò)程中,變量的值超過(guò)了該變量類(lèi)型的有效范圍。通過(guò)反向生成得到的源文件同初始源文件進(jìn)行比對(duì),即可檢驗(yàn)出計(jì)算溢出錯(cuò)誤。圖8為諸元源文件和逆向生成源文件比對(duì)設(shè)計(jì)示意。
圖8 諸元源文件和逆向生成源文件比對(duì)設(shè)計(jì)示意Fig.8 Schematic Diagram of Comparison Design between Data Source Files and Reverse Generated Source Files
本文重點(diǎn)從程序可靠性設(shè)計(jì)與數(shù)據(jù)可靠性設(shè)計(jì)兩方面入手,介紹高可靠嵌入式軟件中與可靠性相關(guān)的重要而具體設(shè)計(jì)的方法,也正是這些方法的實(shí)踐和應(yīng)用,使火箭系統(tǒng)冗余方案能有效發(fā)揮作用,從而圓滿(mǎn)完成載人航天工程發(fā)射任務(wù)。