一種具備遠(yuǎn)程多加載的DSP系統(tǒng)方案設(shè)計(jì)
DSP多引導(dǎo)技術(shù)正是在普通DSP系統(tǒng)的加載技術(shù)基礎(chǔ)上發(fā)展而來的,將具備引導(dǎo)、通信、燒寫、存儲(chǔ)器檢糾錯(cuò)功能的工程作為引導(dǎo)工程獨(dú)立存儲(chǔ)在DSP CE1空間,由DSP自動(dòng)加載運(yùn)行;而將具備不同功能的應(yīng)用程序代碼分別存儲(chǔ)在其他存儲(chǔ)器,等待引導(dǎo)工程根據(jù)功能需要去加載。
引導(dǎo)工程由DSP自動(dòng)運(yùn)行,隨后根據(jù)遠(yuǎn)程指令或按預(yù)定程序流程的執(zhí)行通信、更新工作工程代碼,或搬運(yùn)并運(yùn)行存儲(chǔ)在其他空間工作工程內(nèi)的Bootloader段,從而引導(dǎo)不同功能的工作工程運(yùn)行。借助這種工程分離運(yùn)行技術(shù),可以通過遠(yuǎn)程端或自動(dòng)對(duì)空間電子設(shè)備存儲(chǔ)器中的代碼進(jìn)行更新、檢糾錯(cuò)和加載操作,甚至進(jìn)行多個(gè)工作工程的切換以滿足不同應(yīng)用背景下的功能需求;即使在更新或切換過程中出現(xiàn)故障,系統(tǒng)復(fù)位后仍可回到正常工作的引導(dǎo)工程中進(jìn)行系統(tǒng)維護(hù)或重新更新,具備防燒寫功能。
2.1 引導(dǎo)工程設(shè)計(jì)
引導(dǎo)工程是負(fù)責(zé)與遠(yuǎn)程控制端通信,獲取工作工程代碼并完成燒寫、引導(dǎo)工作工程加載運(yùn)行的程序。引導(dǎo)工程需要具備自加載、上傳校驗(yàn)數(shù)據(jù)、燒寫引導(dǎo)等功能。
2.1.1 自加載功能
引導(dǎo)工程采用普通工程的加載/燒寫方式,需要在產(chǎn)品生產(chǎn)完成后以仿真器模式進(jìn)行燒寫固化。由于引導(dǎo)工程具備需要通信、燒寫等功能,其數(shù)據(jù)長度一般來說會(huì)超出1KB的DSP自動(dòng)搬移長度限制,所以系統(tǒng)中的引導(dǎo)工程首先需要設(shè)計(jì)成一個(gè)具有二次加載能力的工程,并燒寫在DSP存儲(chǔ)器CE1空間的最前端,確保DSP在自動(dòng)引導(dǎo)時(shí)首先加載和運(yùn)行的是引導(dǎo)工程。
在設(shè)計(jì)引導(dǎo)工程自加載功能時(shí),與普通二次加載工程相比有所不同:
①程序存儲(chǔ)地址要加以限制,避免占用工作工程空間;
?、谝龑?dǎo)工程的Bootloader必須放置在CE1空間的最開頭1 KB內(nèi),使DSP能夠在上電時(shí)自動(dòng)加載運(yùn)行。
2.1.2 通信功能
通信模塊主要由通信芯片和通信控制邏輯組成,負(fù)責(zé)完成遠(yuǎn)程控制端與DSP之間的通信。根據(jù)不同應(yīng)用場(chǎng)合,可以選擇不同的通信芯片與鏈路協(xié)議。下面主要考慮應(yīng)用層協(xié)議設(shè)計(jì)。
(1)數(shù)據(jù)上傳與校驗(yàn)
按照參考文獻(xiàn)中的方法,為了將工作工程在線燒寫到Flash存儲(chǔ)空間中,首先需要下載編譯工程文件,并轉(zhuǎn)換為可燒寫的.hex文件。通過通信模塊,遠(yuǎn)端設(shè)備可以將hex文件發(fā)送并存儲(chǔ)在DSP外部存儲(chǔ)器中。錯(cuò)誤的hex文件數(shù)據(jù)可能導(dǎo)致在引導(dǎo)工作工程時(shí)DSP工作異常,甚至完全無法正常加載,因此遠(yuǎn)程端完成數(shù)據(jù)上傳后應(yīng)對(duì)保存的數(shù)據(jù)進(jìn)行校驗(yàn)。比較直觀的方法是通過通信接口將DSP收到的數(shù)據(jù)回傳,遠(yuǎn)端設(shè)備將此數(shù)據(jù)與原始.hex文件進(jìn)行比較,以確定數(shù)據(jù)是否正確。
(2)燒寫指令
完成數(shù)據(jù)校驗(yàn)后,遠(yuǎn)程端向DSP發(fā)送燒寫指令,開始燒寫。
(3)引導(dǎo)指令
若需要根據(jù)功能運(yùn)行相應(yīng)的工作工程,則由遠(yuǎn)程端向DSP發(fā)出不同的引導(dǎo)指令,引導(dǎo)對(duì)應(yīng)地址的工作工程運(yùn)行。根據(jù)DSP自動(dòng)加載原理,引導(dǎo)工程需按同樣的步驟進(jìn)行。
評(píng)論