專利名稱:一種基于少量代碼重加載的dsp抗單粒子糾錯方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于少量代碼重加載的DSP抗單粒子糾錯方法,保證DSP軟件能 夠在空間應(yīng)用中針對單粒子翻轉(zhuǎn)事件仍然可靠運行,屬于微電子技術(shù)領(lǐng)域。
背景技術(shù):
隨著航天器功能的發(fā)展,越來越多的有效載荷產(chǎn)品使用了先進的數(shù)字信號處理技 術(shù),為了完成這些數(shù)字處理功能,硬件設(shè)計上采用大規(guī)模數(shù)字集成電路DSP的設(shè)備越來越 多。伴隨著DSP的制造工藝從0. 33微米發(fā)展到90納米(可靠性達到宇航標準的器件),這 些元器件的單粒子效應(yīng)越來越嚴重,而同時由于各個國家對空間應(yīng)用的日益重視,空間中 的衛(wèi)星密度愈來愈大,越來越多的衛(wèi)星工作在距地面1000-1800公里的軌道高度上,這段 軌道中的單粒子效應(yīng)格外嚴重,尤其是需要連續(xù)、長期穩(wěn)定工作的宇航設(shè)備如果采用了這 些抗單粒子效應(yīng)差的大規(guī)模集成電路,又不采取單粒子效應(yīng)加固措施,不能滿足用戶對星 上數(shù)字處理設(shè)備連續(xù)完好性的要求。數(shù)字信號處理器(DSP)是對信號和圖像實現(xiàn)實時處理的一種高性能的CPU,以TI 的TMS320C3X為例,其是一個以寄存器為基礎(chǔ)的CPU,主要由以下幾個部分構(gòu)成浮點/整 數(shù)乘法器、算術(shù)邏輯單元、32位桶式移位器、CPU寄存器組、Bootloader(片內(nèi)ROM)和片內(nèi) RAM。DSP受單粒子翻轉(zhuǎn)影響主要有以下幾種模式1、程序存儲區(qū)的位翻轉(zhuǎn),引起程序的“跑飛”或者“死機”或者帶病運行;2、數(shù)據(jù)存儲區(qū)的位翻轉(zhuǎn),造成關(guān)鍵變量的翻轉(zhuǎn),引起功能邏輯的紊亂,比如中途退 出循環(huán)程序,錯誤執(zhí)行條件語句等;3、外設(shè)控制寄存器的功能中斷,引起外設(shè)配置狀態(tài)的變化,造成模塊間數(shù)據(jù)通信 的異常;4、中斷控制寄存器的單粒子功能中斷,引起意外中斷的發(fā)生,擾亂正常程序進 程;5、程序Cache的位翻轉(zhuǎn),引起程序的異常執(zhí)行;6、JTAG邏輯的功能中斷,導致整個DSP的復(fù)位或者死機。從公開刊物及公開渠道上所了解到的國外的DSP抗單粒子技術(shù)主要有以下兩種(1)使用片外存儲器+EDAC校驗的方式利用FPGA對片外存儲器進行校驗糾錯,系統(tǒng)組成如圖1所示,DSP使用片外存儲 器SRAM作為程序代碼的存儲芯片,在DSP啟動時將PROM中的數(shù)據(jù)加載至SRAM ;運行過程 中由專門負責校驗的FPGA芯片對代碼數(shù)據(jù)進行校驗,將糾錯后的代碼傳遞給DSP運行,同 時對SRAM進行反寫糾錯,這樣就保證了 DSP運行的正確性。(2) DSP硬件三模冗余方式。采用三片DSP芯片同時運行相同的程序,由主控計算機通過DSP芯片的HPI 口來 控制,對地址總線和數(shù)據(jù)進行三選一判決,當表決電路檢測出一位錯誤時,糾錯服務(wù)子程序 啟動工作,來根據(jù)表決電路和自檢程序識別出的錯誤等級,錯誤類型修復(fù)系統(tǒng)回歸正常。
3
這兩種方式較好的解決了單粒子翻轉(zhuǎn)問題,但是其缺點是硬件開銷大,需要增加 多個芯片,而且需要在設(shè)計時就要針對單粒子問題采用該硬件平臺方案。由于現(xiàn)在很多即 將交付的型號單機的硬件平臺已經(jīng)定型,或者由于產(chǎn)品結(jié)構(gòu)的問題,無法采用更改硬件平 臺的手段應(yīng)對單粒子翻轉(zhuǎn)問題。國內(nèi)的抗單粒子研究主要也是在這兩種方法的基礎(chǔ)上進行的,尤其是第一種方法 采用較多。在《空間DSP信息處理系統(tǒng)存儲器SEU加固技術(shù)研究》(宇航學報,2010/31/02, 肖山竹)中,以及《空間DSP加載系統(tǒng)可靠性設(shè)計》(計算機工程,2010年3月,張路)等文 獻中均是采用了該方法。使用純軟件手段實現(xiàn)的抗單粒子方法在文獻中介紹的較少,在《星載高性能DSP 加固設(shè)計方法研究》(電子器件,2007年2月,邢克飛)中介紹了依靠程序區(qū)糾錯抗單粒子 翻轉(zhuǎn)的方法對程序存儲區(qū)進行檢錯,如果發(fā)現(xiàn)程序存儲區(qū)出現(xiàn)錯誤,就通過外部監(jiān)控模塊 對DSP程序進行重新引導。這里采用加法運算,對整個存儲區(qū)的程序按照16位無符號數(shù)進 行求和,結(jié)果作為校驗數(shù)來檢驗程序區(qū)是否發(fā)生單粒子翻轉(zhuǎn)。實施方法如下在程序固化前 對整個程序區(qū)進行求和,結(jié)果作為常量存放到三個位置,然后將此程序固化。當程序從ROM 或者FLASH中引導到DSP中運行時,DSP在適當?shù)臅r間對自身程序區(qū)數(shù)據(jù)進行求和,并將結(jié) 果與三個校驗值的表決結(jié)果進行比對。如果兩者不一樣,那么就認為程序區(qū)發(fā)生了單粒子 翻轉(zhuǎn),此時可以通過程序重新引導的方法恢復(fù)正常。該方法無法保證校驗程序本身的正確 性,因為DSP是采用哈佛結(jié)構(gòu),數(shù)據(jù)總線和程序總線是分開的,這樣校驗程序無法將同一個 數(shù)據(jù)同時作為數(shù)據(jù)和代碼使用(會導致總線競爭而出錯),在校驗程序本身被單粒子打翻 的時候會導致異常的后果。而且該方法的糾錯方式是通過復(fù)位重新加載整個程序,這樣就 無法保證程序的連續(xù)運行,在很多需要連續(xù)運行的設(shè)備中不能滿足應(yīng)用條件。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種基于少量代碼重加載 的DSP抗單粒子糾錯方法,本發(fā)明能夠在不變動硬件平臺的條件下解決了 DSP單粒子翻轉(zhuǎn) 問題,降低了設(shè)備的硬件成本、空間成本以及時間成本。本發(fā)明的技術(shù)解決方案是一種基于少量代碼重加載的DSP抗單粒子糾錯方法, DSP通過數(shù)據(jù)總線和地址總線與FPGA和PROM相連接,F(xiàn)PGA通過控制總線與PROM相連接, 在PROM的不同區(qū)域中存儲加載及校驗程序和應(yīng)用程序,當DSP上電或者復(fù)位后,DSP首先 運行DSP片內(nèi)ROM中的bootloader程序?qū)ROM中的加載及校驗程序加載至DSP片內(nèi)RAM 中,加載及校驗程序開始運行后首先根據(jù)FPGA內(nèi)的寄存器值判斷本次程序運行是否為首 次運行,如果是首次運行加載及校驗程序則由加載及校驗程序直接加載運行應(yīng)用程序,如 果不是首次運行加載及校驗程序則由應(yīng)用程序在運行時定期調(diào)用DSP片內(nèi)ROM中的加載及 校驗程序?qū)?yīng)用程序進行糾錯校驗;所述對應(yīng)用程序進行糾錯校驗的工作流程為(1)首先對應(yīng)用程序進行現(xiàn)場保護,然后調(diào)用DSP片內(nèi)ROM所自帶的bootloader 程序,從PROM中將加載及校驗程序加載至DSP片內(nèi)RAM中;(2)加載完畢后跳轉(zhuǎn)至加載及校驗程序入口處開始執(zhí)行加載及校驗程序中的校驗 程序代碼實現(xiàn)對應(yīng)用程序代碼段的抗單粒子糾錯;
(3)完成對應(yīng)用程序的抗單粒子糾錯后對應(yīng)用程序進行現(xiàn)場恢復(fù);所述存儲加載 及校驗程序中校驗程序的工作流程為(a)獲取跳轉(zhuǎn)應(yīng)用程序的目的地址,供糾錯完畢后跳轉(zhuǎn)至該處;(b)利用校驗程序?qū)?yīng)用程序代碼段進行抗單粒子糾錯;(c)如果糾錯成功,則跳轉(zhuǎn)至步驟(e);(d)如果糾錯失敗,則認定應(yīng)用程序已被單粒子打翻,重新加載應(yīng)用程序的代碼段 數(shù)據(jù),首先從PROM中應(yīng)用程序的首地址開始獲取加載的目的地址,如果該加載段屬于代碼 段,則對該加載段進行加載,否則跳過重新獲取下一個加載段的目的地址直至加載完畢;(e)跳轉(zhuǎn)回應(yīng)用程序。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于本發(fā)明給出了一種不依賴于修改硬件設(shè)計的 DSP抗單粒子方案,基于平臺中高可靠性器件上存儲的程序代碼,實現(xiàn)對可靠性較低的存儲 器件上的數(shù)據(jù)進行糾錯,具體過程是通過利用DSP片內(nèi)ROM的bootloader程序?qū)ROM中的 bootloaderl程序加載至片內(nèi)RAM中,由bootoaderl程序再加載應(yīng)用程序,bootoaderl程 序中嵌入一個校驗糾錯程序,通過兩個程序的配合實現(xiàn)抗單粒子措施的。由于bootloaderl 程序是運行前實時加載的,所以可以認為該部分為可靠代碼,再通過該部分的糾錯,可以認 為整個程序的運行是安全可靠的。由于在糾錯時僅對代碼段進行了加載,并不破壞數(shù)據(jù)區(qū) 的內(nèi)容,保證了程序運行的連續(xù)性;另外,本發(fā)明不變動硬件平臺,極大地降低了設(shè)備的硬 件成本、空間成本以及時間成本。
圖1為現(xiàn)有技術(shù)中使用片外存儲器+EDAC校驗方式的系統(tǒng)組成圖;圖2為本發(fā)明采用的DSP平臺的系統(tǒng)結(jié)構(gòu)圖;圖3為本發(fā)明的加載及校驗程序和應(yīng)用程序空間存儲關(guān)系圖;圖4為本發(fā)明運行加載及校驗程序時的流程圖;圖5為本發(fā)明運行應(yīng)用程序時的控制流程圖;圖6為本發(fā)明加載及校驗程序的工作流程圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明做進一步詳細的描述本發(fā)明利用高可靠性器件(DSP自帶的片內(nèi)只讀ROM)作為可信載體,實現(xiàn)對可靠 性較差的器件中的存儲數(shù)據(jù)的定時糾錯,并定時更新部分控制寄存器的數(shù)據(jù)實現(xiàn)對控制寄 存器的數(shù)據(jù)保護。DSP平臺的系統(tǒng)結(jié)構(gòu)圖如圖2所示,這是一個DSP應(yīng)用的典型平臺,由 DSP及FPGA配合工作,絕大多數(shù)未采取硬件抗單粒子加固設(shè)計的數(shù)字信息處理平臺的結(jié) 構(gòu)都是該種結(jié)構(gòu)。其軟件運行過程為當DSP加電之后,DSP自動運行片內(nèi)ROM中存儲的 boot loader程序從PROM中獲取應(yīng)用程序代碼數(shù)據(jù),加載至片內(nèi)RAM中后跳轉(zhuǎn)至應(yīng)用程序入 口處開始運行。PROM本身是一個高可靠性器件,但由于運行代碼最終是加載到片內(nèi)RAM中 運行的,這就會導致在應(yīng)用軟件運行過程中會由于片內(nèi)RAM的翻轉(zhuǎn)導致軟件故障發(fā)生。本發(fā)明將PROM中存儲的原應(yīng)用程序分為加載及校驗程序(bootloaderl)和應(yīng) 用程序兩部分,這兩部分程序在運行時存儲在完全獨立的兩塊內(nèi)存區(qū)域中;其存儲的空間位置情況如圖3所示其中虛線箭頭表示程序的跳轉(zhuǎn)關(guān)系,實線箭頭表示程序的加載 關(guān)系;當設(shè)備上電或者復(fù)位后,DSP首先運行片內(nèi)ROM中的bootloader程序?qū)ROM中的 bootloaderl程序加載至片內(nèi)RAM中,由bootoaderl程序再加載應(yīng)用程序,bootoaderl程 序中嵌入一個校驗糾錯程序,通過兩個程序的配合實現(xiàn)抗單粒子措施的,所以在進行設(shè)計 時要分別獨立設(shè)計這兩段程序,并分配置不同的內(nèi)存區(qū)域。首次運行加載及校驗程序時的流程如圖4所示,應(yīng)用程序加載完畢后,則跳轉(zhuǎn)至 應(yīng)用程序入口處開始應(yīng)用程序的運行。應(yīng)用程序的控制流如圖5所示,應(yīng)用程序在運行時 定期調(diào)用只讀ROM中的bootloaderl程序?qū)崿F(xiàn)對應(yīng)用程序進行糾錯校驗,其實現(xiàn)的手段是 應(yīng)用程序在運行過程中,進行保護現(xiàn)場后,通過加載bootloaderl程序?qū)崿F(xiàn)對應(yīng)用程序本 身代碼的糾錯檢查,檢查后進行現(xiàn)場恢復(fù),繼續(xù)運行。由于檢查的程序(bootloaderl程序) 是應(yīng)用程序運行前實時加載的,所以可以認為該部分為可靠代碼,再通過該部分的糾錯,可 以認為整個程序的運行是安全可靠的。Bootloaderl程序其功能為根據(jù)FPGA中的寄存器(如果沒有條件也可使用內(nèi) 存)判斷本次調(diào)用需要實現(xiàn)的功能為加載應(yīng)用程序還是校驗糾錯,實現(xiàn)相應(yīng)功能后程序 跳轉(zhuǎn)置不同位置開始運行。其流程如圖6所示程序開始運行后首先根據(jù)FPGA的寄存 器判斷本次任務(wù)是否為首次運行,如果為首次運行則加載應(yīng)用程序,其流程同DSP自帶的 bootloader代碼,只需將代碼加載地址更改為設(shè)計的應(yīng)用程序起始地址即可。過程如下1)從設(shè)計的應(yīng)用程序數(shù)據(jù)(PR0M上第2塊數(shù)據(jù),第1塊數(shù)據(jù)為bootloaderl程序) 的起始地址處獲取程序入口;2)從PROM的數(shù)據(jù)中獲取本段代碼的長度;3)如果獲取的代碼長度為0,則跳轉(zhuǎn)至獲取的程序入口 ;4)如果獲取得代碼長度不為0,則繼續(xù)獲取本段代碼的加載目的地址;5)向目的地址按數(shù)據(jù)長度加載代碼;6)跳轉(zhuǎn)加載下段代碼,直至加載長度為0。加載完畢后跳轉(zhuǎn)至獲取的應(yīng)用程序入口地址處,開始運行應(yīng)用程序。如果并非首次運行則應(yīng)該運行校驗糾錯流程,按照以下流程執(zhí)行1)獲取跳轉(zhuǎn)目的地址,供糾錯完畢后跳轉(zhuǎn)至該處;2)對應(yīng)用程序代碼段進行糾錯校驗,根據(jù)應(yīng)用程序的map表對整個代碼段進行校 驗檢查。校驗可以根據(jù)情況選用不同的校驗方式,但是不建議選用過于復(fù)雜的校驗方式,否 則對應(yīng)用軟件的實時性會造成很大負面影響;3)如果糾錯成功,則跳轉(zhuǎn)至流程5。4)如果糾錯失敗,則認定程序已被單粒子打翻,重新加載應(yīng)用程序的代碼段數(shù)據(jù)。 首先從PROM上應(yīng)用程序的首地址開始獲取加載的目的地址,如果該加載段屬于代碼段(對 該目的地址數(shù)據(jù)以及代碼段地址的范圍進行判斷)則對該段進行加載;如果該段不屬于代 碼段則跳過,重新獲取下一個加載段的目的地址直至加載完畢。5)跳轉(zhuǎn)回應(yīng)用程序。應(yīng)用程序通過在主循環(huán)中嵌入對DSP自帶的bootlader程序的調(diào)用實現(xiàn)對本身的 檢錯。主要過程如下(1)當應(yīng)用程序主循環(huán)程序運行至校驗程序處時,首先對軟件現(xiàn)場進行保護,之后調(diào)用DSP片內(nèi)ROM所自帶的bootloader程序,從片外的PROM中提取由設(shè)計師開發(fā)的 bootloaderl 禾呈序;(2)加載完畢則跳轉(zhuǎn)至bootloaderl入口處開始執(zhí)行bootladerl代碼;(3)bootloaderl程序通過讀取FPGA實現(xiàn)的寄存器或者其他存儲器的內(nèi)容來區(qū)分 當前是否為首次加載,不是首次加載則執(zhí)行抗單粒子糾錯程序。該程序主要有以下幾個功能1)對代碼段的數(shù)據(jù)和PROM中的數(shù)據(jù)進行比較并糾錯。2)對數(shù)據(jù)區(qū)中的常數(shù)部分的進行糾錯。3)對控制寄存器進行重新初始化。4)跳轉(zhuǎn)回主循環(huán)。5)恢復(fù)現(xiàn)場,繼續(xù)運行應(yīng)用程序。實施例本例平臺采用典型處理平臺DSP+FPGA配合形式,系統(tǒng)框圖如圖2所示。應(yīng)用程序 使用C語言編寫,bootloaderl使用匯編語言,bootloaderl程序的具體流程如圖6所示。FPGA除本身功能外還包含一個寄存器,該寄存器由FPGA在上電時或FPGA對DSP 復(fù)位時初始化為0x55,DSP加載代碼后設(shè)置為OxAA ;該寄存器地址為0x810000。并且本例 中將被單粒子打翻的次數(shù)記錄在FPGA的一個寄存器中,供應(yīng)用軟件下傳;該寄存器地址為 0x8a0000。Bootloaderl處于以下地址C0DE2 :origin = 0x00804000, length = 0x00003000應(yīng)用程序代碼段位于以下地址C0DE1 :origin = 0x00800000,length = 0x00003000Bootloaderl 代碼如下global comparetextcompare Idi 80h, DP ;初始化 DPIdi DP, AROIsh 16,ARO ;代碼段首地址 800000hIdi ARO, AR2 ;得到起始地址(比對用)Idi AR0, AR3 ;得到起始地址(搬移用)Idi 10e8h, ARlor ARl,ARO ;末尾地址計數(shù)器初始化 8010e8_ > arOIdi 0,ARl ;異或和初始化LOOP xor 女 AR2++,ARl ;開女臺異或cmpi ARO, AR2bio LOOPIdi 86Flh, RO
7
Ish 16, ROor 8EF7h, RO ;應(yīng)用程序異或和cmpi ARl, RO ;比較計算結(jié)果和預(yù)設(shè)值beq exitIdi 40h, ARl ;40101ch_ > AR1EPR0M 首地址Ish 16,ARlor IOlch, ARl_eprom_load ;加載代碼段數(shù)據(jù)Idi 女 ARl++, ROAND Offh, ROIdi * ARl++, Rland Offh, RlIsh 8,Rlor Rl, ROIdi ^ ARl++, Rland Offh, RlIsh 16,Rlor Rl, ROIdi ^ ARl++, RlIsh 24, Rlor Rl,RO ;獲取 32 位字sti RO,* AR3++ ;搬移cmpi ARO, AR3 ;判斷是否屬于代碼段數(shù)據(jù)blo_eprom_loadIdi 8Ah,ARl ;寫入遙測0x8A0000供應(yīng)用程序下傳Ish 16,ARlIdi ^ ARl, ROaddi 1,ROsti R0,* ARlexit Idi 2000h, STIdi Oh, IFIdi OlOdh, IEIdi 80h,ARO ;獲取跳轉(zhuǎn)入口地址Ish 16,AROor Odadh,ARObu ARO應(yīng)用軟件在主循環(huán)中增加以下代碼asm(〃 push DP")
asm (“pushARO “)
asm (“pushARl")
asm (“pushAR2 “)
asm (“pushAR3 “)
asm (“pushR0")
asm (“pushRl")
asm (“pushR2")
asm (“pushR3")
asm (“pushR4")
asm (“Idi80h, ARl//);保存堆棧指針
asm (“Ish16,ARl")
asm (“or7000h, ARl")
asm (“stisp,女 ARl 〃)
asm (“IdiOh, ARl")
asm (“buARl 〃 );跳轉(zhuǎn)至 bootloader
asm (“IdiSOh,ARl〃);糾錯之后跳轉(zhuǎn)回的目的地址(OxSOOdad),獲取堆棧指針
asm (“Ish16,ARl “)
asm (“or7000h, ARl“)
asm (“sti女 ARl, sp〃)
asm (“popR4");恢復(fù)現(xiàn)場
asm (“popR3")
asm (“popR2")
asm (“popRl")
asm (“popR0")
asm (“popAR3 “)
asm (“popAR2 “)
asm (“popARl")
asm (“popARO ‘‘)
asm (“popDP")
本方案可以有效地對DSP的單粒子翻轉(zhuǎn)故障模式中的1,3,4項進行故障的糾錯處
理;第2項可以通過關(guān)鍵變量的三摸冗余技術(shù)進行糾錯管理,第5項通過禁止使用cache方 式避免,第6項通過看門狗進行復(fù)位處理。綜上所述,采用本方案后可以對大多數(shù)的單粒子 翻轉(zhuǎn)故障進行糾錯處理,保證軟件能夠針對單粒子翻轉(zhuǎn)事件進行較高可靠性的運行。
本發(fā)明未詳細描述內(nèi)容為本領(lǐng)域技術(shù)人員公知技術(shù)。
權(quán)利要求
一種基于少量代碼重加載的DSP抗單粒子糾錯方法,DSP通過數(shù)據(jù)總線和地址總線與FPGA和PROM相連接,F(xiàn)PGA通過控制總線與PROM相連接,其特征在于在PROM的不同區(qū)域中存儲加載及校驗程序和應(yīng)用程序,當DSP上電或者復(fù)位后,DSP首先運行DSP片內(nèi)ROM中的bootloader程序?qū)ROM中的加載及校驗程序加載至DSP片內(nèi)RAM中,加載及校驗程序開始運行后首先根據(jù)FPGA內(nèi)的寄存器值判斷本次程序運行是否為首次運行,如果是首次運行加載及校驗程序則由加載及校驗程序直接加載運行應(yīng)用程序,如果不是首次運行加載及校驗程序則由應(yīng)用程序在運行時定期調(diào)用DSP片內(nèi)ROM中的加載及校驗程序?qū)?yīng)用程序進行糾錯校驗;所述對應(yīng)用程序進行糾錯校驗的工作流程為(1)首先對應(yīng)用程序進行現(xiàn)場保護,然后調(diào)用DSP片內(nèi)ROM所自帶的bootloader程序,從PROM中將加載及校驗程序加載至DSP片內(nèi)RAM中;(2)加載完畢后跳轉(zhuǎn)至加載及校驗程序入口處開始執(zhí)行加載及校驗程序中的校驗程序代碼實現(xiàn)對應(yīng)用程序代碼段的抗單粒子糾錯;(3)完成對應(yīng)用程序的抗單粒子糾錯后對應(yīng)用程序進行現(xiàn)場恢復(fù);所述存儲加載及校驗程序中校驗程序的工作流程為(a)獲取跳轉(zhuǎn)應(yīng)用程序的目的地址,供糾錯完畢后跳轉(zhuǎn)至該處;(b)利用校驗程序?qū)?yīng)用程序代碼段進行抗單粒子糾錯;(c)如果糾錯成功,則跳轉(zhuǎn)至步驟(e);(d)如果糾錯失敗,則認定應(yīng)用程序已被單粒子打翻,重新加載應(yīng)用程序的代碼段數(shù)據(jù),首先從PROM中應(yīng)用程序的首地址開始獲取加載的目的地址,如果該加載段屬于代碼段,則對該加載段進行加載,否則跳過重新獲取下一個加載段的目的地址直至加載完畢;(e)跳轉(zhuǎn)回應(yīng)用程序。
全文摘要
本發(fā)明公開了一種基于少量代碼重加載的DSP抗單粒子糾錯方法,通過利用DSP片內(nèi)ROM的bootloader程序?qū)ROM中的bootloader1程序加載至片內(nèi)RAM中,由bootoader1程序再加載應(yīng)用程序,bootoader1程序中嵌入一個校驗糾錯程序,通過兩個程序的配合實現(xiàn)抗單粒子措施的。由于bootloader1程序是運行前實時加載的,所以可以認為該部分為可靠代碼,再通過該部分的糾錯,可以認為整個程序的運行是安全可靠的。由于在糾錯時僅對代碼段進行了加載,并不破壞數(shù)據(jù)區(qū)的內(nèi)容,保證了程序運行的連續(xù)性;另外,本發(fā)明不變動硬件平臺,極大地降低了設(shè)備的硬件成本、空間成本以及時間成本。
文檔編號G06F11/00GK101976212SQ20101052768
公開日2011年2月16日 申請日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者吳化軍, 張赤萍, 蔡春貴, 鐘興旺, 韓虹 申請人:西安空間無線電技術(shù)研究所