DSP系統的動(dòng)態(tài)加載技術(shù)研究
目前,開(kāi)發(fā)人員發(fā)現動(dòng)態(tài)加載應用模塊是在運行期間再配置系統以改變或擴展其功能的最有效方式。開(kāi)發(fā)人員不能 在運行前靜態(tài)配置許多 DSP 系統,其原因在于執行操作的實(shí)時(shí)要求。但是,動(dòng)態(tài)加載允許系統根據需要進(jìn)行自身的再配置。舉例而言,支持多個(gè)調制解調器協(xié)議的基站系統可使用動(dòng)態(tài)加載,從而為目前的服務(wù)請求進(jìn)行適當的自身再配置。我們不妨再舉另一個(gè)例子,即把基于Web的內容下載到無(wú)線(xiàn)手持終端中。我們不能鏈接一個(gè)靜態(tài)的程序圖像,讓它支持用戶(hù)可能選擇的所有潛在Web瀏覽路徑。但是,我們可以通過(guò)動(dòng)態(tài)加載在用戶(hù)需要時(shí)下載某功能所需的支持。這種運行時(shí)的靈活性使動(dòng)態(tài)加載成為可再配置 DSP 系統的關(guān)鍵技術(shù)。
本文引用地址:http://dyxdggzs.com/article/150287.htm動(dòng)態(tài)加載在臺式機領(lǐng)域很常見(jiàn),用戶(hù)常用它從各自獨立的可升級模塊來(lái)進(jìn)行應用匯編。但是,開(kāi)發(fā)人員過(guò)去在DSP系統中不怎么使用動(dòng)態(tài)加載技術(shù),因為過(guò)去它們通常都是帶有實(shí)時(shí)確定要求的單一應用。
其他技術(shù)的沉沒(méi)
開(kāi)發(fā)人員也已嘗試過(guò)采用靜態(tài)技術(shù)進(jìn)行再配置,但上述技術(shù)與動(dòng)態(tài)加載相比較少成功,其中之一就是構建了多個(gè)程序圖像,每個(gè)圖像都帶有不同的算法集合。當開(kāi)發(fā)人員在運行時(shí)可以確定實(shí)際的配置時(shí),就可以下載適當的圖像。在帶寬有限的無(wú)線(xiàn)鏈接情況下,可能需要很長(cháng)的時(shí)間才能下載完整的應用,而且如果開(kāi)發(fā)人員必須通過(guò)重復下載完整的圖像才能在運行過(guò)程中對系統進(jìn)行再配置的話(huà),那么就會(huì )中斷系統的使用。對于開(kāi)發(fā)人員來(lái)說(shuō),這種方法要求在構建應用可能需要的所有圖像之前須提前進(jìn)行全面了解。
在具有多種獨立功能差異的系統中,開(kāi)發(fā)人員必須構建的圖像數量也呈組合式增長(cháng)。隨著(zhù)系統和軟件應用變得越發(fā)復雜,最終也不可能預先確定所有潛在要求,因此這種方法也就不再可行了。
開(kāi)發(fā)人員還推出了疊加技術(shù),可部分地解決上述問(wèn)題。根據這種方法,備用代碼或數據處于相同的存儲器空間中。當模塊在運行時(shí)被寫(xiě)入該空間并疊加原先的模塊時(shí),就會(huì )進(jìn)行再配置。這種方法減少了加載時(shí)間,并且進(jìn)行再配置也不必中斷應用。如果開(kāi)發(fā)人員可限制系統僅從一個(gè)系列選擇中做出一種選擇,那么系統就可相當有效地采用疊加的方法了。但如果系統要求多種選擇,那么為每個(gè)疊加都預先確定存儲器分配就不大可能現實(shí)了。這種情況可能會(huì )要求構建多個(gè)疊加圖像,每個(gè)圖像針對一個(gè)可能的存儲器進(jìn)行綁定。這種方法也再次帶來(lái)了圖像數量組合增長(cháng)的問(wèn)題。
動(dòng)態(tài)加載的優(yōu)勢
動(dòng)態(tài)加載將模塊與系統物理存儲器的綁定延遲到運行時(shí)再進(jìn)行,這就避免了上述問(wèn)題。因此,代碼可運行于不同的系統設置上,從而帶來(lái)了更高的靈活性與可重復使用性。在大多數嵌入式系統中,片上存儲器非常珍貴,系統必須對其進(jìn)行高效利用,但確定系統的哪部分應駐留于片上存儲器中可能在開(kāi)發(fā)過(guò)程中具有很強的局限性。動(dòng)態(tài)加載允許開(kāi)發(fā)人員推遲到運行時(shí)再做出決定,這時(shí)他們可采用實(shí)時(shí)條件來(lái)確定在給定時(shí)間中哪種算法應駐留于存儲器。開(kāi)發(fā)人員可根據需要重復地替代或交換算法,這對應用持續使用的影響也較小。在新型的無(wú)線(xiàn)系統中,多通道應用可根據需要交換編解碼器算法,而無(wú)線(xiàn)個(gè)人通信裝置可從遠程服務(wù)器下載 DSP 內容。
動(dòng)態(tài)加載也使系統的升級變得更為方便。升級時(shí)開(kāi)發(fā)人員通常必須得寫(xiě)整個(gè)系統,其中包括寶貴的用戶(hù)與配置數據。但利用動(dòng)態(tài)加載,他們可將升級限制在系統的一個(gè)或更多部分,如某種算法或某個(gè)數據表格。此外,動(dòng)態(tài)模塊升級還僅取決于基礎系統提供的功能API(應用編程接口);而非取決于基礎系統的靜態(tài)地址。這意味著(zhù),一個(gè)動(dòng)態(tài)模塊可支持多個(gè)產(chǎn)品版本,只要所有版本提供的API相同即可。
表1總結了DSP系統再配置的關(guān)鍵問(wèn)題。顯示了動(dòng)態(tài)加載與疊加及靜態(tài)加載屬性之間的比較。正如該表所示,與靜態(tài)圖像及疊加相比,動(dòng)態(tài)加載在基于DSP系統的再配置方面具有強大的優(yōu)勢。

我們接下來(lái)將根據 TI 的 TMS320 DSP 討論動(dòng)態(tài)加載的組件及其工作的方式,不過(guò)根據實(shí)施不同,具體細節也有所不同。
自加載 DSP 應用
在典型的自加載 DSP 應用中,單獨的 DSP 運行于主控制程序中,該程序包括動(dòng)態(tài)加載器庫(圖 1)。這種方法保存了一些動(dòng)態(tài)圖像所用的 DSP 存儲器。當應用要求動(dòng)態(tài)模塊或動(dòng)態(tài)模塊組時(shí),該控制程序將調用動(dòng)態(tài)加載器,指定待加載的模塊圖像。模塊圖像可位于閃存或二級存儲設備中,系統也可從某些設備中讀取圖像。加載器為每個(gè)模塊分配存儲器,為所選的存儲器調整圖像位置,建立到主程序的任何引用,并將調整后的圖像復制到動(dòng)態(tài)存儲器中。當加載完成后,動(dòng)態(tài)模塊則與應用無(wú)縫集成,就象它從初始化之后即存在于系統中一樣。
自加載的典型使用為具備 DSP 功能的支持多種媒體格式的媒體播放器設備。它將每種可能的輸入來(lái)源、媒體格式、音頻效果及輸出進(jìn)程表示為動(dòng)態(tài)模塊。當用戶(hù)選擇媒體時(shí),系統將加載適當的模塊并開(kāi)始播放。

圖1 DSP 的動(dòng)態(tài)自加載
MCU 控制的加載
在典型的 MCU 控制的 DSP 應用中,微控制器管理 一個(gè)或更多 DSP 處理器(圖 2)。微控制器選擇在每個(gè) DSP 上的哪個(gè) DSP 模塊或模塊集運行,并使用動(dòng)態(tài)加載器加載適當的模塊。這種使用在幾個(gè)重要方面不同于自加載應用。其一,動(dòng)態(tài)加載器運行于微處理器上,而不是運行于正在加載的處理器上。此外,微處理器通常代表 DSP 管理動(dòng)態(tài)存儲器,因為 DSP 要求非直接存儲器分配算法。再者,在微計算機控制的加載中,動(dòng)態(tài)圖像的加載可能要求通過(guò)接口外設進(jìn)行輸出,因為微控制器可能不能直接訪(fǎng)問(wèn) DSP 存儲器的地址。
主從應用發(fā)生于基站、中心局及無(wú)線(xiàn)終端中。在基站和中心局中,單一的微控制器管理多個(gè) DSP,每個(gè) DSP 處理多個(gè)通道。TI 的 OMAP1610平臺是一個(gè)典型的無(wú)線(xiàn)終端。該設備主要面向手持多媒體應用,其中,系統主機為ARM MCU,其包括 DSP 橋接功能,可控制 TMS320C55x的加載、初始化及代碼執行。

圖2 MCU 控制的動(dòng)態(tài)加載
現場(chǎng)測試應用
在典型的現場(chǎng)實(shí)驗應用中,服務(wù)技術(shù)人員給出一系列顯示為動(dòng)態(tài)加載模塊的測試應用。通常說(shuō)來(lái),廠(chǎng)商隨著(zhù)時(shí)間的發(fā)展會(huì )增加并改善本測試。用于測試模塊的備用存儲器加入接受維修服務(wù)的產(chǎn)品,并啟用實(shí)現動(dòng)態(tài)加載。測試設備包括測試模塊以及動(dòng)態(tài)加載器和測試控制應用(這里的加載器可能位于測試控制應用中,也可能內置于加入的產(chǎn)品中)。測試設備還包括內置于產(chǎn)品中的加入點(diǎn)定義(這些符號定義可內置于產(chǎn)品中,抑或測試集可將其作為符號模塊承載)。診斷測試通過(guò)加載各獨立測試進(jìn)行。每個(gè)測試都動(dòng)態(tài)連接到其要求的產(chǎn)品軟件服務(wù)中,如設備驅動(dòng)程序和狀態(tài)變量。
評論