<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > DSP編程技巧之11-揭開編譯器神秘面紗之文件、目錄與擴展名

          DSP編程技巧之11-揭開編譯器神秘面紗之文件、目錄與擴展名

          作者:paradoxfx 時間:2014-05-12 來源:電子產(chǎn)品世界 收藏

            前面講了很多次和優(yōu)化、匯編這些相關(guān)的選項,如果以前接觸這些概念少的話,難免是云里霧里迷惑半天,需要多多練習、嘗試才能加深理解。所以這次換一些容易理解的,包括文件類型、目錄結(jié)構(gòu)、擴展名等。這些概念并不新鮮,因為它們組成了操作系統(tǒng)里面最基本的文件管理功能。在一個工程中包含的文件較少的時候,這些元素在編程環(huán)境例如CCS3.3里的管理并不復雜,大不了把所有要用到的文件都拷到同一個目錄下然后添加進工程就行了。但是在更復雜的工程和更高級版本的編程環(huán)境里,例如在CCS5.x甚至剛剛推出的CCS6.x里,工程的管理看起來要復雜的多(也是為了更加有條理地管理文件和目錄結(jié)構(gòu)),有的文件是我們自己編寫的,有的頭文件/源程序/庫文件引用了TI官方出版的外設與頭文件示例,有的文件是從我們或者別人以前寫好的程序里引用過來的,不同的文件夾、外設類型揉雜在一起,有時候即使你反復確認了每個文件、每個路徑結(jié)構(gòu)都對了,可是編譯的時候它就是通不過了。甚至別人全部編譯通過的工程,你原封不動地復制過來,它突然就是死活編譯不了;例如,Hex2000.exe是CCS編譯器自帶的,把C2000的工程輸出文件.out轉(zhuǎn)換為Flash燒寫文件.hex的,通常它位于CCS安裝目錄下面的 oolscompilerc2000_6.2.0bin里面。但是如果別人的工程把它放在了一個很復雜的文件目錄下,例如C:UsersxxxDesktopPiccoloBootDebug>.................PiccoloFWHex2000.exe,你拷過來,導入Workspace再運行的時候。。。所以對這些選項還是要仔細看一看的。

          本文引用地址:http://www.ex-cimer.com/article/246689.htm

            表1中的選項可以讓我們讓強制把某些文件解讀為特定類型的文件。這個說起來可能感覺很奇怪,什么文件就用什么擴展名唄,為什么需要這么做。事實上筆者確實遇到過這樣的情況,在一個老外給的例子里,用頭文件、C和C++和匯編文件一起來讀程序的時候,經(jīng)常讀著讀著程序就在某處中斷了,找不到任何跳轉(zhuǎn)信息。后來才發(fā)現(xiàn),很多C函數(shù)寫到了其它類型的文件里面了,例如某些不知道是不是他自定義的.s文件里;默認情況下編輯器和編譯器是不認識這種文件類型的,所以根本就沒有把它們作為源程序添加到工程里面。

            舉例說明,我們有個后綴名為.s的文件,里面是C程序,這時我們就可以使用下面的選項讓編譯器自動把它讀取為C程序了:cl2000 –v28 –c_file=file.s

            舉例說明,我們有個名為fit.rrr的文件,里面是匯編語言程序,這時我們就可以使用下面的選項讓編譯器讀取它,并編譯輸出相關(guān)的目標文件.o(而不是默認的obj):

            cl2000 –v28 –asm_extension=.rrr –obj_extension=.o fit.rrr

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          移動電源相關(guān)文章:移動電源是什么


          c++相關(guān)文章:c++教程


          全息投影相關(guān)文章:全息投影原理


          關(guān)鍵詞: DSP 嵌入式 匯編器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();