亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于TI TMS320 DSP的軟件動態(tài)鏈接技術

        2012-08-14 00:53:44許揚婧
        電子設計工程 2012年11期
        關鍵詞:指令信息系統(tǒng)

        鄧 偉 , 許揚婧

        (1.通信信息控制和安全技術重點實驗室 浙江 嘉興 314033;2.中國電子科技集團公司第三十六研究所 浙江 嘉興 314033)

        基于數(shù)字信號處理器(DSP)的多功能自適應通信系統(tǒng)在軟件無線電領域正變得日益普遍,如何使DSP系統(tǒng)在運行期間自適應的改變通信協(xié)議是實現(xiàn)這種系統(tǒng)的關鍵。當前,DSP開發(fā)人員采用了重配置、層疊(overlay)等技術來實現(xiàn)通信協(xié)議自適應功能,但作為運行時改變或擴展功能的最有效方式[1],基于DSP的動態(tài)鏈接技術尚未有文獻提及。

        動態(tài)鏈接技術是相對于靜態(tài)鏈接而言,它是指編譯器在編譯程序時并不將程序所需的庫文件代碼復制到程序的可執(zhí)行文件,而只是在程序中保留庫文件的調(diào)用標記。在程序運行時,由鏈接器將庫文件代碼加載到系統(tǒng)內(nèi)存,并與程序鏈接為一個整體[2]。在大多數(shù)DSP系統(tǒng)中,采用動態(tài)鏈接技術可以節(jié)省系統(tǒng)對片上存儲器大小的要求,此外,由于動態(tài)鏈接庫函數(shù)對外提供的是函數(shù)的接口,而不是函數(shù)的入口地址,因此動態(tài)鏈接函數(shù)可同時提供多個版本,使系統(tǒng)的升級變得更為方便。

        通過研究和分析TI DSP目標代碼的生成過程和目標代碼的結(jié)構,提出了針對該系列DSP代碼動態(tài)鏈接的方法。將本文提出的方法應用到某通信系統(tǒng)中表明,該方法具有占用片上內(nèi)存小、系統(tǒng)配置時間短、系統(tǒng)有較強的可擴展性等優(yōu)點,在此后的DSP開發(fā)過程中會得到廣泛的應用。

        1 DSP目標代碼生成流程

        TI DSP系列開發(fā)工具包為開發(fā)人員提供了一套完整的軟件開發(fā)工具鏈,包括C/C++編譯器,匯編器,鏈接器等[3]。利用這套開發(fā)工具包,DSP開發(fā)人員可以完成程序的編寫、編譯、鏈接,直到目標代碼的生成。其中,C/C++編譯器將C語言轉(zhuǎn)換為匯編語言,匯編器匯編語言翻譯為機器語言,以COFF目標文件的形式輸出給鏈接器。鏈接器將匯編器生成的COFF文件與庫文件鏈接成一個完整的程序,以可執(zhí)行的COFF文件輸出到磁盤,生成DSP可執(zhí)行程序。

        2 DSP動態(tài)鏈接器的設計

        文中設計的DSP系統(tǒng)軟件架構如圖1所示。DSP應用程序被劃分為一個或多個可加載模塊,動態(tài)鏈接器作為DSP軟件系統(tǒng)架構中的一個重要的軟件模塊,其作用主要是在DSP系統(tǒng)改變功能時,按需將匯編器生成的目標文件按需加載到系統(tǒng)中,與系統(tǒng)已有程序結(jié)合成為一個整體,并將卸載系統(tǒng)中不需要的模塊。

        2.1 模塊的定義

        圖1中所示的可加載模塊文件主要包括DSP應用程序的機器代碼,此外包括模塊的名稱、大小、版本,模塊所包含的函數(shù)聲明,模塊所依賴的函數(shù)接口,模塊的入口函數(shù)信息,模塊被引用信息等。這些信息是在匯編器生成DSP應用程序的機器代碼后,由模塊生成程序?qū)⒏郊拥男畔⑻砑拥紺OFF文件中,生成最終的可加載模塊文件。本文設計的可加載模塊的文件格式如圖2所示。

        圖2 可加載模塊的文件格式Fig.2 Loadable module file format

        2.2 模塊的加載和卸載

        2.2.1 COFF文件格式

        DSP動態(tài)鏈接器設計的關鍵是解析匯編器生成的目標文件,將目標文件中包含的代碼根據(jù)模塊的加載地址進行重定位后,完成與系統(tǒng)已有程序的鏈接。匯編器生成的目標文件是以COFF文件格式保存在磁盤上,其通常包括代碼段、數(shù)據(jù)段、用戶自定義段、符號表和重定位信息等數(shù)據(jù)[4],格式如圖3所示。

        如圖3所示,COFF文件主要包括一個文件頭部和多個段信息,以及段重定位信息和符號表等。COFF文件缺省的包含3個段:.text段、.data段和.bss段。匯編器將匯編程序的代碼部分放到.text段中,將全局變量放在.data或.bss段中,同時在符號表中寫入該文件包含的符號(函數(shù)或變量)名稱和對外引用的符號名稱等信息。此外,每段的重定位信息表中都包含重定位信息項,根據(jù)重定位信息項,可以確定可重定位指令在段中的偏移量,表1給出了重定位信息項的結(jié)構[4]。

        重定位信息項的0-3字節(jié)表示可重定位指令以0作為起始地址,在當前段中的偏移量。4-5字節(jié)是符號索引表,它代表了該重定位指令索引的符號在COFF文件中符號表中的索引號。8-9字節(jié)表示重定位類型,它指出了如何將定位后的地址信息添加到該可重定位指令上。表2是重定位信息項的一個例子,這里假設該重定位信息項屬于.text段。

        圖3 COFF文件格式Fig.3 COFF file format

        表1 重定位信息項Tab.1 Relocation information entry

        表2 重定位信息項例子Tab.2 Relocation information entry example

        該重定位信息項說明在.text代碼段偏移20個字節(jié)處存在一條重定位語句,該語句所指向的符號在符號表中的位置是第20項(從0開始計),該語句的重定位類型是PC跳轉(zhuǎn)指令重定位。

        2.2.2 DSP機器代碼的識別

        匯編器生成的是DSP機器代碼,因此動態(tài)鏈接器需要分析重定位指令格式,以便將指令引用地址添加到該指令中。根據(jù)TMS320 DSP指令手冊[5],TMS320 DSP指令格式包括如圖4所示。

        文中通過分析指令格式的低位比特位,可以判斷出指令屬于上述指令中的哪一類。以指令0x0200007E為例,將指令表示為二進制:(0000 0010 0000 0000 0000 0000 0111 1110)b,指令的2~3位為11,在圖4中查找2~3位為11的指令,可以發(fā)現(xiàn)該指令是一條STW存儲指令,指令的ucst15比特域表示了其需要重定位的地址。

        圖4 TMS320 DSP指令格式Fig.4 TMS320 DSP instruction format

        2.2.3 模塊動態(tài)鏈接的實現(xiàn)

        動態(tài)鏈接器的功能主要包括模塊的動態(tài)鏈接和動態(tài)卸載,模塊動態(tài)鏈接的主要流程如圖5所示。動態(tài)鏈接器在收到加載模塊請求時,首先檢查模塊文件的完整性,并根據(jù)加載模塊的依賴信息在系統(tǒng)符號表中查找對應的函數(shù)和變量。當模塊通過完整性和依賴性檢查后,動態(tài)鏈接器首先根據(jù)模塊大小聲明,在系統(tǒng)的存儲空間中分配空間,將模塊文件加載到系統(tǒng)存儲空間。接著動態(tài)鏈接器根據(jù)COFF文件信息,搜索COFF文件代碼段中的重定位語句,并根據(jù)指令格式確定指令中地址域信息,最后將綜合模塊被加載的地址和指令索引的符號的地址,計算地址信息,并將此信息填入可重定位指令的地址域,完成指令的重定位。在代碼段重定位完成后,動態(tài)鏈接器將模塊名稱、模塊對外提供的函數(shù)名稱、模塊入口地址等信息注冊到系統(tǒng)符號表中,并調(diào)用模塊加載函數(shù),完成模塊對系統(tǒng)資源的申請。最后,如果該模塊所提供的函數(shù)或者變量替換了系統(tǒng)已有的函數(shù)或者變量,動態(tài)鏈接器還需要將所有引用該函數(shù)或變量的其他模塊進行重定位,以反映系統(tǒng)狀態(tài)的更新。

        圖5 模塊動態(tài)鏈接流程Fig.5 Dynamic module linking flow

        2.2.4 模塊動態(tài)卸載的實現(xiàn)

        模塊動態(tài)卸載是加載過程的逆過程,動態(tài)鏈接器在收到卸載模塊請求時,首先在系統(tǒng)中搜索是否有模塊引用了將要被卸載的模塊,若存在則警告用戶,并等待用戶確實是否強制卸載。若是,動態(tài)鏈接器將卸載模塊對外提供的函數(shù)和變量從系統(tǒng)符號表中刪除,并收回卸載模塊占用的系統(tǒng)空間。完整的模塊動態(tài)卸載流程如圖6所示。

        圖6 模塊動態(tài)卸載流程Fig.6 Dynamic module unloading flow

        3 結(jié) 論

        文中設計的DSP動態(tài)鏈接器為傳統(tǒng)的DSP系統(tǒng)帶來新的應用功能,已在某多功能通信系統(tǒng)中獲得了成功的應用。動態(tài)鏈接技術作為DSP系統(tǒng)的重配置技術之一,其應用要比傳統(tǒng)的DSP全系統(tǒng)重構技術[6]或疊加技術更為靈活和高效。同時,本文提出的動態(tài)鏈接技術相對于文獻[7],文獻[8]提出的函數(shù)查找表的實現(xiàn)方式更加富有效率。盡管目前動態(tài)鏈接技術在DSP領域的應用很少,但隨著DSP應用向多功能發(fā)展,相信動態(tài)鏈接技術在DSP領域的應用會越來越廣泛。

        [1]Szewerenko L,Ombres D.采用可高效再配置DSP系統(tǒng)的動態(tài)加載技術[J].EDN China,2004,11(3):120-124.Szewerenko L,Ombres D.Efficiency reconfigurable DSP system based on dynamic link method[J].EDN China,2004,11(3):120-124.

        [2]劉寶祥.談談動態(tài)鏈接與動態(tài)鏈接庫 [J].科技信息,2006(7):143.LIU Bao-xiang.On dynamic link and dynamic link library[J].Science&Technology Information,2006(7):143.

        [3]Texas Instruments Incorporated.TMS320C6000 Optimizing Compiler v 7.3 User's Guide [EB/OL].(2011)[2012-03-10].http://www.ti.com/lit/ug/spru187t/spru187t.pdf.

        [4]Texas Instruments Incorporated.TMS320C6000 Assembly Language Tools User’s Guide[EB/OL].(2010)[2012-03-10].http://www.ti.com.cn/cn/lit/ug/spru186s/spru186s.pdf.

        [5]Texas Instruments Incorporated.TMS320C6000 CPU and Instruction Set Reference Guide[EB/OL].(2000)[2012-03-10].http://www.ti.com.cn/cn/lit/ug/spru189g/spru189g.pdf.

        [6]李庭勝.基于DSP+FPGA系統(tǒng)在線重構技術[J].信息安全與通信保密,2005(11):62-64.LI Ting-sheng.A safe reprogramming scheme based on FPGA&DSPdigitalsystem[J].ChinaInformationSecurity,2005(11):62-64.

        [7]楊偉,羅蕾.嵌入式系統(tǒng)中的模塊動態(tài)加載技術[J].單片機與嵌入式系統(tǒng)應用,2005(11):8-10.YANG Wei,LUO Lei.Module dynamic loading technology ofembeddedsystems[J].Microcontrollers&EmbeddedSystems,2005(11):8-10.

        [8]張藍博,張善從,陳蔚薇.嵌入式系統(tǒng)中的代碼動態(tài)鏈接模型[J].計算機工程與設計,2008,29(16):4115-4117.ZHANG Lan-bo,ZHANG Shan-cong,CHEN Wei-wei.Dynamic link model of code on embedded systems[J].Computer Engineering and Design,2008,29(16):4115-4117.

        猜你喜歡
        指令信息系統(tǒng)
        聽我指令:大催眠術
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        ARINC661顯控指令快速驗證方法
        測控技術(2018年5期)2018-12-09 09:04:26
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        坐標系旋轉(zhuǎn)指令數(shù)控編程應用
        機電信息(2014年27期)2014-02-27 15:53:56
        236宅宅理论片免费| 久久精品国产亚洲av高清漫画 | 日韩午夜免费视频精品一区| 亚洲老熟妇愉情magnet| 日日av拍夜夜添久久免费 | 夜先锋av资源网站| 亚洲欧洲免费无码| 国产偷国产偷亚洲高清| 精品18在线观看免费视频| 九月婷婷人人澡人人添人人爽| 日韩欧美在线综合网另类| 日本不卡不二三区在线看| 欧美人与动牲交片免费| 人人妻人人澡人人爽精品欧美 | av天堂亚洲另类色图在线播放 | 樱桃视频影院在线播放| 人妻一区二区三区av| 日本精品啪啪一区二区| 久久中文字幕日韩无码视频| 久久久久久久性潮| 色播亚洲视频在线观看| 91九色免费视频网站| av人妻在线一区二区三区| 亚洲一区不卡在线导航| 四虎永久免费影院在线| 国产乱色精品成人免费视频| 国产精品av在线| 欲女在线一区二区三区| 久久精品国产自产对白一区| 精品日本韩国一区二区三区| 人妻精品丝袜一区二区无码AV | aaa毛片视频免费观看| 久久久精品人妻一区二区三区四| 久久青青草原精品国产app| 国产精品国产三级国产密月| av天堂手机在线看片资源| 亚洲人成伊人成综合网中文| 白白色免费视频一区二区| 色老头一区二区三区| 无码三级在线看中文字幕完整版 | 天堂视频一区二区免费在线观看|