[發(fā)明專利]一種用于DSP的分段雙冗余引導(dǎo)加載方法在審
| 申請(qǐng)?zhí)枺?/td> | 202011469679.0 | 申請(qǐng)日: | 2020-12-14 |
| 公開(公告)號(hào): | CN112559071A | 公開(公告)日: | 2021-03-26 |
| 發(fā)明(設(shè)計(jì))人: | 楊健;阮忠園;張曉峰;蔣凱;計(jì)旭;贠磊磊 | 申請(qǐng)(專利權(quán))人: | 上海航天控制技術(shù)研究所 |
| 主分類號(hào): | G06F9/445 | 分類號(hào): | G06F9/445 |
| 代理公司: | 上海航天局專利中心 31107 | 代理人: | 圣冬冬 |
| 地址: | 201109 *** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 用于 dsp 分段 冗余 引導(dǎo) 加載 方法 | ||
本發(fā)明屬于嵌入式軟件技術(shù)領(lǐng)域,具體為一種用于DSP的分段雙冗余引導(dǎo)加載方法。本發(fā)明公開了一種用于DSP的分段雙冗余引導(dǎo)加載方法,將應(yīng)用程序按程序代碼大小分成多個(gè)段,將各段的運(yùn)行地址、長(zhǎng)度、CRC校驗(yàn)及各段代碼冗余地固化于FLASH中,上電后根據(jù)各段的起始地址及長(zhǎng)度將各段代碼搬運(yùn)至SRAM中,并計(jì)算搬運(yùn)后SRAM內(nèi)各段的校驗(yàn)CRC校驗(yàn)是否正確,若不正確則將該段代碼從FLASH的冗余區(qū)重新搬到SRAM內(nèi);本發(fā)明能夠解決FLASH存儲(chǔ)器在長(zhǎng)期存儲(chǔ)后或受到外部干擾后存在單粒子翻轉(zhuǎn)的問題,并提高應(yīng)用程序搬運(yùn)的可靠性;本發(fā)明分段將應(yīng)用程序由FLASH搬運(yùn)至RAM,各段校驗(yàn)出錯(cuò)后僅需搬運(yùn)本段代碼,無需再次搬運(yùn)整個(gè)程序,可較少校驗(yàn)出錯(cuò)后應(yīng)用程序的搬運(yùn)時(shí)間。
技術(shù)領(lǐng)域
本發(fā)明屬于嵌入式系統(tǒng)技術(shù)領(lǐng)域,具體為一種用于DSP的分段雙冗余引導(dǎo)加載方法。
背景技術(shù)
TMS320C6000等系列DSP內(nèi)部無FLASH存儲(chǔ)器,應(yīng)用程序一般固化于芯片外擴(kuò)FLASH中。由于FLASH存儲(chǔ)器讀取速度較慢,在上電復(fù)位之后,需由引導(dǎo)加載軟件將應(yīng)用程序程序搬運(yùn)(拷貝)至DSP內(nèi)部SRAM或外擴(kuò)SRAM中執(zhí)行,實(shí)現(xiàn)系統(tǒng)的高速運(yùn)行。
FLASH存儲(chǔ)器在長(zhǎng)期存儲(chǔ)后或受到外部干擾后存在單粒子翻轉(zhuǎn)的現(xiàn)象,導(dǎo)致搬運(yùn)至RAM內(nèi)的應(yīng)用程序代碼出錯(cuò),導(dǎo)致應(yīng)用運(yùn)行不正確。
發(fā)明內(nèi)容
本發(fā)明的目的在于保證將應(yīng)用程序代碼從FLASH存儲(chǔ)器引導(dǎo)加載至SRAM存儲(chǔ)器過程中應(yīng)用程序代碼的正確性,并提高固化于FLASH存儲(chǔ)器中的程序代碼長(zhǎng)期存儲(chǔ)后運(yùn)行的可靠性。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明公開一種用于DSP的分段雙冗余引導(dǎo)加載方法,其包括如下步驟:
步驟1:將應(yīng)用程序代碼按大小分為多個(gè)程序段,并計(jì)算每個(gè)段的CRC32校驗(yàn)值;
步驟2:將應(yīng)用程序各段代碼在SRAM內(nèi)的運(yùn)行地址、代碼長(zhǎng)度及CRC32校驗(yàn)值燒寫至FLASH存儲(chǔ)器中;
步驟3:將應(yīng)用程序各段代碼代碼依次燒寫至FLASH存儲(chǔ)器A1~AN區(qū)域中,同時(shí)燒寫至冗余區(qū)域B1~BN中;
步驟4:上電后,根據(jù)存儲(chǔ)在FLASH存儲(chǔ)器中的應(yīng)用程序第1段代碼的運(yùn)行地址及長(zhǎng)度將FLASH存儲(chǔ)器中第1段代碼A1區(qū)域數(shù)據(jù)搬運(yùn)至SRAM的第1段代碼區(qū);
步驟5:計(jì)算搬運(yùn)后SRAM中第1段代碼區(qū)的CRC32校驗(yàn)值,并比較計(jì)算得到的校驗(yàn)值與存儲(chǔ)在FLASH內(nèi)第1段代碼的校驗(yàn)值是否一致;
步驟6:若校驗(yàn)一致,則繼續(xù)搬運(yùn)第2段代碼;
步驟7:若校驗(yàn)不一致,則將FLASH存儲(chǔ)器中第1段代碼冗余A2區(qū)域數(shù)據(jù)搬運(yùn)至SRAM的第1段代碼區(qū),計(jì)算搬運(yùn)后SRAM中第1段代碼區(qū)的CRC32校驗(yàn)值,并比較計(jì)算得到的校驗(yàn)值與存儲(chǔ)在FLASH內(nèi)第1段代碼的校驗(yàn)值是否一致;
步驟8:若校驗(yàn)一致,則繼續(xù)搬運(yùn)第2段代碼;
步驟9:若校驗(yàn)不一致,則將錯(cuò)誤代碼及錯(cuò)誤地址發(fā)送至上位機(jī),同時(shí)終止運(yùn)行;
步驟10:按照上述方法將應(yīng)用程序各段的代碼均搬運(yùn)至SRAM且校驗(yàn)均正確后,啟動(dòng)運(yùn)行應(yīng)用程序。
如上述用于DSP的分段雙冗余引導(dǎo)加載方法,為保證應(yīng)用程序代碼從FLASH存儲(chǔ)器搬運(yùn)值SRAM存儲(chǔ)器的正確性,將應(yīng)用程序代碼分成了多個(gè)代碼段,并將各段分別冗余地存儲(chǔ)于FLASH存儲(chǔ)器中。搬運(yùn)后對(duì)SRAM內(nèi)的各段代碼分別進(jìn)行校驗(yàn),只有校驗(yàn)均正確才運(yùn)行應(yīng)用程序。
如上述用于DSP的分段雙冗余引導(dǎo)加載方法,將應(yīng)用程序代碼分成了多個(gè)代碼段,并按段進(jìn)行搬運(yùn)及校驗(yàn),若某段校驗(yàn)錯(cuò)誤,則只需將該段從冗余區(qū)域再次搬運(yùn)至RAM即可,無需搬運(yùn)整個(gè)應(yīng)用程序,可減少校驗(yàn)錯(cuò)誤時(shí)應(yīng)用程序加載時(shí)間,減少引導(dǎo)加載的時(shí)間開銷。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海航天控制技術(shù)研究所,未經(jīng)上海航天控制技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011469679.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種針對(duì)ASIC設(shè)計(jì)中網(wǎng)表邏輯冗余的優(yōu)化方法及系統(tǒng)
- 可自動(dòng)恢復(fù)冗余的冗余控制系統(tǒng)及其冗余自動(dòng)恢復(fù)方法
- 一種具備冗余接口的列控車載設(shè)備
- 可自動(dòng)恢復(fù)冗余的冗余控制系統(tǒng)
- 一種監(jiān)測(cè)冗余網(wǎng)絡(luò)完整性的方法和冗余裝置
- 冗余修正電路及應(yīng)用其的冗余修正方法
- N:1有狀態(tài)應(yīng)用網(wǎng)關(guān)冗余方法、系統(tǒng)和備用服務(wù)網(wǎng)關(guān)
- 冗余網(wǎng)絡(luò)中的信息共享方法及裝置、計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 帶反饋校正的冗余結(jié)構(gòu)
- 一種冗余制動(dòng)單元及車輛





