
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、dsp編程技巧之1:聊一聊編譯流程 由于很少有文檔把它們的詳細(xì)漢語含義講清晰,所以在此我們要用通俗的語言描述一下各個部分: 1. 在這個流程中,與我們編程效率挺直相關(guān)的就是c/c+編譯器了(假如沒有用法匯編挺直編寫的話),它的挺直用途是將c/c+代碼編譯為針對dsp匯編命令集的匯編代碼。目前的c和c+語言標(biāo)準(zhǔn)有好幾個版本,ccs的編譯器目前支持的版本包括:的c89和c99版本的iso標(biāo)準(zhǔn)(c99部分支持,主要是與c89一樣的特性):通俗的講就是我們學(xué)過的c語言里常用的功能都是支持的,除了一些多字節(jié)字符和一些極少數(shù)的特性等。不清晰的可以參考kernighan和ritchie編寫的c語言書籍the
2、 c programming language其次版。c+語言的2003版本的的iso標(biāo)準(zhǔn): 可以參考ellis和stroustrup編寫的經(jīng)典書籍the annotated c+ reference manual。同時也支持一部分的c+特性。由于c+的特性眾多,而許多并不適用于這樣一種嵌入式的環(huán)境,所以不支持的特性相比c要多一些。2. 匯編器的作用是將匯編語言代碼轉(zhuǎn)換為機(jī)器語言(目標(biāo)文件),這里的匯編代碼包括前面由c/c+生成的匯編代碼和我們挺直編寫的匯編代碼。3. 鏈接器是作用是把全部的庫文件、目標(biāo)文件等鏈接成為一個可執(zhí)行的目標(biāo)文件,其中包含程序的機(jī)器代碼和數(shù)據(jù),以及其他用來鏈接和加載該程
3、序所需的信息(在ti dsp上是coff格式,通俗地講就是.out二進(jìn)制文件),同時按照內(nèi)存地址的分配對各目標(biāo)文件舉行重定位,并解析外部參考,例如在一個源程序里引用另一個源程序中定義的變量就可以理解為外部參考,如果一個目標(biāo)文件引用了一個未定義的符號symbol,則鏈接器搜尋其他目標(biāo)文件中定義的全局符號,找到匹配的符號修補(bǔ)命令。否則報(bào)告一個錯誤;所以有時候編譯全部程序完成在鏈接的時候會提醒xxx symbol為定義,解釋對應(yīng)的文件沒有加到工程里面。4. 歸檔器archiver:也可以叫壓縮器,看一下我們常用的壓縮軟件winrar的全稱winrar archiver就不難理解了。5. 實(shí)時支持庫:
4、包括標(biāo)準(zhǔn)c和c+的運(yùn)行支持函數(shù)、編譯器公用程序函數(shù)、浮點(diǎn)運(yùn)算函數(shù)和c編譯器支持的i/o函數(shù),6. 十六進(jìn)制轉(zhuǎn)換程序:把編譯、鏈接等步驟生成的可執(zhí)行文件,轉(zhuǎn)換為十六進(jìn)制文件,例如.hex格式,然后可以燒寫到eeprom、flash等外部存儲器之中。7. 肯定列表器:讀取目標(biāo)文件并輸出.abs文件,通過匯編.abs文件可產(chǎn)生含有肯定地址的列表文件,從而使得我們不用手工費(fèi)時費(fèi)勁地去創(chuàng)建列表文件。這原來不就是軟件該做的事情嗎:-d8. 交錯引用列表:與3中外部參考解析相關(guān)的,它用目標(biāo)文件產(chǎn)生參照列表文件,可顯示符號及其定義,以及符號所在的源文件。9. c/c+命名還原工具:c/c+編譯器會將程序中的變
5、量名、函數(shù)名轉(zhuǎn)換成內(nèi)部名稱,這個過程被稱作name mangling,反過程被稱作name demangling,即命名還原工具。內(nèi)部名稱包含了變量或函數(shù)的更多信息,例如編譯器看到?g_var3ha,就知道這是:int g_var。詳細(xì)的還原規(guī)章普通是不開放給我們用戶的,只要編譯器知道就行了。10. 調(diào)試工具:例如我們電腦上裝的ccs軟件,讓我們可以用斷點(diǎn)、圖形窗口等舉行軟件的調(diào)試。此外,并沒有明確列在前面的流程中,但是隱含在流程中,或者我們也有可能會用到的工具或者流程包括:1. 優(yōu)化工具:在編譯時對代碼舉行優(yōu)化的工具,可以按照我們期望的優(yōu)化級別,舉行從不優(yōu)化到直至cpu寄存器級別的優(yōu)化。2. 反編譯器:可以對目標(biāo)文件舉行解碼,顯示對應(yīng)的匯編語言。在ccs的調(diào)試模式下,我們可以打開disassembler窗口,然后單步運(yùn)行,就能看到一條條的匯編命令是如何執(zhí)行的了。3. 加載器:把可執(zhí)行的二進(jìn)制文件復(fù)制到dsp的內(nèi)存中,并運(yùn)行啟動程序,使得程序從程序入口處開頭運(yùn)行,這個入口地址可能是地址0,也可能是帶有一個偏移量的地址,這個詳細(xì)的值我們可以以后再詳細(xì)研究。4. 其它:補(bǔ)充一下名詞的定義,包括:符號:在囫圇編譯、鏈接的過程中都會用法到符號symbol的概念,容易地理解,符號就是指一些變量、函數(shù)名字等。庫文件:多
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款合同具有哪些法律特征
- 2025年云南b2貨運(yùn)資格證全題
- 人事代理招聘與委托培養(yǎng)合同協(xié)議
- 在線教育平臺建設(shè)和運(yùn)營指南
- 建設(shè)工程勞務(wù)大清合同
- 售后技術(shù)支持服務(wù)協(xié)議
- 華爾產(chǎn)權(quán)交易所網(wǎng)站使用協(xié)議模板6篇
- 奶牛養(yǎng)殖售賣合同范本
- 柬埔寨qc合同范本
- 雙方土地買賣合同范本
- 全套教學(xué)課件《工程倫理學(xué)》
- 江蘇省建筑與裝飾工程計(jì)價定額(2014)電子表格版
- 2024年山東經(jīng)貿(mào)職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 清華大學(xué)考生自述
- DB33_T 2352-2021鄉(xiāng)鎮(zhèn)運(yùn)輸服務(wù)站設(shè)置規(guī)范(可復(fù)制)
- 專升本高等數(shù)學(xué)的講義80頁P(yáng)PT課件
- 特種設(shè)備停用報(bào)廢注銷申請表
- 糖尿病酮癥酸中毒ppt課件
- 五年級下冊英語課件--Lesson--7《Arriving-in-Beijing-》|冀教版-(三起)-(共21張PPT)
- 武發(fā)[2004]13關(guān)于積極推進(jìn)“ 城中村”綜合改造工作的意見
- 2019福建省物業(yè)管理?xiàng)l例
評論
0/150
提交評論