專(zhuān)利名稱(chēng):數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信號(hào)處理器(DSP, Digital Signal Processor)程序加載技術(shù),
更確切地說(shuō)是涉及數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法與裝置。
背景技術(shù):
在進(jìn)行DSP的程序編譯時(shí),編譯鏈接后一般都會(huì)生成兩個(gè)文件一個(gè)是可執(zhí) 行文件xx.out文件(或者是elf格式文件)及鏈接后的符號(hào)表信息文件xx.map 文件。其中,xx.out文件是DSP加載文件,xx.map文件是供xx.out文件調(diào)試用 的, 一般僅供開(kāi)發(fā)人員使用。在加載到DSP之前,現(xiàn)有技術(shù)通常將可執(zhí)行文件 xx.out文件轉(zhuǎn)換成DSP上存儲(chǔ)器映像的二進(jìn)制文件xx.bin,再將xx.bin文件的 內(nèi)容加載到DSP的存儲(chǔ)器中,具體步驟如下
a. 將針對(duì)DSP編譯鏈接生成的可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件。該步 驟通過(guò)使用編譯器的文件轉(zhuǎn)換工具來(lái)完成的,內(nèi)存映像文件中不包含符號(hào)表信 息。
b. 通過(guò)各種硬件接口例如HPI ( Host Port Interface ,主機(jī)接口 ) 、 DSI (Distributed System Interface,分布式系統(tǒng)接口 )、 sRIO ( serial Rapid 10,串行
快速總線(xiàn)接口 )或以太網(wǎng)(ETH)接口等將DSP內(nèi)存映像文件加載到DSP的 存儲(chǔ)器中。
加載完DSP內(nèi)存映像文件,通過(guò)硬件接口觸發(fā)DSP處理器運(yùn)行即可。由 于xx.bin文件是不包含符號(hào)表信息的,因此DSP上的存儲(chǔ)器中也不包含任何的 符號(hào)表信息。這導(dǎo)致了 DSP上的程序不能在線(xiàn)査詢(xún)符號(hào)信息,很多需要符號(hào)表 查詢(xún)功能支持的調(diào)試功能如遠(yuǎn)程登錄DSP處理器對(duì)其指定變量值進(jìn)行在線(xiàn)查 詢(xún)、通過(guò)控制臺(tái)進(jìn)行命令輸入等難于實(shí)現(xiàn)。在對(duì)DSP在線(xiàn)調(diào)試時(shí),測(cè)試人員通常希望能夠在程序運(yùn)行過(guò)程中查詢(xún)某些全局變量的值,或是通過(guò)命令的方式干 預(yù)程序的運(yùn)行,要實(shí)現(xiàn)這些功能,需要有符號(hào)表功能的支持,這樣才能通過(guò)調(diào) 試代理查詢(xún)到測(cè)試人員指定的全局變量或是命令函數(shù)的地址并執(zhí)行相應(yīng)的變量 查詢(xún)和命令函數(shù)調(diào)用功能。沒(méi)有符號(hào)表功能的支持,這些調(diào)試功能都難于實(shí)現(xiàn)。 在對(duì)DSP程序離線(xiàn)調(diào)試分析時(shí),符號(hào)信息文件和DSP存儲(chǔ)器內(nèi)容快照文件的
對(duì)應(yīng)關(guān)系不能保證。需要將DSP存儲(chǔ)器的內(nèi)容存儲(chǔ)到一個(gè)快照文件中,再査找 編譯鏈接DSP程序時(shí)生成的映射(map)文件,從中查詢(xún)符號(hào)信息,再到存儲(chǔ) 器內(nèi)容快照文件中去查詢(xún)符號(hào)的值,進(jìn)行離線(xiàn)分析。由于存儲(chǔ)器內(nèi)容快照文件 和符號(hào)信息文件的對(duì)應(yīng)關(guān)系是人為維護(hù)的,其一一對(duì)應(yīng)關(guān)系難以保證。同時(shí)由 于符號(hào)信息和存儲(chǔ)器內(nèi)容快照文件分離也不利于對(duì)DSP程序進(jìn)行自動(dòng)化分析。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)字信號(hào)處理器可執(zhí)行文件的 加載方法與裝置,使DSP支持在線(xiàn)調(diào)試,方便開(kāi)發(fā)人員對(duì)DSP進(jìn)行調(diào)試。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
一種數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法,包括
對(duì)數(shù)字信號(hào)處理器DSP程序編譯后生成可執(zhí)行文件;
將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件并存儲(chǔ)于模擬存儲(chǔ)區(qū),獲取所 述內(nèi)存映像文件中符號(hào)的地址信息并存儲(chǔ)于所述模擬存儲(chǔ)區(qū)的預(yù)留地址段;以 及
將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加載到所述DSP存 儲(chǔ)器中。
優(yōu)選地,獲取所述內(nèi)存映像文件中符號(hào)的地址信息,具體為
編譯DSP程序時(shí)還生成有map文件,所述map文件中記錄有各符號(hào)在所
述內(nèi)存映像文件中的地址信息。
優(yōu)選地,所述內(nèi)存映像文件及符號(hào)地址信息通過(guò)主機(jī)接口 HPI、分布式系
統(tǒng)接口 DSI、串行快速總線(xiàn)接口 sRIO或以太網(wǎng)ETH接口加載到DSP存儲(chǔ)器中。優(yōu)選地,所述符號(hào)地址信息加載到所述DSP存儲(chǔ)器中指定的存儲(chǔ)區(qū)。
優(yōu)選地,所述指定存儲(chǔ)區(qū)位于DSP外部存儲(chǔ)器。
優(yōu)選地,所述符號(hào)包括變量、函數(shù)及參數(shù)。
一種數(shù)字信號(hào)處理器可執(zhí)行文件的加載裝置,包括
可執(zhí)行文件生成單元,用于對(duì)DSP程序編譯后生成可執(zhí)行文件;
內(nèi)存映像文件轉(zhuǎn)換單元,用于將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件;
符號(hào)地址信息獲取單元,用于獲取所述內(nèi)存映像文件中符號(hào)的地址信息;
存儲(chǔ)單元,用于將內(nèi)存映像文件存儲(chǔ)于模擬存儲(chǔ)區(qū)、將符號(hào)地址信息存儲(chǔ) 于模擬存儲(chǔ)區(qū)的預(yù)留地址段;以及
加載單元,用于將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加 載到DSP存儲(chǔ)器中。
優(yōu)選地,所述可執(zhí)行文件生成單元編譯DSP程序時(shí)還生成有map文件,所 述map文件中記錄有各符號(hào)在內(nèi)存映像文件中的地址信息,所述符號(hào)地址信息 獲取單元從所述map文件中獲取符號(hào)的地址信息。
優(yōu)選地,所述加載單元通過(guò)HPI、 DSI、 sRIO或ETH接口將所述內(nèi)存映像 文件及符號(hào)地址信息加載到DSP存儲(chǔ)器中。
優(yōu)選地,所述加載單元將符號(hào)地址信息加載到所述DSP存儲(chǔ)器中指定的存 儲(chǔ)區(qū)。
優(yōu)選地,所述指定存儲(chǔ)區(qū)配置于DSP的外部存儲(chǔ)器。 優(yōu)選地,所述符號(hào)包括變量、函數(shù)及參數(shù)。
本發(fā)明在加載DSP內(nèi)存映像文件之前,在DSP存儲(chǔ)器中指定專(zhuān)用存儲(chǔ)區(qū), 用來(lái)存儲(chǔ)DSP程序中符號(hào)地址信息,開(kāi)發(fā)人員在對(duì)DSP進(jìn)行調(diào)試時(shí),可通過(guò) 符號(hào)地址信息與符號(hào)的對(duì)應(yīng)關(guān)系查詢(xún)到DSP程序中的變量值,在線(xiàn)查詢(xún)某些函 數(shù),在調(diào)試過(guò)程中開(kāi)發(fā)人員可輕易通過(guò)控制臺(tái)命令調(diào)用函數(shù),查看符號(hào)變量等, 大大方便了調(diào)試工作。本發(fā)明的技術(shù)方案實(shí)現(xiàn)簡(jiǎn)單、實(shí)用。
圖1為本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法的流程圖2為本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載裝置的組成結(jié)構(gòu)示意圖。
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
圖1為本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法的流程圖,如圖1所
示,本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法包括以下步驟
步驟101:對(duì)數(shù)字信號(hào)處理器DSP程序編譯后生成可執(zhí)行文件。DSP程序 開(kāi)發(fā)人員通過(guò)DSP程序?qū)S镁幾g器在開(kāi)發(fā)環(huán)境下進(jìn)行DSP程序編譯,編譯鏈 接后得到可執(zhí)行文件如xx.out文件(或者是df格式文件)及記錄著符號(hào)地址信 息的map文件。在生成可執(zhí)行文件時(shí),編譯器將自動(dòng)生成map文件。
步驟102:將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件并存儲(chǔ)于模擬存儲(chǔ) 區(qū),獲取所述內(nèi)存映像文件中符號(hào)的地址信息并存儲(chǔ)于所述模擬存儲(chǔ)區(qū)的預(yù)留 地址段。
設(shè)置DSP程序的調(diào)試環(huán)境,設(shè)置模擬DSP內(nèi)存環(huán)境的模擬存儲(chǔ)區(qū),以實(shí) 現(xiàn)對(duì)DSP程序的外部調(diào)試,將步驟101中生成的可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存 映像文件。編譯器一般均支持可執(zhí)行文件的轉(zhuǎn)換,如將可執(zhí)行文件為映像二進(jìn) 制文件或十六進(jìn)制文件等DSP支持的可執(zhí)行指令模式。同時(shí),在模擬存儲(chǔ)區(qū)中 設(shè)置一部分專(zhuān)用存儲(chǔ)區(qū),以存儲(chǔ)DSP內(nèi)存映像文件中相應(yīng)符號(hào)的地址信息,為 預(yù)留的存儲(chǔ)地址段。map文件中記錄有各符號(hào)在所述內(nèi)存映像文件中的地址信 息,從map文件提取DSP內(nèi)存映像文件中相應(yīng)符號(hào)的地址信息。這里的符號(hào)主 要是DSP程序中的全局變量的符號(hào)、函數(shù)及一些重要的參數(shù)。符號(hào)的提取根據(jù) 調(diào)試需求決定,可僅提取全局變量的符號(hào)信息,也可僅提取函數(shù)的符號(hào)信息。 需要說(shuō)明的是,在DSP存儲(chǔ)器中,同樣設(shè)置有存儲(chǔ)DSP內(nèi)存映像文件相應(yīng)符 號(hào)地址信息的專(zhuān)用存儲(chǔ)區(qū),該區(qū)域不存儲(chǔ)DSP程序數(shù)據(jù)。DSP存儲(chǔ)器中的專(zhuān)用 存儲(chǔ)區(qū)需要事先設(shè)置,其大小由待存儲(chǔ)符號(hào)地址信息的大小而決定。步驟103:將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加載到 所述DSP存儲(chǔ)器中。
加載方式是通過(guò)硬件接口如HPI、 DSI、 sRIO或ETH接口等將模擬存儲(chǔ)區(qū) 中的內(nèi)存映像文件及符號(hào)地址信息加載到DSP存儲(chǔ)器中。具體地,DSP內(nèi)存映 像文件加載到DSP內(nèi)存中,符號(hào)地址信息加載到DSP內(nèi)存的指定存儲(chǔ)區(qū)中或 外設(shè)的存儲(chǔ)器中的指定存儲(chǔ)區(qū)。
符號(hào)地址信息在DSP內(nèi)存中或外設(shè)的存儲(chǔ)器的指定存儲(chǔ)區(qū)的存儲(chǔ)方式如表 一所示,可將各符號(hào)的頭信息和符號(hào)內(nèi)容信息分別存儲(chǔ),通過(guò)符號(hào)的頭信息可 迅速定位該符號(hào)的內(nèi)容信息。本發(fā)明在DSP存儲(chǔ)器中存儲(chǔ)DSP內(nèi)存映像文件 中相應(yīng)符號(hào)的地址信息的目的是方便開(kāi)發(fā)人員查找相應(yīng)的符號(hào),并不限定符號(hào) 和符號(hào)地址信息的存儲(chǔ)方式。
符號(hào)首地址符號(hào)占用地址長(zhǎng)度
符號(hào)1地址符號(hào)1的變量長(zhǎng)度
符號(hào)2地址符號(hào)2的變量長(zhǎng)度
符號(hào)n地址符號(hào)n的變量長(zhǎng)度
符號(hào)1內(nèi)容信息符號(hào)2內(nèi)容信息
符號(hào)n-1內(nèi)容信息符號(hào)n內(nèi)容信息
表一
本發(fā)明在DSP存儲(chǔ)器中添加了 DSP內(nèi)存映像文件相關(guān)的符號(hào)表信息,保 證了 DSP程序加載后可以查詢(xún)符號(hào)信息,DSP支持在線(xiàn)調(diào)試功能,DSP程序可 以在線(xiàn)查詢(xún)?nèi)肿兞俊⒑瘮?shù)等。在此基礎(chǔ)上,通過(guò)開(kāi)發(fā)DSP程序上運(yùn)行的調(diào)試 代理,即可支持調(diào)試人員在線(xiàn)查詢(xún)變量值,以及通過(guò)控制臺(tái)執(zhí)行命令函數(shù)等能。 方便了DSP程序的調(diào)試。在進(jìn)行離線(xiàn)調(diào)試時(shí),由于符號(hào)表信息已經(jīng)存儲(chǔ)在DSP 的存儲(chǔ)器中,離線(xiàn)調(diào)試所需的DSP快照文件中也包含了符號(hào)信息,不必再依賴(lài) DSP程序的原map文件,不必維護(hù)map文件和存儲(chǔ)器內(nèi)容快照文件的 一一對(duì)應(yīng)關(guān)系。
圖2為本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載裝置的組成結(jié)構(gòu)示意圖, 如圖2所示,本發(fā)明數(shù)字信號(hào)處理器可執(zhí)行文件的加載裝置包括可執(zhí)行文件生
成單元20、內(nèi)存映像文件轉(zhuǎn)換單元21、符號(hào)地址信息獲取單元22、存儲(chǔ)單元 23和加載單元24,其中,可執(zhí)行文件生成單元20用于對(duì)DSP程序編譯后生成 可執(zhí)行文件,同時(shí)還生成有map文件,map文件中記錄有各符號(hào)在內(nèi)存映像文 件中的地址信息。這里的符號(hào)主要是DSP程序中的全局變量的符號(hào)、函數(shù)及一 些重要的參數(shù)。內(nèi)存映像文件轉(zhuǎn)換單元21用于將所述可執(zhí)行文件轉(zhuǎn)換為DSP 內(nèi)存映像文件。符號(hào)地址信息獲取單元22用于獲取所述內(nèi)存映像文件中符號(hào)的 地址信息,具體是從所述map文件中獲取的。存儲(chǔ)單元23用于將內(nèi)存映像文 件存儲(chǔ)于模擬存儲(chǔ)區(qū)、將符號(hào)地址信息存儲(chǔ)于模擬存儲(chǔ)區(qū)的預(yù)留地址段。加載 單元24用于將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加載到 DSP存儲(chǔ)器中。具體地,DSP內(nèi)存映像文件加載到DSP內(nèi)存中,符號(hào)地址信息 加載到DSP內(nèi)存的指定存儲(chǔ)區(qū)中或外設(shè)的存儲(chǔ)器中的指定存儲(chǔ)區(qū)。DSP存儲(chǔ)器
中的專(zhuān)用存儲(chǔ)區(qū)需要事先設(shè)置,其大小由待存儲(chǔ)符號(hào)地址信息的大小而決定。 加載單元24具體通過(guò)HPI、 DSI、 sRIO或ETH接口等硬件接口將內(nèi)存映像文 件及符號(hào)地址信息加載到DSP存儲(chǔ)器中。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述各單元可通過(guò)相應(yīng)的軟件來(lái)實(shí)現(xiàn)所描述的 功能,也可通過(guò)相應(yīng)的電路來(lái)實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法,其特征在于,該方法包括對(duì)數(shù)字信號(hào)處理器DSP程序編譯后生成可執(zhí)行文件;將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件并存儲(chǔ)于模擬存儲(chǔ)區(qū),獲取所述內(nèi)存映像文件中符號(hào)的地址信息并存儲(chǔ)于所述模擬存儲(chǔ)區(qū)的預(yù)留地址段;以及將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加載到所述DSP存儲(chǔ)器中。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,獲取所述內(nèi)存映像文件中符 號(hào)的地址信息,具體為編譯DSP程序時(shí)還生成有映射map文件,所述map文件中記錄有各符號(hào) 在所述內(nèi)存映像文件中的地址信息。
3、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述內(nèi)存映像文件及符號(hào)地 址信息通過(guò)主機(jī)接口 HPI、分布式系統(tǒng)接口 DSI、串行快速總線(xiàn)接口 sRIO或以 太網(wǎng)ETH接口加載到DSP存儲(chǔ)器中。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述符號(hào)地址信息加載到所 述DSP存儲(chǔ)器中指定的存儲(chǔ)區(qū)。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述指定存儲(chǔ)區(qū)位于DSP 外部存儲(chǔ)器。
6、 根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述符號(hào)包括 變量、函數(shù)及參數(shù)。
7、 一種數(shù)字信號(hào)處理器可執(zhí)行文件的加載裝置,其特征在于,該裝置包括 可執(zhí)行文件生成單元,用于對(duì)DSP程序編譯后生成可執(zhí)行文件; 內(nèi)存映像文件轉(zhuǎn)換單元,用于將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件; 符號(hào)地址信息獲取單元,用于獲取所述內(nèi)存映像文件中符號(hào)的地址信息; 存儲(chǔ)單元,用于將內(nèi)存映像文件存儲(chǔ)于模擬存儲(chǔ)區(qū)、將符號(hào)地址信息存儲(chǔ)于模擬存儲(chǔ)區(qū)的預(yù)留地址段;以及加載單元,用于將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加 載到DSP存儲(chǔ)器中。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述可執(zhí)行文件生成單元編譯DSP程序時(shí)還生成有map文件,所述map文件中記錄有各符號(hào)在內(nèi)存映像 文件中的地址信息,所述符號(hào)地址信息獲取單元從所述map文件中獲取符號(hào)的 地址信息。
9、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述加載單元通過(guò)HPI、 DSI、 sRIO或ETH接口將所述內(nèi)存映像文件及符號(hào)地址信息加載到DSP存儲(chǔ)器中。
10、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述加載單元將符號(hào)地址 信息加載到所述DSP存儲(chǔ)器中指定的存儲(chǔ)區(qū)。
11、 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述指定存儲(chǔ)區(qū)配置于 DSP的外部存儲(chǔ)器。
12、 根據(jù)權(quán)利要求7至11中任一項(xiàng)所述的裝置,其特征在于,所述符號(hào)包 括變量、函數(shù)及參數(shù)。
全文摘要
本發(fā)明公開(kāi)了一種數(shù)字信號(hào)處理器可執(zhí)行文件的加載方法,涉及DSP程序加載技術(shù),為解決目前DSP調(diào)試不便而提出,所采用的技術(shù)方案為對(duì)數(shù)字信號(hào)處理器DSP程序編譯后生成可執(zhí)行文件;將所述可執(zhí)行文件轉(zhuǎn)換為DSP內(nèi)存映像文件并存儲(chǔ)于模擬存儲(chǔ)區(qū),獲取所述內(nèi)存映像文件中符號(hào)的地址信息并存儲(chǔ)于所述模擬存儲(chǔ)區(qū)的預(yù)留地址段;以及將所述模擬存儲(chǔ)區(qū)中的內(nèi)存映像文件及符號(hào)地址信息均加載到所述DSP存儲(chǔ)器中。本發(fā)明同時(shí)公開(kāi)了一種實(shí)現(xiàn)上述方法的裝置。采用本發(fā)明方案后,DSP支持在線(xiàn)查詢(xún)某些函數(shù),在調(diào)試過(guò)程中開(kāi)發(fā)人員可輕易通過(guò)控制臺(tái)輸入命令實(shí)現(xiàn)函數(shù)調(diào)用,查看符號(hào)變量等功能,大大方便了調(diào)試工作。本發(fā)明的技術(shù)方案實(shí)現(xiàn)簡(jiǎn)單、實(shí)用。
文檔編號(hào)G06F9/445GK101546268SQ20081010272
公開(kāi)日2009年9月30日 申請(qǐng)日期2008年3月25日 優(yōu)先權(quán)日2008年3月25日
發(fā)明者坤 李, 蔣石竹 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司