專利名稱:一種dsp處理器的動態(tài)重載方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式信號處理領(lǐng)域,具體涉及一種DSP處理器的動態(tài)重載方法。
背景技術(shù):
綜合航空電子系統(tǒng)對其內(nèi)部的各個(gè)功能模塊提出了應(yīng)用數(shù)據(jù)集中存儲,實(shí)時(shí)重構(gòu)等要求,但是當(dāng)前嵌入式DSP的應(yīng)用,都是將應(yīng)用程序存儲在非易失性的外部存儲器中,在系統(tǒng)上電后,再從外部存儲器加載到DSP內(nèi)存中,重新啟動運(yùn)行應(yīng)用程序。隨著航空電子系統(tǒng)從維護(hù)保障和系統(tǒng)功能重構(gòu)方面對嵌入式DSP 處理器應(yīng)用提出了新的要求,如程序集中存儲、任務(wù)重載等等,這種傳統(tǒng)的局部固化應(yīng)用程序的方式已經(jīng)不能滿足應(yīng)用要求。而具有動態(tài)重載功能的信號處理模塊由于引導(dǎo)方式受外部硬件條件(如存儲器容量、接口方式等)限制小,應(yīng)用的調(diào)試、維護(hù)升級方式便捷,能極大提高系統(tǒng)的應(yīng)用靈活性、可靠性和可維護(hù)性。面向這種需求,基于ADI公司的TigerSHARC ADSP_TS20xS系列處理器平臺的應(yīng)用加載技術(shù)。ADI公司的ADSP-TS20xS處理器支持四種加載方式=EPROM引導(dǎo)方式(PROM-Boot),鏈路口弓I導(dǎo)方式(LINK-Boot)、主機(jī)弓I導(dǎo)方式(HOST-Boot)和非引導(dǎo)方式。前三種加載方式分別通過ADI公司的調(diào)試開發(fā)環(huán)境VisualDSP++提供的三種引導(dǎo)程序內(nèi)核來實(shí)現(xiàn),分別通過處理器外部總線、鏈路口和外部主機(jī)來完成三種加載方式,以實(shí)現(xiàn)程序引導(dǎo)操作與加載操作。而非引導(dǎo)方式則是通過外部不同的Strap信號(對應(yīng)DSP外部配置引腳的啟動),配置不同的啟動地址,從而讓DSP從內(nèi)部存儲器的對應(yīng)地址開始執(zhí)行程序。雖然ADI公司提供的三種重載內(nèi)核能夠滿足加載的需要,但無法提供動態(tài)加載,本發(fā)明通過開發(fā)一種外部存儲器接口類型不受限制的重載內(nèi)核,利用該重載內(nèi)核,將加載程序文件存儲于任意DSP可以訪問的外部存儲器空間,甚至可以采用接收外部設(shè)備傳輸加載文件的操作形式,利用具體DSP電路所設(shè)計(jì)的通訊總線傳輸被加載程序映像數(shù)據(jù),再啟動應(yīng)用程序重載進(jìn)程,最終實(shí)現(xiàn)DSP的實(shí)時(shí)重載操作。這種新的重載方法極大地提高了嵌入式應(yīng)用開發(fā)的靈活性,為嵌入式系統(tǒng)應(yīng)用軟件功能重構(gòu)提供了一種新的途徑。
發(fā)明內(nèi)容
針對嵌入式信號處理ADSP-TS20xS系列處理器硬件平臺傳統(tǒng)的引導(dǎo)加載方式不能滿足系統(tǒng)功能重構(gòu)的需求,提出一種DSP處理器的動態(tài)重載方法,該重載方法中增加了重載內(nèi)核,利用該重載內(nèi)核可以實(shí)現(xiàn)對程序映像的實(shí)時(shí)動態(tài)重載操作,從而提高了嵌入式系統(tǒng)的重構(gòu)能力,并為系統(tǒng)功能軟件的升級和維護(hù)提供了一種簡便、可靠的方法。本發(fā)明的技術(shù)解決方案一種DSP處理器的動態(tài)重載方法,其特殊之處在于包括以下步驟I生成映像文件在DSP處理器的開發(fā)環(huán)境下,將待重載的應(yīng)用程序結(jié)合重載內(nèi)核生成映像文件,
重載內(nèi)核能夠?qū)崿F(xiàn)從外部動態(tài)存儲器中加載應(yīng)用程序,并定義了映像文件在外部存儲空間中的存儲地址;2DSP處理器的初始化利用任意應(yīng)用程序作為初始應(yīng)用程序?qū)SP處理器進(jìn)行初始化,并利用初始應(yīng)用程序通過DSP處理器的外部接口獲取映像文件,并把映像文件存放在重載內(nèi)核指定的外部存儲空間中;所述初始應(yīng)用程序中包括重載接口函數(shù);所述重載接口函數(shù)能夠?qū)崿F(xiàn)從外部動態(tài)存儲器中加載重載內(nèi)核;·
3重載接口函數(shù)將映像文件中的重載內(nèi)核引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋初始應(yīng)用程序4內(nèi)部存儲器中的重載內(nèi)核將存儲在外部存儲空間中的映像文件中的應(yīng)用程序引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋重載內(nèi)核,生成待運(yùn)行的應(yīng)用程序;5執(zhí)行待運(yùn)行的應(yīng)用程序,完成動態(tài)重載。步驟4的具體步驟為4.1內(nèi)部存儲器中的重載內(nèi)核根據(jù)外部存儲空間中的應(yīng)用程序啟動DMA操作,從應(yīng)用程序的第257個(gè)字開始按照數(shù)據(jù)塊依次加載到內(nèi)部存儲器中,從內(nèi)部存儲器的第257個(gè)字起按照數(shù)據(jù)塊依次存儲,直至加載至最后一個(gè)數(shù)據(jù)塊;4. 2將應(yīng)用程序的前256個(gè)字中的前四個(gè)字存儲在通用寄存器中,并同時(shí)在內(nèi)部存儲器的前四個(gè)字存儲單元中依次寫入指令I(lǐng))中斷返回地址為DSP處理器的內(nèi)部存儲器零地址;指令2)禁止所有中斷;指令3)將存儲在通用寄存器中的前四個(gè)字存儲在內(nèi)部存儲器的前四個(gè)字存儲單元中;4. 3內(nèi)部存儲器中的重載內(nèi)核啟動一個(gè)252字的DMA,此時(shí)DSP處理器處于空閑狀態(tài),4. 4利用252字的DMA將應(yīng)用程序的前256個(gè)字中的后252個(gè)字引導(dǎo)復(fù)制到內(nèi)部存儲器中并去覆蓋重載內(nèi)核的后252個(gè)字,直到252字的DMA的引導(dǎo)復(fù)制操作完成,此刻中斷觸發(fā),依次執(zhí)行指令I(lǐng)) _3),待運(yùn)行的應(yīng)用程序生成完畢。步驟3的具體步驟為3.1將重載內(nèi)核中的前四個(gè)字存儲在通用寄存器中,并同時(shí)在內(nèi)部存儲器的前四個(gè)字存儲單元中依次寫入指令I(lǐng))中斷返回地址為DSP處理器的內(nèi)部存儲器零地址;指令2)禁止所有中斷;指令3)將存儲在通用寄存器中的前四個(gè)字存儲至內(nèi)部存儲器的前四個(gè)字存儲單元中;3. 2重載接口函數(shù)啟動一個(gè)252字的DMA,此時(shí)DSP處理器處于空閑狀態(tài);3. 3利用252字的DMA將重載內(nèi)核中的后252個(gè)字引導(dǎo)復(fù)制到內(nèi)部存儲器中并去覆蓋初始應(yīng)用程序的后252個(gè)字,直到252字的DMA的引導(dǎo)復(fù)制操作完成,此刻中斷觸發(fā),依次執(zhí)行指令I(lǐng)) _3),重載內(nèi)核引導(dǎo)復(fù)制完成。
本發(fā)明的優(yōu)點(diǎn)是1、在ADI公司提供的四種加載方式之外,本發(fā)明開發(fā)的一種存儲空間、存儲類型不受限制的加載方式,提高了應(yīng)用靈活性與可用性。配合相應(yīng)DSP外部接口調(diào)用,可實(shí)現(xiàn)多個(gè)應(yīng)用程序多次加載,不需費(fèi)時(shí)費(fèi)力地反復(fù)對引導(dǎo)PROM芯片進(jìn)行編程等擦寫操作,易于應(yīng)用程序的調(diào)試、升級和維護(hù)。2、新開發(fā)的重載內(nèi)核的使用方法與ADI公司原先提供的3種加載核的應(yīng)用模式一致,并與DSP開發(fā)環(huán)境Visual DSP++實(shí)現(xiàn)無縫連接,不需作任何修改,用戶應(yīng)用程序的開發(fā)、編譯使用簡單易行。3、動態(tài)重載方法使用的重載內(nèi)核以及初始應(yīng)用程序中調(diào)用的重載接口函數(shù)均使用ADI公司針對ADSP-TS20xS處理器平臺的匯編語言編寫,即受編譯器優(yōu)化設(shè)置的影響較小,其與編譯生成機(jī)器指令代碼差異較小,保證了代碼執(zhí)行的可靠性和重載功能的穩(wěn)定性。
圖1為本發(fā)明動態(tài)重載過程示意圖;圖2為本發(fā)明映像文件格式及引導(dǎo)說明。
具體實(shí)施例方式下面對本發(fā)明做進(jìn)一步詳細(xì)說明。動態(tài)重載的實(shí)現(xiàn)步驟以ADSP-TS201S處理器為例說明動態(tài)重載過程見圖1所示,其主要流程及步驟如下(I)生成映像文件在DSP處理器的開發(fā)環(huán)境下,將待重載的應(yīng)用程序結(jié)合重載內(nèi)核生成映像文件;其中重載內(nèi)核能夠?qū)崿F(xiàn)從外部動態(tài)存儲器中加載應(yīng)用程序,并定義了映像文件在外部存儲空間中的存儲地址;(2)重載應(yīng)用映像數(shù)據(jù)的準(zhǔn)備(即DSP處理器的初始化);(3)重載接口函數(shù)將映像文件中的重載內(nèi)核引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋初始應(yīng)用程序;(4)重載內(nèi)核代碼執(zhí)行,完成待運(yùn)行的應(yīng)用程序的引導(dǎo)復(fù)制和啟動;(5)執(zhí)行待運(yùn)行的應(yīng)用程序,實(shí)現(xiàn)動態(tài)重載過程。動態(tài)重載過程簡而言之就是,重載接口函數(shù)完成RAM-Boot重載內(nèi)核的搬家工作,而重載內(nèi)核的任務(wù)是從外部存儲空間中取出用戶應(yīng)用程序,加載到DSP處理器的內(nèi)部存儲器中去,對相關(guān)寄存器的初始配置,并完成隨后啟動用戶應(yīng)用程序的工作,這樣ADSP-TS201S就完成了用戶代碼重載。 (2)應(yīng)用映像數(shù)據(jù)的準(zhǔn)備利用任意應(yīng)用程序作為初始應(yīng)用程序?qū)SP處理器進(jìn)行初始化,并利用初始應(yīng)用程序通過DSP處理器的外部接口獲取映像文件,并把映像文件存放在重載內(nèi)核指定的外部存儲空間中;在圖1中第(I)步中將被動態(tài)重載的映像文件(*.1dr)復(fù)制到重載內(nèi)核指定的外部存儲空間中的存儲地址(例如SDRAM或外部RAM)。該步獲取映像文件的方式可以任何硬件設(shè)計(jì)支持的方式,例如外部存儲總線擴(kuò)展的I/O接口、Link端口、外部擴(kuò)展的PC1、以太網(wǎng)等接口,或者是自定義的通訊接口等方式。通過以上接口只是進(jìn)行一個(gè)數(shù)據(jù)復(fù)制過程,將映像文件數(shù)據(jù)復(fù)制到指定地址的緩沖區(qū)中。(3)重載內(nèi)核數(shù)據(jù)的引導(dǎo)重載接口函數(shù)將映像文件中的重載內(nèi)核引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋初始應(yīng)用程序;在前一步中ADSP-TS201S處理器初始化(包括對外部RAM訪問接口的初始化,若使用SDRAM作為緩存,還應(yīng)初始化SDRAM控制),并完成數(shù)據(jù)準(zhǔn)備工作。第⑵步中調(diào)用重載接口函數(shù),指定空間地址的重載內(nèi)核的256個(gè)32位字長度的Boot重載內(nèi)核復(fù)制到DSP處理器的內(nèi)部存儲器的0x00 — OxFF空間內(nèi),并啟動執(zhí)行RAM-Boot重載內(nèi)核,實(shí)現(xiàn)用戶應(yīng)用程序的加載運(yùn)行。本步數(shù)據(jù)復(fù)制搬家過程類似與PROM-Boot加載核的工作原理。其原理是將重載內(nèi)核的頭四個(gè)32位字暫存在通用寄存器中,并在DSP內(nèi)部0地址的頭四個(gè)單元內(nèi)依次填入設(shè)置中斷地址O、清除中斷、禁止全局中斷的指令代碼,以及將存儲在通用寄存器中的前四個(gè)字存儲在內(nèi)部存儲器的前四個(gè)字存儲單元中;隨后重載接口函數(shù)啟動一個(gè)252字的DMA,此時(shí)DSP處理器處于空閑狀態(tài);利用252字的DMA將重載內(nèi)核中的后252個(gè)字引導(dǎo)復(fù)制到內(nèi)部存儲器中并去覆蓋初始應(yīng)用程序的后252個(gè)字,直到252字的DMA的弓丨導(dǎo)復(fù)制操作完成,傳輸?shù)降刂?x04-0xFF,此刻中斷觸發(fā),依DMA完成后引發(fā)的中斷會執(zhí)行0地址處的指令,這樣在執(zhí)行應(yīng)用程序之前配置并禁止了中斷,最終完成了加載核覆蓋。RAM-Boot重載內(nèi)核與PROM-Boot引導(dǎo)方式也有不同之處。前者是從PROM的0x400地址開始,后者則從RAM的指定地址開始,即數(shù)據(jù)源地址不同;由于PROM的總線寬度(8位)與SDRAM的總線寬度(64位或32位)不同,數(shù)據(jù)空間地址的修改量也不同。另外,在RAM-Boot加載核運(yùn)行之前,要求RAM或SDRAM已完成初始化。(4)待運(yùn)行的應(yīng)用程序的引導(dǎo)復(fù)制第(3)步中,RAM-Boot重載內(nèi)核執(zhí)行應(yīng)用程序的復(fù)制和啟動任務(wù)。重載內(nèi)核按照Idr文件格式(圖2中所示)解析應(yīng)用程序中的初始數(shù)據(jù)塊的加載地址和長度,并將其復(fù)制到DSP處理器內(nèi)部存儲器的相應(yīng)存儲空間內(nèi)。該過程按照ADI公司Idr文件傳輸格式定義進(jìn)行。重載內(nèi)核啟動一系列單字DMA操作,把后續(xù)應(yīng)用程序加載到內(nèi)部存儲器中。加載程序分析來自于RAM的數(shù)據(jù)塊的頭兩個(gè)32位字,第一個(gè)字是標(biāo)識字,定義了數(shù)據(jù)塊類型和處理器ID號。第二個(gè)標(biāo)簽字是指向的目標(biāo)地址。若數(shù)據(jù)塊類型不是最后初始化,且當(dāng)前處理器ID號相符,則將確定長度的數(shù)據(jù)傳輸?shù)街付ǖ刂?。循環(huán)執(zhí)行該過程。若數(shù)據(jù)塊的標(biāo)識字表明當(dāng)前進(jìn)行的是最終初始化傳輸,重載內(nèi)核就會啟動一個(gè)252字的DMA,使其自身被用戶應(yīng)用程序代碼覆蓋,并在DMA傳輸完成后使用中斷來啟動應(yīng)用程序。DMA通道0的中斷矢量入口地址為內(nèi)部存儲器地址0,用戶的應(yīng)用代碼從地址0開始執(zhí)行。該過程與第(2)步中重載內(nèi)核的引導(dǎo)復(fù)制過程一致。該操作執(zhí)行到最后,重載內(nèi)核也將被用戶應(yīng)用程序數(shù)據(jù)覆蓋,DSP處理器重新從零地址開始運(yùn)行用戶代碼。應(yīng)用成素的重載算法具體步驟如下
a.用戶代碼的前四個(gè)指令(地址0x00000000-0x00000003處)從PROM開始的DMA,并且存儲在寄存器XRll :8中。b.下面的代碼寫入地址 0x00000000-0x00000003RETI=O; ;/*設(shè)置RETI寄存器,確定中斷返回地址*/SQCTL=yR0; ; /*禁用所有的全局中斷*/RTI (ABS) (NP) ; Q[j31+=0] =xRll:8;;/*降低中斷級為0,并將原先保存在xRll:8中的用戶代碼放置在地址0x00000000-0x00000003 中 */即DMAO中斷矢量設(shè)置在地址0x00000000中。并停止SQCTL全局中斷,使能SQCTL_NMOD, SQCTL_TRCBEN。隨后并清空高速緩存Cache,再重新啟用。c.設(shè)置DMA,將RAM-Boot核代碼的252個(gè)字符傳輸?shù)降刂?x00000004-0x000000FF上。TCB設(shè)置完成后,開始進(jìn)行DMA傳輸,處理器進(jìn)入到IDLE狀態(tài)。d.通過寫入TCB操作啟動DMA,然后DSP處理器處于空閑狀態(tài)。e.當(dāng)DMA執(zhí)行完成后,中斷操作喚醒ADSP-TS201S處理器,指令指針跳到0x00000000地址,此時(shí)才執(zhí)行原先暫存在xRll:8中的用戶代碼,及RAM-Boot加載核代碼)。注意有必要選擇NP,以阻止RTI從高速緩存進(jìn)入BTB中。(5)完成動態(tài)重載,啟動新應(yīng)用代碼第(4)步即應(yīng)用代碼啟動執(zhí)行,重新初始化處理器以及接口部件,實(shí)現(xiàn)新功能應(yīng)用程序的運(yùn)行。動態(tài)重載功能的應(yīng)用實(shí)現(xiàn)和使用動態(tài)重載功能的應(yīng)用實(shí)現(xiàn)分為兩部分。一部分是在應(yīng)用程序中加入對啟動重載功能的重載接口函數(shù)調(diào)用;另一部分是將被重載的應(yīng)用程序與動態(tài)重載內(nèi)核在VisualDSP環(huán)境下一起編譯生成Idr加載文件。兩部分一同構(gòu)成了動態(tài)重載功能的實(shí)現(xiàn)。應(yīng)用程序中調(diào)用的重載啟動重載接口函數(shù)即實(shí)現(xiàn)了對映像文件中重載內(nèi)核的復(fù)制和啟動運(yùn)燈。動態(tài)重載內(nèi)核的使用與ADI公司提供的三種加載核的使用方式一致。RAM-Boot引導(dǎo)程序內(nèi)核將在Visual DSP++環(huán)境下,與用戶應(yīng)用程序一起編譯生成映像文件。Visual DSP++工具提供的程序加載應(yīng)用程序(elfloader. exe)可將應(yīng)用算法程序和加載核程序合并生成加載輸出文件(*.1dr)。這樣,最終的加載輸出文件(*.1dr)主要包含兩個(gè)部分一部分是加載核數(shù)據(jù),另一部分是用戶應(yīng)用程序在處理器存儲器空間映像的初始化數(shù)據(jù)。初始化數(shù)據(jù)定義了處理器引導(dǎo)過程中,處理器內(nèi)部和外部存儲器的初始化范圍。通過動態(tài)重載方式可以實(shí)現(xiàn)系統(tǒng)功能的重構(gòu),如將新的應(yīng)用任務(wù)可以按功能需求生成多個(gè)加載文件,預(yù)先保存在外部大容量存儲器中。依據(jù)功能重構(gòu)狀態(tài)的需求,相應(yīng)加載新的應(yīng)用程序,執(zhí)行相應(yīng)預(yù)置任務(wù),從而完成了處理器應(yīng)用程序重載和應(yīng)用任務(wù)重構(gòu)。采用動態(tài)重載方式的ADSP-TS20xS處理器功能電路,其應(yīng)用程序數(shù)據(jù)不需固化在本地引導(dǎo)PROM中,可通過外部總線接口實(shí)時(shí)地獲取。這樣的話,相對于傳統(tǒng)單處理器(或者處理器簇)的應(yīng)用程序固化方式,采用動態(tài)重載方式其應(yīng)用程序的更新或者升級會更加可靠、便捷。在當(dāng)前較多的大規(guī)模多DSP處理器陣列組合的應(yīng)用場合下,這種動態(tài)重載方式具有更加明顯的優(yōu)勢。依據(jù)ADSP_TS20xS處理器指令系統(tǒng)的特點(diǎn)采用DMA (直接存儲訪問)傳輸方式與寄存器暫存方法相結(jié)合的數(shù)據(jù)復(fù)制方式,將存放在指定空間的待引導(dǎo)加載的Idr映像文件中的加載核程序先行加載并執(zhí)行,加載核程序按照Idr文件格式定義采用DMA方式將緩存在外部存儲器中應(yīng)用程序代碼加載到DSP內(nèi)存中,并最終用應(yīng)用程序代碼將DSP低端內(nèi)存中的加載核代碼覆蓋,DMA執(zhí)行完成后中斷引發(fā)向量地址為零的代碼執(zhí)行,新加載的應(yīng)用代碼重新執(zhí)行,從而實(shí)現(xiàn)了重載功能。
權(quán)利要求
1.一種DSP處理器的動態(tài)重載方法,其特征在于包括以下步驟I生成映像文件在DSP處理器的開發(fā)環(huán)境下,將待重載的應(yīng)用程序結(jié)合重載內(nèi)核生成映像文件,重載內(nèi)核能夠?qū)崿F(xiàn)從外部動態(tài)存儲器中加載應(yīng)用程序,并定義了映像文件在外部存儲空間中的存儲地址;2DSP處理器的初始化利用任意應(yīng)用程序作為初始應(yīng)用程序?qū)SP處理器進(jìn)行初始化,并利用初始應(yīng)用程序通過DSP處理器的外部接口獲取映像文件,并把映像文件存放在重載內(nèi)核指定的外部存儲空間中;所述初始應(yīng)用程序中包括重載接口函數(shù);所述重載接口函數(shù)能夠?qū)崿F(xiàn)從外部動態(tài)存儲器中加載重載內(nèi)核;3重載接口函數(shù)將映像文件中的重載內(nèi)核引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋初始應(yīng)用程序4內(nèi)部存儲器中的重載內(nèi)核將存儲在外部存儲空間中的映像文件中的應(yīng)用程序引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋重載內(nèi)核,生成待運(yùn)行的應(yīng)用程序;5執(zhí)行待運(yùn)行的應(yīng)用程序,完成動態(tài)重載。
2.根據(jù)權(quán)利要求1所述的DSP處理器的動態(tài)重載方法,其特征在于步驟4的具體步驟為4.1內(nèi)部存儲器中的重載內(nèi)核根據(jù)外部存儲空間中的應(yīng)用程序啟動DMA操作,從應(yīng)用程序的第257個(gè)字開始按照數(shù)據(jù)塊依次加載到內(nèi)部存儲器中,從內(nèi)部存儲器的第257個(gè)字起按照數(shù)據(jù)塊依次存儲,直至加載至最后一個(gè)數(shù)據(jù)塊;4. 2將應(yīng)用程序的前256個(gè)字中的前四個(gè)字存儲在通用寄存器中,并同時(shí)在內(nèi)部存儲器的前四個(gè)字存儲單元中依次寫入指令I(lǐng))中斷返回地址為DSP處理器的內(nèi)部存儲器零地址;指令2)禁止所有中斷;指令3)將存儲在通用寄存器中的前四個(gè)字存儲在內(nèi)部存儲器的前四個(gè)字存儲單元中;4. 3內(nèi)部存儲器中的重載內(nèi)核啟動一個(gè)252字的DMA,此時(shí)DSP處理器處于空閑狀態(tài),4.4利用252字的DMA將應(yīng)用程序的前256個(gè)字中的后252個(gè)字引導(dǎo)復(fù)制到內(nèi)部存儲器中并去覆蓋重載內(nèi)核的后252個(gè)字,直到252字的DMA的引導(dǎo)復(fù)制操作完成,此刻中斷觸發(fā),依次執(zhí)行指令I(lǐng)) _3),待運(yùn)行的應(yīng)用程序生成完畢。
3.根據(jù)權(quán)利要求1所述的DSP處理器的動態(tài)重載方法,其特征在于步驟3的具體步驟為3.1將重載內(nèi)核中的前四個(gè)字存儲在通用寄存器中,并同時(shí)在內(nèi)部存儲器的前四個(gè)字存儲單元中依次寫入指令I(lǐng))中斷返回地址為DSP處理器的內(nèi)部存儲器零地址;指令2)禁止所有中斷;指令3)將存儲在通用寄存器中的前四個(gè)字存儲至內(nèi)部存儲器的前四個(gè)字存儲單元中;.3.2重載接口函數(shù)啟動一個(gè)252字的DMA,此時(shí)DSP處理器處于空閑狀態(tài); .3.3利用252字的DMA將重載內(nèi)核中的后252個(gè)字引導(dǎo)復(fù)制到內(nèi)部存儲器中并去覆蓋初始應(yīng)用程序的后252個(gè)字,直到252字的DMA的引導(dǎo)復(fù)制操作完成,此刻中斷觸發(fā),依次執(zhí)行指令I(lǐng)) -3 ),重載內(nèi)核引導(dǎo)復(fù)制完成。
全文摘要
本發(fā)明涉及一種DSP處理器的動態(tài)重載方法,包括以下步驟1、生成映像文件;2、DSP處理器的初始化;3、重載接口函數(shù)將映像文件中的重載內(nèi)核引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋初始應(yīng)用程序;4、內(nèi)部存儲器中的重載內(nèi)核將存儲在外部存儲空間中的映像文件中的應(yīng)用程序引導(dǎo)復(fù)制到DSP處理器的內(nèi)部存儲器中去覆蓋重載內(nèi)核,生成待運(yùn)行的應(yīng)用程序;5、執(zhí)行待運(yùn)行的應(yīng)用程序,完成動態(tài)重載。針對嵌入式信號處理ADSP-TS20xS系列處理器硬件平臺傳統(tǒng)的引導(dǎo)加載方式不能滿足系統(tǒng)功能重構(gòu)的需求,本發(fā)明增加了重載內(nèi)核,利用該重載內(nèi)核可以實(shí)現(xiàn)對程序映像的實(shí)時(shí)動態(tài)重載操作,從而提高了嵌入式系統(tǒng)的重構(gòu)能力。
文檔編號G06F9/445GK103019774SQ201210493438
公開日2013年4月3日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者韓強(qiáng) 申請人:中國航空工業(yè)集團(tuán)公司第六三一研究所