《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > TMS320C/F2xx系列DSP的目標文件格式

TMS320C/F2xx系列DSP的目標文件格式

2009-08-18
作者:朱春海 李玉忍

  摘? 要: 對TI公司新的匯編器和鏈接器創建的目標文件所采用的一種格式——COFF目標文件格式的組成和產生過程作了詳細的闡述。

  關鍵詞: DSP技術? COFF文件格式

?

  近年來,數字信號處理器(DSPs)在信號處理及運動控制方面得到了日益廣泛的應用。開發DSPs時不論使用匯編語言還是C語言,源程序都要經過編譯(對C語言)生成目標文件,再由鏈接器把目標文件鏈接成可執行的COFF文件。TI公司新的匯編器和鏈接器創建的目標文件采用一種稱為COFF(Common Object File Format)的目標文件格式。采用這種文件格式更有利于模塊化編程,并且為管理代碼段和目標系統存儲器提供更強有力和更靈活的方法。

1? 塊的基本概念

  COFF文件格式鼓勵程序員用匯編語言或高級語言編程時使用基于代碼塊和數據塊的概念,而不是一條條命令或一個個數據,這就使得程序的可讀性和可移植性大大增強。在COFF格式中,這種塊稱為section。TI公司新的匯編器和鏈接器提供了相關的命令來創建塊和對塊進行處理。

  塊是目標文件中的最小單元,是最終在TMS320C/F2xx存儲器映象中占據一段連續空間的代碼或數據。目標文件中的每一個塊都是相互獨立的。通常COFF目標文件包含3個默認的塊:(1).text塊:包括可執行代碼;(2).data塊:包括已初始化的數據;(3).bss塊:為沒有初始化的數據保留空間。

  此外,匯編器和鏈接器允許程序員創建、命名、鏈接自定義的塊,這些塊與.text、.data、和.bss的使用類似。所有的塊可分為二種基本類型,即已初始化的塊和未初始化的塊。已初始化的塊包括已初始化的數據和程序代碼,上面提到的.text塊和.data塊就屬于這類塊。另外,匯編器命令.sect和.asect所創建的塊也屬于這類塊。未初始化的塊為沒有初始化的數據在存儲器映象中保留空間,.bss塊和由匯編器命令.usect所創建的塊屬于這一類。

  匯編器提供了將各種代碼和數據段與相應塊聯系的命令。

2?塊的匯編

  匯編器對塊的處理功能主要是確定匯編語言程序的各部分屬于哪個特定的塊。匯編器用.text、.data、.sect、.asect、.bss、.usect命令完成對塊的定位。其中,.text、.data、.sect和.asect命令建立已初始化的塊,.bss和.usect命令則用來建立未初始化的塊。如果程序中沒有用任何命令對塊進行操作,則匯編器將把所有的程序塊或數據塊統一匯編到.text塊中。

2.1 匯編器對已初始化塊的處理

  已初始化塊包括已初始化的數據和程序代碼。這部分塊的內容存儲在目標文件中。當程序下載時被下載到TMS320C/F2xx的存儲器中。每個已初始化塊可以獨立地進行重定位,并且可以引用其他塊中定義的變量。鏈接器可以自動解決塊與塊之間變量引用的問題。

  下面4個命令將代碼或數據存放在一個塊中,其命令格式如下:

  .text

  .data

  .sect “塊名”

  .asect “塊名”,地址

  在這些命令中,.text和.data命令建立的塊名稱就是.text和.data,而后二個命令建立的塊是自定義的塊。其中.asect建立的塊具有絕對地址,一般不要使用。當匯編器遇到上述命令時,立即停止匯編當前塊,且開始將隨后的代碼或數據匯編到當前命令所對應的塊中。

2.2 匯編器對未初始化塊的處理

  未初始化塊在TMS320C/F2xx存儲器中為沒有初始化的數據保留空間,它們通常被分配到RAM中。程序在運行時利用這些空間創建和存儲變量。

  匯編器用.bss和.usect命令建立未初始化塊。其中,.bss命令在.bss塊中保留空間,.usect命令在自定義的塊中保留空間。它們的命令格式如下:

  .bss??????? 變量,塊大小

  變量.usect“塊名”,塊大小

  匯編器遇到.bss和.usect命令時并不結束當前塊,只是暫時離開當前塊而去創建一個新塊。所以,.bss和.usect命令可以出現在一個已初始化塊中的任何地方,而不影響已初始化塊的內容。

2.3 匯編器對自定義塊的處理

  自定義塊是程序員自己建立的塊,它與默認的.text、

  .data和.bss塊的使用方法相同,而與默認塊是分開匯編的。

  程序員可以用.usect、.sect和.asect命令建立自定義的塊。其中,.usect建立的塊用來在RAM中為變量保留空間,其用法類似于.bss塊;.sect和.asect建立包括代碼和數據的塊,用法類似于.text塊和.data塊。.sect命令建立的塊是可重定位的,.asect命令建立的塊是具有絕對地址的塊,是不能重定位的。它們的命令格式如下:

  變量.usect“塊名”,塊大小

  .sect “塊名”

  .asect “塊名”,地址

3? 塊的鏈接

  鏈接器對塊的處理主要包括下面2個方面。首先,鏈接器將COFF目標文件中的塊建立為程序塊或數據塊并以這些塊作為輸入塊,鏈接器再把這些輸入塊組合起來以建立可執行的COFF輸出模塊。然后,鏈接器為輸出塊選擇存儲器地址。鏈接器提供Memory和Sections 2個命令來完成上述工作。其中,Memory命令定義目標系統的存儲器分配,程序員可以通過指定存儲器起始地址和長度來定義每一塊存儲器。Sections命令定義如何組合輸入塊以及在存儲器何處存放輸出塊。若不用這二條命令,鏈接器就會采用默認的分配方法;若采用這二條命令,則需要在鏈接器命令文件(擴展名為.cmd)中確定。下面是一個TMS320F240鏈接命令文件的例子。

  

  

4?程序的重定位

  匯編器對目標文件中的每個塊匯編時都假定其起始地址為0,所以每一塊中的重定位符號都是相對于0地址而言的。當然,所有的塊在存儲器中并不都是以0地址起始,因此鏈接器用以下方法對每一個塊進行重定位。首先,鏈接器把塊分配到存儲器中,從而使各個塊都有自己的起始地址;然后調整符號值使之對應于新的塊地址;最后通過調整重定位后符號的參考值來反映調整后的符號值。

  鏈接器利用重定位項來調整符號的參考值。匯編器在每次可重定位符號被參考時會建立一個重定位項,鏈接器則在符號被重定位后利用這個重定位項來修正參考值。

5?COFF目標文件的生成

  下面以C語言編寫的源程序為例,給出如圖1所示的COFF目標文件的生成框圖。

?

  用戶編寫的C源程序經過C編譯器的處理后,轉化為具有相同功能的匯編語言代碼。之后再作為獨立的匯編源程序經過匯編處理產生COFF目標文件,其中包含上述的各類程序塊或數據塊。接下來,鏈接器以這些塊作為輸入將其組合起來,并參照具體的CMD文件,最終生成可執行的COFF文件。此外在鏈接過程中系統將自動訪問目標文件庫和運行庫,以簡化鏈接過程,縮短鏈接過程所需的時間。

6? 結? 論

  本文介紹了TI公司新的匯編器和鏈接器所采用的COFF目標文件格式及這種文件格式中的最小單元——塊,討論了匯編器和鏈接器對塊的處理方法。COFF目標文件格式非常有利于模塊化編程,使管理代碼段和系統存儲器更加方便和靈活,使程序具有更強的可讀性和可移植性。
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品成人一区二区三区吃奶| 一本色道久久88亚洲综合88| 久久久噜噜噜久久人人看| 欧美日韩视频一区二区三区| 国产日韩精品一区二区三区在线| 亚洲裸体视频| 亚洲一二三区在线| 91久久精品美女高潮| 欧美日韩综合在线| 狠狠干成人综合网| 国产九区一区在线| 欧美三级网页| 一本一本久久a久久精品综合麻豆| 老司机一区二区| 亚洲欧美国产高清va在线播| 在线日韩一区二区| 在线播放视频一区| 噜噜噜91成人网| 国产精品自拍三区| 在线欧美福利| 欧美精品激情在线| 欧美激情一区二区久久久| 国产主播一区二区| 国产精品―色哟哟| 美女露胸一区二区三区| 国产一区二区av| 欧美午夜女人视频在线| 精品99视频| 欧美日韩精品一区二区三区四区| 久久亚洲欧洲| 极品尤物一区二区三区| 欧美阿v一级看视频| 欧美日本不卡| 欧美视频国产精品| 久久亚洲美女| 亚洲国产岛国毛片在线| 久久久欧美精品sm网站| 99视频一区二区三区| 欧美视频手机在线| 久久中文字幕导航| 亚洲狼人综合| 亚洲国产精品成人精品| 国产亚洲欧美日韩一区二区| 亚洲欧美影音先锋| 韩日成人在线| 欧美日韩一区在线视频| 男男成人高潮片免费网站| 亚洲亚洲精品三区日韩精品在线视频| 国产亚洲日本欧美韩国| 国产精品色一区二区三区| 久久亚洲欧美| 中文精品99久久国产香蕉| 久久久国产一区二区| 毛片精品免费在线观看| 国精品一区二区三区| 欧美有码在线视频| 一本色道久久综合狠狠躁的推荐| 国产亚洲欧美一区在线观看| 欧美体内谢she精2性欧美| 亚洲伊人一本大道中文字幕| 亚洲欧美综合网| 亚洲国产欧美一区| 国产日韩av高清| 久久黄色级2电影| 亚洲综合欧美| 日韩亚洲一区在线播放| 久久久久国内| 免费成人毛片| 国产精品老牛| 欧美1区2区视频| 久久综合久色欧美综合狠狠| 欧美大片一区二区| 国产欧美日韩一区二区三区| 久久久久一区二区三区四区| 久久婷婷国产麻豆91天堂| 一区二区三区在线观看视频| 欧美综合国产精品久久丁香| 久久字幕精品一区| 99xxxx成人网| 国产精品亚洲美女av网站| 亚洲精品一区二区三区蜜桃久| 黄色亚洲在线| 一二三四社区欧美黄| 欧美成人精品1314www| 国产美女精品人人做人人爽| 亚洲精品乱码久久久久久蜜桃91| 老司机aⅴ在线精品导航| 欧美一区二区在线播放| 欧美另类极品videosbest最新版本| 亚洲午夜电影网| 久久九九精品99国产精品| 日韩视频一区二区三区在线播放免费观看| 国产精品主播| 亚洲天堂成人在线视频| 欧美高清在线播放| 欧美亚洲系列| 亚洲欧美综合精品久久成人| 欧美午夜片在线观看| 国产一区二区三区久久精品| 亚洲国产精品久久人人爱蜜臀| 欧美日韩一区二区三区四区五区| 国产精品久久久久高潮| 亚洲高清二区| 欧美成人午夜激情视频| 一区二区三区欧美日韩| 一区二区三区偷拍| 国内精品模特av私拍在线观看| 鲁鲁狠狠狠7777一区二区| 一区二区三区在线观看欧美| 精品成人a区在线观看| 欧美成人国产| 一区二区三区高清在线观看| 在线视频欧美一区| 欧美精品一区二区三区一线天视频| 国产精品无码永久免费888| 国产主播一区二区| 久久久999精品视频| 欧美日韩亚洲一区在线观看| 久久久久久一区| 国产精品成人一区| 久久成人资源| 红桃视频国产精品| 亚洲一区三区在线观看| 亚洲自拍偷拍网址| 久久亚洲春色中文字幕| 欧美一级大片在线观看| 亚洲日本中文| 日韩午夜av在线| 99re热这里只有精品免费视频| 91久久线看在观草草青青| 久久夜色精品国产亚洲aⅴ| 国产精品一区二区三区乱码| 今天的高清视频免费播放成人| 欧美国产日韩免费| 在线成人激情视频| 欧美日韩不卡视频| 国产又爽又黄的激情精品视频| 久久久天天操| 亚洲主播在线观看| 小黄鸭视频精品导航| 中文在线不卡| 亚洲精品国偷自产在线99热| 免费成人你懂的| 欧美激情一区二区三区不卡| 欧美高清视频一区二区三区在线观看| 欧美成人精品在线观看| 欧美区高清在线| 男同欧美伦乱| 午夜亚洲视频| 国产婷婷色一区二区三区在线| 亚洲第一在线综合网站| 免费欧美在线| 999在线观看精品免费不卡网站| 最新成人在线| 国产精品美女久久久久久2018| 亚洲日本欧美在线| 亚洲欧美激情视频| 国外成人网址| 激情视频一区二区三区| 欧美理论电影网| 久久精品99国产精品酒店日本| 久久香蕉国产线看观看网| 欧美综合二区| 国产欧美欧洲在线观看| 久久香蕉精品| 最新国产成人av网站网址麻豆| 亚洲性视频网址| 国产午夜精品一区理论片飘花| 久久婷婷亚洲| 欧美日韩国产在线观看| aⅴ色国产欧美| 国产女人aaa级久久久级| 亚洲精品乱码久久久久久蜜桃麻豆| 久久永久免费| 欧美激情免费观看| 久久精品91久久香蕉加勒比| 久久久久国产一区二区| 久久九九99视频| 国产精品私拍pans大尺度在线| 国内成人精品2018免费看| 久久久久九九九九| 老司机精品视频网站| 国产日韩精品一区二区浪潮av| 国产精品影视天天线| 欧美日一区二区三区在线观看国产免| 美女精品网站| 国产精品美女久久福利网站| 美女视频黄 久久| 性视频1819p久久| 亚洲欧洲久久| 亚洲国产精品女人久久久| 久久在线视频在线| 亚洲午夜久久久久久久久电影院| 夜夜嗨av一区二区三区四季av| 久久久亚洲综合| 在线观看日韩国产| 亚洲精品婷婷| 精品福利av| 日韩视频免费观看高清完整版| 久久久夜精品| 亚洲精品日产精品乱码不卡| 国产区精品在线观看| 欧美国产在线视频| 久久亚洲综合色一区二区三区| 亚洲一级黄色片| 久久天天狠狠| 在线亚洲欧美| 国产农村妇女精品| 欧美一区二区三区四区高清| 久久精品卡一| 另类图片综合电影| 午夜欧美电影在线观看| 在线亚洲免费| 久久成人免费日本黄色| 久久久久9999亚洲精品| 欧美伦理在线观看| 亚洲尤物精选| 欧美日韩国产免费观看| 国产综合视频| 欧美精品www| 99在线观看免费视频精品观看| 国产一区二区三区在线播放免费观看| 欧美成人在线免费观看| 狠狠爱www人成狠狠爱综合网| 一区二区三区四区在线| 国产在线成人| 亚洲精品一区二区三区婷婷月| 久久久噜噜噜久久人人看| 欧美四级剧情无删版影片| 国产精品久久久久9999吃药| 国产日韩欧美一区二区三区在线观看| 伊甸园精品99久久久久久| 在线观看亚洲a| 激情小说亚洲一区| ●精品国产综合乱码久久久久| 狂野欧美激情性xxxx欧美| 欧美日韩视频专区在线播放| 欧美精品www| 欧美一区国产在线| 国产香蕉久久精品综合网| 国产精品夜夜夜一区二区三区尤| 最新亚洲激情| 国内一区二区在线视频观看| 日韩视频在线观看国产| 欧美伊久线香蕉线新在线| 亚洲欧美综合一区| 亚洲国产精品久久久久秋霞蜜臀| 欧美日韩精品一二三区| 欧美日本乱大交xxxxx| 1024成人网色www| 欧美aa国产视频| 欧美日韩高清不卡| 亚洲国产精品久久久久婷婷老年| 亚洲国产欧美不卡在线观看| 欧美在线视频a| 欧美人成免费网站| 免费久久久一本精品久久区| 久久久蜜桃一区二区人| 欧美成人按摩| 1024精品一区二区三区| 午夜久久资源| 美女亚洲精品| 一区二区三区亚洲| 国产精品白丝av嫩草影院| 欧美好吊妞视频| 亚洲视频中文| 亚洲日本va在线观看| 欧美激情按摩在线| 老司机精品视频一区二区三区| 亚洲欧洲三级| 久久精品国产免费| 午夜精品久久久久| 亚洲国产精品一区制服丝袜| 欧美高清视频一二三区| 国产视频综合在线| 亚洲免费综合| 国产一区二区三区在线播放免费观看| 亚洲欧洲日韩在线| 国产视频在线一区二区| 国产精品99免费看| 亚洲国产欧美不卡在线观看| 国产精品国产三级国产aⅴ入口| 久久亚洲精品网站| 亚洲午夜激情在线| 亚洲国产精品黑人久久久| 国产亚洲精品美女| 亚洲精品一区二区在线| 欧美在线视频播放| 国产亚洲精品7777| 久久久精品一区二区三区| 国产日韩欧美精品综合| 夜夜爽99久久国产综合精品女不卡| 在线播放豆国产99亚洲| 美女啪啪无遮挡免费久久网站| 99精品欧美一区二区三区综合在线| 国产主播一区二区三区| 这里只有精品视频在线| 亚洲欧美另类中文字幕| 亚欧成人精品| 亚洲影院在线观看| 亚洲欧美精品一区| 亚洲成人在线| 国产伦精品一区二区三区四区免费| 亚洲精品黄网在线观看| 两个人的视频www国产精品| 影音先锋中文字幕一区| 欧美aⅴ99久久黑人专区| 国产日韩欧美一区二区| 亚洲国产成人精品女人久久久| 久久精品成人一区二区三区| 欧美一区二区精品| 国产欧美日韩91| 亚洲国产专区校园欧美| 欧美日韩中文另类| 一本色道久久88亚洲综合88| 在线精品一区二区| 国产乱码精品一区二区三区忘忧草| 久久国产精品久久久久久电车| 国产精品二区在线| 亚洲全部视频| 亚洲精品日韩久久| 日韩一二三区视频| 亚洲曰本av电影| 亚洲精品一区二区三| 一个色综合导航| 亚洲一区二区三区三| 久久久国产精彩视频美女艺术照福利| 在线观看三级视频欧美|