




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯1第五章 c程和運(yùn)行環(huán)境tms320c54x c語(yǔ)言編程c語(yǔ)言和匯編語(yǔ)言混合編程運(yùn)行環(huán)境及c編譯工具輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯2 一 tms320c54x c語(yǔ)言編程 使用ansi c,即american national standards institute 定義的c語(yǔ)言。1 1、數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯3數(shù)據(jù)類(lèi)型輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯4 定點(diǎn)型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)定點(diǎn)型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù): :語(yǔ)法使用方法同傳統(tǒng)的c沒(méi)有區(qū)別,但后臺(tái)執(zhí)行會(huì)有所不同。主要是通過(guò)rts.lib進(jìn)行相應(yīng)的處理。數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型輕松學(xué)會(huì)dsp
2、第章c程序編寫(xiě)和編譯52、關(guān)鍵字(keyword)constconstinterruptinterrupt輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯6關(guān)鍵字near and far輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯73、寄存器變量w只有ar1和ar6可以作寄存器變量w寄存器變量在訪問(wèn)時(shí)可以比一般的變量占用更少時(shí)間,但是,建立寄存器變量需要4個(gè)指令周期,故如果不是多次使用的變量不要設(shè)為寄存器變量.輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯8寄存器變量w變量只能定義為char,short,int,pointersw寄存器變量使用時(shí)有很多注意事項(xiàng)輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯94、i/o端口訪問(wèn) 如果訪問(wèn)的i/
3、o空間地址為n(16進(jìn)制),則定義一個(gè)端口變量portn,然后把portn作為一般變量使用. 語(yǔ)法 ioport type portn 其中type可以是char, short, int , unsigned variable.輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯10輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯11二、 c c語(yǔ)言和匯編語(yǔ)言混合編程語(yǔ)言和匯編語(yǔ)言混合編程1、c中使用匯編語(yǔ)句 語(yǔ)法為 asm (“ assembler text”); 注意開(kāi)頭要有空格,否則作為標(biāo)號(hào)處理 由于c文件中的匯編語(yǔ)句在編譯時(shí)(由c源文件變?yōu)閰R編源文件)并不進(jìn)行語(yǔ)法檢查,所以注意該語(yǔ)句在編譯后的位置是不是用戶(hù)需要的位置
4、.輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯122、c文件中調(diào)用匯編函數(shù) 匯編文件中程序代碼標(biāo)號(hào)作為函數(shù)名,該標(biāo)號(hào)要有“_”前綴;而且標(biāo)號(hào)要是全局標(biāo)號(hào). 匯編文件中要有ret/retd指令表示代碼結(jié)束. 參數(shù)和返回結(jié)果如果是單個(gè)數(shù)據(jù),放在a中. c文件中需要把該函數(shù)作為外部函數(shù)輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯13輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯143、c使用匯編中變量輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯15c使用匯編中變量輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯16c使用匯編中變量(2) 對(duì)于訪問(wèn)不在.bss塊中定義的變量輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯17c使用匯編中變量(3)對(duì)于在匯編程序中用.se
5、t和.global偽指令定義的全局常數(shù).輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯184、內(nèi)聯(lián)函數(shù)輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯19內(nèi)聯(lián)函數(shù)輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯20輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯215、匯編文件中調(diào)用c函數(shù) 從匯編程序調(diào)用c函數(shù)時(shí),第一個(gè)參數(shù)(最左邊)必須放入累加器a中,剩下的參數(shù)按自右向左的順序壓入堆棧。 調(diào)用c函數(shù)時(shí),注意c函數(shù)只保護(hù)了幾個(gè)特定的寄存器,而其他是可以自由使用的。 調(diào)用前先對(duì)ar0-ar7和其他寄存器壓棧保護(hù),然后使用跳轉(zhuǎn)語(yǔ)句b執(zhí)行。 長(zhǎng)整型和浮點(diǎn)數(shù)在存儲(chǔ)器中存放的順序是低位字在高地址,高位字在低地址。 參數(shù)通過(guò)a傳遞,即在跳轉(zhuǎn)之前給a,返回值也
6、通過(guò)a接收。 編譯器在所有標(biāo)識(shí)符(函數(shù)名、變量名等)前加下劃線(xiàn)“_”。 輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯226、匯編文件中使用c文件變量 c文件中該變量要在main()函數(shù)外定義為全局變量; 匯編中需要把該變量聲明為全局標(biāo)號(hào); 匯編文件中使用絕對(duì)地址尋址方式*(_var_name)方式訪問(wèn),var_name為變量名,同時(shí)要有“_”前綴。輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯23三、運(yùn)行環(huán)境及c編譯工具1、運(yùn)行環(huán)境 c54x將存儲(chǔ)器處理為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)線(xiàn)性塊。程序存儲(chǔ)器包含可執(zhí)行代碼;數(shù)據(jù)存儲(chǔ)器主要包含外部變量、靜態(tài)變量和系統(tǒng)堆棧。編譯器的任務(wù)是產(chǎn)生可重定位的代碼,允許鏈接器將代碼和數(shù)
7、據(jù)定位進(jìn)合適的存儲(chǔ)空間。c編譯器對(duì)c語(yǔ)言編譯后除了生成3個(gè)基本段,即.text、.data、.bss外,還生成.cinit、.const、.stack、.sysmem段。輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯24 .text 包括程序代碼和常數(shù) .cinit 包括初始化數(shù)據(jù)構(gòu)成的一張表 .const 包括字符串常量和初始化的全局、靜態(tài)的變量,即有const定義的變量和常量 .switch 包括用于switch的常數(shù)表 .bss 變量數(shù)據(jù) .stack 程序運(yùn)行時(shí)的堆棧 .sysmem 用于malloc函數(shù)運(yùn)行時(shí)使用輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯25c/c+系統(tǒng)堆棧.stack .stack不同
8、于dsp匯編指令定義的堆棧。dsp匯編程序中要將堆棧指針sp指向一塊ram,用于保存中斷、調(diào)用時(shí)的返回地址,存放push指令的壓棧內(nèi)容。 .stack定義的系統(tǒng)堆棧實(shí)現(xiàn)的功能是保護(hù)函數(shù)的返回地址,分配局部變量,在調(diào)用函數(shù)時(shí)用于傳遞參數(shù),保護(hù)臨時(shí)結(jié)果。 .stack定義的段大?。ǘ褩4笮。┛捎面溄悠鬟x項(xiàng)-stack size設(shè)定,鏈接器還產(chǎn)生一個(gè)全局符號(hào)_ _stack_size,并賦給它等于堆棧長(zhǎng)度的值,以字為單位,缺省值為1k。輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯26初始化過(guò)程 c程序入口地址默認(rèn)為_(kāi)c_int00,main不是入口地址。從_c_int00到main還有許多的代碼,起到初始化作
9、用 這段代碼從rst.lib庫(kù)中獲得,即boot.asm,其的作用包括: 1、為堆棧在.bss段中保留空間,并初始化堆棧指針 2、從.cinit中把全局初始化變量放到.bss段中(rom初始模式) 3、調(diào)用main()函數(shù)輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯272、c編譯工具(1) c編譯器的組成 代碼分析工具parser 優(yōu)化器optimizer 代碼生成器code generator 匯編器assembler 鏈接器linker輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯28(2)、工作流程 parser,第一階段,生成.if文件 optimizer,第二階段,生成.opt文件,該階段可以選擇不使用 code generator,第三階段,生成.asm文件 assemble,第四階段,生成.obj文件 linke ,第五階段,生成.out文件輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯29(3)、執(zhí)行方法 是一個(gè)c文件,cl500產(chǎn)生.obj文件,因?yàn)樗麜?huì)自動(dòng)調(diào)用代碼分析,優(yōu)化,代碼生成,匯編,即下列命令:ac500,opt500,cg500,asm500;輕松學(xué)會(huì)dsp第章c程序編寫(xiě)和編譯30 z 激活鏈接器,生成的文件可以直接是.out文件,即執(zhí)行ac500,opt500,cg500,asm500,lnk500; lnk5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 真石漆的施工方案
- 管道陰極保護(hù)施工方案
- 二零二五年度梁上打孔作業(yè)風(fēng)險(xiǎn)控制免責(zé)合同
- 二零二五年度金融服務(wù)合同價(jià)款調(diào)整與信用風(fēng)險(xiǎn)防范
- 二零二五年度武漢房屋租賃合同糾紛處理辦法
- 二零二五年度足療店連鎖經(jīng)營(yíng)授權(quán)管理合同
- 二零二五年度能源消耗監(jiān)控系統(tǒng)維保及節(jié)能服務(wù)合同
- 二零二五年度羊群代放牧與綠色食品生產(chǎn)協(xié)議
- 二零二五年度二零二五年度承重墻拆除工程安全生產(chǎn)責(zé)任承諾書(shū)
- 普通高等學(xué)校就業(yè)協(xié)議書(shū)(2025年度)-金融服務(wù)業(yè)人才輸送協(xié)議
- 女性健康知識(shí)講座超美的課件
- 2025年興安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)匯編
- 2025年湖南汽車(chē)工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)參考答案
- 拆除工程方案
- 2025年合肥職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案
- 天津2025年天津市機(jī)關(guān)后勤事務(wù)服務(wù)中心招聘6人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年天津三源電力集團(tuán)限公司社會(huì)招聘33人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 西安2025年陜西西安音樂(lè)學(xué)院專(zhuān)任教師招聘20人筆試歷年參考題庫(kù)附帶答案詳解
- 國(guó)家安全與生態(tài)安全
- 培養(yǎng)自律能力主題班會(huì)
- 巴厘島旅游流程介紹
評(píng)論
0/150
提交評(píng)論