專利名稱:程序動(dòng)態(tài)加載方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種程序動(dòng)態(tài)加載方法,特別涉及一種應(yīng)用于DSP的動(dòng)態(tài)加載程序方法。
背景技術(shù):
DSP(Digital Signal Processor,數(shù)字信號(hào)處理器)因其運(yùn)算精度高、實(shí)時(shí)性強(qiáng)等特點(diǎn),在工業(yè)控制、多媒體處理及消費(fèi)類電子等領(lǐng)域得到了廣泛應(yīng)用。在DSP系統(tǒng)中,應(yīng)用程序通過(guò)仿真調(diào)試后必須裝載到DSP目標(biāo)系統(tǒng)后方可成為獨(dú)立的脫機(jī)運(yùn)行系統(tǒng)。為實(shí)現(xiàn)應(yīng)用程序的裝載,必須對(duì)DSP進(jìn)行引導(dǎo)裝載設(shè)計(jì)。
現(xiàn)有技術(shù)中的常用做法是將應(yīng)用程序存放在外部非易失性存儲(chǔ)器中,如EPROM、FLASH等,系統(tǒng)上電后DSP開(kāi)始引導(dǎo)加載。根據(jù)選用的DSP的型號(hào)和應(yīng)用程序的大小,可分為一級(jí)引導(dǎo)和二級(jí)引導(dǎo)。如果應(yīng)用程序的大小小于DSP復(fù)位后自動(dòng)搬運(yùn)的大小,可采用一級(jí)引導(dǎo),否則需采用二級(jí)引導(dǎo)。二級(jí)引導(dǎo)指利用DSP復(fù)位后自行搬運(yùn)的代碼實(shí)現(xiàn)外部非易失性存儲(chǔ)器上其余部分代碼的搬運(yùn),并在搬運(yùn)結(jié)束后跳轉(zhuǎn)到應(yīng)用程序入口處執(zhí)行。
上述引導(dǎo)方法需要將應(yīng)用程序燒寫到非易失性存儲(chǔ)器上,不利于保護(hù)應(yīng)用程序產(chǎn)權(quán)。而且一旦應(yīng)用程序需要更新,便要重新燒寫,不能實(shí)現(xiàn)應(yīng)用程序的動(dòng)態(tài)加載。申請(qǐng)?zhí)枮?00310104051.0的中國(guó)專利中提到了動(dòng)態(tài)加載方法,其通過(guò)軟件復(fù)位,修改DSP加載起始地址實(shí)現(xiàn)應(yīng)用程序的動(dòng)態(tài)加載。在該方法中,能夠被加載的應(yīng)用程序仍然需要事先燒寫到非易失性存儲(chǔ)器中,并不是真正意義上的動(dòng)態(tài)加載方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種程序動(dòng)態(tài)加載方法,以實(shí)現(xiàn)DSP引導(dǎo)時(shí)動(dòng)態(tài)地從其他地方加載應(yīng)用程序,該方法在方便程序更新的同時(shí),也可保護(hù)應(yīng)用程序的產(chǎn)權(quán)。
為了達(dá)到上述的目的,本發(fā)明提供一種應(yīng)用程序動(dòng)態(tài)加載方法,用于向DSP的目標(biāo)系統(tǒng)動(dòng)態(tài)加載應(yīng)用程序,所述的DSP具有一外接非易失性存儲(chǔ)器、一外接隨機(jī)存儲(chǔ)器以及一片上內(nèi)存,所述方法包括下列步驟(1)根據(jù)需要執(zhí)行的應(yīng)用程序,制作一應(yīng)用程序映像,并對(duì)應(yīng)地生成一應(yīng)用程序映像恢復(fù)信息;(2)將所述應(yīng)用程序映像恢復(fù)信息以及一引導(dǎo)程序固化于所述外接非易失性存儲(chǔ)器;(3)將所述DSP連接至一上位機(jī),系統(tǒng)上電后所述DSP先執(zhí)行所述外接非易失性存儲(chǔ)器中的引導(dǎo)程序,隨即等待與所述上位機(jī)通信,當(dāng)接收到所述上位機(jī)發(fā)出連接信號(hào)后,將所述應(yīng)用程序映像加載至所述DSP的外接隨機(jī)存儲(chǔ)器中;(4)將收到的所述應(yīng)用程序映像按照應(yīng)用程序映像恢復(fù)信息分別復(fù)制到所述DSP的片上內(nèi)存和外接隨機(jī)存儲(chǔ)器的相應(yīng)位置;(5)將所述DSP復(fù)位至應(yīng)用程序的運(yùn)行環(huán)境;(6)執(zhí)行所述應(yīng)用程序。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,步驟(1)更進(jìn)一步包括(1-a)預(yù)先定義DSP的片上內(nèi)存的一段內(nèi)存空間為第一空間,將應(yīng)用程序映像恢復(fù)信息存儲(chǔ)至所述第一空間;(1-b)分配應(yīng)用程序的存儲(chǔ)空間,所述存儲(chǔ)空間不得覆蓋所述的第一空間;(1-c)根據(jù)應(yīng)用程序使用的所有存儲(chǔ)空間,制作應(yīng)用程序映像。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,所述DSP的外接非易失性存儲(chǔ)器可為ROM,EPROM以及FLASH其中之一。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,所述的應(yīng)用程序映像恢復(fù)信息包括應(yīng)用程序映像恢復(fù)代碼以及數(shù)據(jù)。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,所述DSP可通過(guò)VEM總線、CAN總線、以太網(wǎng)、光纖、串口以及并口其中任一方式進(jìn)行通信。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,基于所述DSP與其上位機(jī)采用的通信協(xié)議,所述DSP是通過(guò)對(duì)應(yīng)于VEM總線、CAN總線、以太網(wǎng)、光纖、串口以及并口其中任一方式的通信協(xié)議獲得應(yīng)用程序映像。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,在步驟(1)之后還包括一加密步驟,用以對(duì)所述應(yīng)用程序映像進(jìn)行加密。
在上述應(yīng)用程序動(dòng)態(tài)加載方法中,在步驟(4)之前還包括一解密步驟,用以對(duì)所述已加密的應(yīng)用程序映像進(jìn)行解密。
本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法,以外接非易失性存儲(chǔ)器的DSP引導(dǎo)加載應(yīng)用程序映像的方法為基礎(chǔ),通過(guò)自定義的通信協(xié)議以及軟件復(fù)位,從上位機(jī)加載應(yīng)用程序,進(jìn)而實(shí)現(xiàn)了應(yīng)用程序的動(dòng)態(tài)加載,有效地保護(hù)了應(yīng)用程序的知識(shí)產(chǎn)權(quán)。
通過(guò)以下對(duì)本發(fā)明的一實(shí)施例結(jié)合其附圖的描述,可以進(jìn)一步理解其發(fā)明的目的、具體結(jié)構(gòu)特征和優(yōu)點(diǎn)。其中,附圖為圖1為應(yīng)用了本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法的一個(gè)具體實(shí)施例的系統(tǒng)架構(gòu)圖;圖2為本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法的流程圖。
具體實(shí)施例方式
以下將結(jié)合一個(gè)具體的實(shí)施例對(duì)本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法作進(jìn)一步的詳細(xì)描述。本實(shí)施例針對(duì)基于DSP的運(yùn)動(dòng)控制軟件,為方便控制算法的更改和保護(hù),采用上述方法實(shí)現(xiàn)控制軟件的動(dòng)態(tài)加載。
請(qǐng)參閱圖1,為本實(shí)施例所用系統(tǒng)架構(gòu)。在本實(shí)施例中,運(yùn)行Solaris操作系統(tǒng)的SUN工作站10通過(guò)以太網(wǎng)20與運(yùn)行VxWorks操作系統(tǒng)的上位機(jī)PowerPC 30通信。PowerPC 30與各運(yùn)動(dòng)控制卡50通過(guò)VME總線40互連。其中,所述運(yùn)動(dòng)控制卡50上包括一DSP,所述DSP的型號(hào)可為TMS320C6711,但不限于此。此外,本實(shí)施例中各個(gè)單元所使用的應(yīng)用程序映像均存放在SUN工作站10上。
需要說(shuō)明的是,本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法可透過(guò)任一種計(jì)算機(jī)程序語(yǔ)言結(jié)合DSP等硬件設(shè)備實(shí)現(xiàn),本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法中包含一個(gè)引導(dǎo)程序,所述引導(dǎo)程序一般預(yù)先固化于DSP外接的ROM中,由于ROM為只讀存儲(chǔ)器,使用者不能隨意修改所述引導(dǎo)程序,因此保證了系統(tǒng)的安全性,當(dāng)DSP上電后,首先從ROM中執(zhí)行所述引導(dǎo)程序,但本技術(shù)領(lǐng)域的一般技術(shù)人員都應(yīng)清楚地知曉本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法不僅局限于所述的具體的引導(dǎo)程序,而是透過(guò)DSP等硬件設(shè)備、軟件程序以及接口技術(shù)實(shí)現(xiàn)應(yīng)用程序加載。
圖2為本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法的流程圖,如圖2所示,首先,執(zhí)行步驟S1,當(dāng)DSP上電時(shí),上述引導(dǎo)程序自動(dòng)從ROM中指定的存儲(chǔ)空間搬運(yùn)1K數(shù)據(jù)至DSP的內(nèi)存RAM,由于應(yīng)用程序的大小小于引導(dǎo)程序,因此,此處需采用二級(jí)引導(dǎo)。
接著,執(zhí)行步驟S2,上述引導(dǎo)程序?qū)OM中除步驟S1已搬運(yùn)的1K數(shù)據(jù)之外的其他數(shù)據(jù)搬運(yùn)至DSP內(nèi)存RAM。
隨后執(zhí)行步驟S3,裝載著DSP的運(yùn)動(dòng)控制卡50與PowerPC 30建立通信,其首先設(shè)置標(biāo)志位告知PowerPC 30當(dāng)前DSP板處于等待下載狀態(tài),當(dāng)與PowerPC 30建立通信后,通過(guò)交互,實(shí)現(xiàn)應(yīng)用程序映像的下載。本實(shí)施例采用的自定義的基于DPRAM(雙端口RAM)的通信協(xié)議實(shí)現(xiàn)通信交互及應(yīng)用程序映像的下載,但實(shí)現(xiàn)通信交互及應(yīng)用程序映像的下載方式不限于此。
最后執(zhí)行步驟S4,在應(yīng)用程序映像成功下載后,通過(guò)應(yīng)用程序映像恢復(fù)功能實(shí)現(xiàn)應(yīng)用程序的執(zhí)行環(huán)境恢復(fù),將應(yīng)用程序按照應(yīng)用程序映像恢復(fù)信息分別復(fù)制到所述DSP的片上內(nèi)存RAM和外接隨機(jī)存儲(chǔ)器SDRAM的相應(yīng)位置,待恢復(fù)完成后,跳轉(zhuǎn)到應(yīng)用程序的入口地址,開(kāi)始執(zhí)行所述應(yīng)用程序。
此外,需要補(bǔ)充說(shuō)明的是,本實(shí)施例中實(shí)現(xiàn)應(yīng)用程序映像恢復(fù)功能的代碼可采用匯編語(yǔ)言編寫,并放在應(yīng)用程序未使用的若干中斷向量表中,在應(yīng)用程序開(kāi)始時(shí),首先需要清除未使用的中斷對(duì)應(yīng)的中斷向量表。使用者可通過(guò)TI(德州儀器)提供的hex6x工具制作應(yīng)用程序映像,為了進(jìn)一步保護(hù)知識(shí)產(chǎn)權(quán),使用者還可采用現(xiàn)有的加密方法,例如DES加密方法對(duì)應(yīng)用程序映像進(jìn)行加密,在加載完已加密的應(yīng)用程序映像之后,進(jìn)行解密,進(jìn)而實(shí)現(xiàn)應(yīng)用程序映像的恢復(fù)。
綜上所述,通過(guò)本發(fā)明的應(yīng)用程序動(dòng)態(tài)加載方法,成功實(shí)現(xiàn)了DSP應(yīng)用程序的動(dòng)態(tài)加載,方便了應(yīng)用程序的更新。另外,本實(shí)施例中應(yīng)用程序存放在SUN工作站上,未燒寫到DSP板中,因此能夠有效保護(hù)應(yīng)用程序的產(chǎn)權(quán)。
權(quán)利要求
1.一種應(yīng)用程序動(dòng)態(tài)加載方法,用于向DSP的目標(biāo)系統(tǒng)動(dòng)態(tài)加載應(yīng)用程序,所述的DSP具有一外接非易失性存儲(chǔ)器、一外接隨機(jī)存儲(chǔ)器以及一片上內(nèi)存,其特征在于,所述方法包括下列步驟(1)根據(jù)需要執(zhí)行的應(yīng)用程序,制作一應(yīng)用程序映像,并對(duì)應(yīng)地生成一應(yīng)用程序映像恢復(fù)信息;(2)將所述應(yīng)用程序映像恢復(fù)信息以及一引導(dǎo)程序固化于所述外接非易失性存儲(chǔ)器;(3)將所述DSP連接至一上位機(jī),上電后所述DSP先執(zhí)行所述外接非易失性存儲(chǔ)器中的引導(dǎo)程序,隨即等待與所述上位機(jī)通信,當(dāng)接收到所述上位機(jī)發(fā)出連接信號(hào)后,將所述應(yīng)用程序映像加載至所述DSP的外接隨機(jī)存儲(chǔ)器中;(4)將收到的所述應(yīng)用程序映像按照應(yīng)用程序映像恢復(fù)信息分別復(fù)制到所述DSP的片上內(nèi)存和外接隨機(jī)存儲(chǔ)器的相應(yīng)位置;(5)將所述DSP復(fù)位至應(yīng)用程序的運(yùn)行環(huán)境;(6)執(zhí)行所述應(yīng)用程序。
2.如權(quán)利要求1所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,所述步驟(1)更進(jìn)一步包括(1-a)預(yù)先定義DSP的片上內(nèi)存的一段內(nèi)存空間為第一空間,將應(yīng)用程序映像恢復(fù)信息存儲(chǔ)至所述第一空間;(1-b)分配應(yīng)用程序的存儲(chǔ)空間,所述存儲(chǔ)空間不得覆蓋所述的第一空間;(1-c)根據(jù)應(yīng)用程序使用的所有存儲(chǔ)空間,制作應(yīng)用程序映像。
3.如權(quán)利要求1或2所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,所述的應(yīng)用程序映像恢復(fù)信息包括應(yīng)用程序映像恢復(fù)代碼以及數(shù)據(jù)。
4.如權(quán)利要求1所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,所述DSP的外接非易失性存儲(chǔ)器可為ROM、EPROM以及FLASH其中之一。
5.如權(quán)利要求1所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,所述DSP可通過(guò)VEM總線、CAN總線、以太網(wǎng)、光纖、串口以及并口其中任一方式進(jìn)行通信。
6.如權(quán)利要求5所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,所述DSP是通過(guò)對(duì)應(yīng)于VEM總線、CAN總線、以太網(wǎng)、光纖、串口以及并口其中任一方式的通信協(xié)議獲得應(yīng)用程序映像。
7.如權(quán)利要求1所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,在步驟(1)之后還包括一加密步驟,用以對(duì)所述應(yīng)用程序映像進(jìn)行加密。
8.如權(quán)利要求7所述的應(yīng)用程序動(dòng)態(tài)加載方法,其特征在于,在步驟(4)之前還包括一解密步驟,用以對(duì)所述已加密的應(yīng)用程序映像進(jìn)行解密。
全文摘要
本發(fā)明提供一種程序動(dòng)態(tài)加載方法,用于向DSP的目標(biāo)系統(tǒng)動(dòng)態(tài)加載應(yīng)用程序,該DSP具有外接非易失性存儲(chǔ)器ROM、外接隨機(jī)存儲(chǔ)器SDRAM和片上內(nèi)存RAM,該方法先根據(jù)需要執(zhí)行的應(yīng)用程序,制作應(yīng)用程序映像,并對(duì)應(yīng)生成應(yīng)用程序映像恢復(fù)信息;接著將應(yīng)用程序映像恢復(fù)信息及引導(dǎo)程序固化于ROM,將DSP連接至上位機(jī),系統(tǒng)上電后執(zhí)行ROM中的引導(dǎo)程序,再與上位機(jī)通信,將應(yīng)用程序映像加載至SDRAM中;隨后將應(yīng)用程序映像按照應(yīng)用程序映像恢復(fù)信息分別復(fù)制到RAM和SDRAM的相應(yīng)位置;最后將DSP復(fù)位至應(yīng)用程序的運(yùn)行環(huán)境,執(zhí)行應(yīng)用程序。本發(fā)明的方法通過(guò)自定義的通信協(xié)議以及軟件復(fù)位,從上位機(jī)加載應(yīng)用程序,可實(shí)現(xiàn)應(yīng)用程序的動(dòng)態(tài)加載,并能保護(hù)應(yīng)用程序的產(chǎn)權(quán)。
文檔編號(hào)G06F9/445GK101067789SQ20071004162
公開(kāi)日2007年11月7日 申請(qǐng)日期2007年6月5日 優(yōu)先權(quán)日2007年6月5日
發(fā)明者劉君, 張方元 申請(qǐng)人:上海微電子裝備有限公司