版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、IAR-AVR-C編譯器簡要指南編譯器簡要本文所有資料來源于EWAVR_Compiler(IeAfC南”指的就是該資料。本資料針對于第一章數(shù)據(jù)類型(編譯器支持11整型數(shù)據(jù)12浮點(diǎn)數(shù)據(jù)類型:數(shù)據(jù)類型大小范圍對齊編譯器參考指南),文中提到“具體參閱版本基本數(shù)據(jù)類型和一些附加數(shù)據(jù)類型。里的/編+譯+器參考指)數(shù)據(jù)類型在語言里是默認(rèn)支持的。如果你在代碼的頭文件里包含使用在語言里。也可以使用布爾值和。數(shù)據(jù)類型也可以數(shù)據(jù)類型大小范圍Es-338.3t9o-t3)i3E-3018.71IAR-AVR-C編譯器簡要指南13指針類型:指針有數(shù)據(jù)指針和函數(shù)指針。131數(shù)據(jù)指針:數(shù)據(jù)指針的大小為8位,16位,24位
2、。定義為:在整型數(shù)據(jù)類型后加”*”符號。例:整型數(shù)據(jù)沒有24位,具體定義指針見后面擴(kuò)展關(guān)鍵字章節(jié)。132函數(shù)指針:函數(shù)指針的大小為16位,24位。指針定義:在函數(shù)類型后加”符號。具體參閱編譯器參考指南。第二章擴(kuò)展關(guān)鍵字可以用來解決數(shù)據(jù),函數(shù)的存放等。有了它我們就可以定義變量存放在,空間。定義中斷函數(shù),指針等等。關(guān)鍵字很多,這里只列舉常用的,其余的參考編譯器參考指南21擴(kuò)展關(guān)鍵字:用于控制數(shù)據(jù)和指針。用于存儲空間控制數(shù)據(jù)存放,控制指針類型和存放用于存儲空間控制數(shù)據(jù)存放,控制指針類型和存放:用于存儲空間控制數(shù)據(jù)存放,控制指針類型和存放放置一個(gè)變量在工作寄存器中22函數(shù)擴(kuò)展關(guān)鍵字:。用于控制數(shù)據(jù)存放
3、這組關(guān)鍵字必須在函數(shù)聲明和定義的時(shí)候指定:關(guān)鍵字控制函數(shù)的類型。這組關(guān)鍵字必須在函數(shù)聲明和定義的時(shí)候指定關(guān)鍵字僅僅控制有定義的函數(shù):23其它特別的關(guān)鍵字:用于變量的絕對地址定位。也可以用命令提供中斷函數(shù)的入口地址。_于用保用證制沒有使用的函數(shù)或者變量也能夠包含在目標(biāo)代碼中禁止系統(tǒng)啟動(dòng)的時(shí)候初始化變量2IAR-AVR-C編譯器簡要指南插入?yún)R編代碼第三章常用類型的具體操作方法根據(jù)第一和第二章節(jié)的內(nèi)容,我們可以對的數(shù)據(jù)進(jìn)行具體的定義i區(qū)域數(shù)據(jù)存儲??刂苼泶娣?,關(guān)鍵字寫在數(shù)據(jù)類型前后效果一樣。定義一個(gè)變量存放在空間效果同上定義一個(gè)數(shù)組存放在空間空間的變量操作同數(shù)據(jù)空間的操作方法一樣,編譯器會自動(dòng)(宏函
4、數(shù)來對變量的用關(guān)鍵字對于調(diào)用操作例:變量的操作數(shù)組的操作定義常數(shù)在空間,只要給變量賦與初值就可以了。由于常數(shù)在空間的地址是隨機(jī)分配的,讀取變量才可以讀取到常數(shù)值。定義一個(gè)常數(shù)存放在空間,234567定義一個(gè)組常數(shù)存放在例:空間3IAR-AVR-C編譯器簡要指南讀取空間值讀取空間值空間絕對地址定位:定義一個(gè)變量存放在空間單元定義一個(gè)數(shù)組存放在空間,開始地址為單元定義一個(gè)常數(shù)存放在空間單元定義一個(gè)組常數(shù)存放在空間開始地址為單元由于常數(shù)在空間的地址是已經(jīng)分配的,讀取空間值可以用變量和地址。單與_有關(guān)的指針操作。關(guān)鍵字控制指針的存放和屬性指向空間的指針指針(控制屬性)定義一個(gè)指向空間地址的指針,元位指
5、針本身存放在中。定義一個(gè)指向空間地址的指針,16位指針本身存放在中。定義一個(gè)指向空間地址的指針,指針本身存放在中。的值代表的空間的某一地址。表示空空間間值某一地址單元存放的內(nèi)容。例:假定來=1表單示,空間地址單元,而空間單元的內(nèi)容就用來讀取。例:T讀取空間單元的值4IAR-AVR-C編譯器簡要指南B*3讀取空間單元的值2存儲于空間的指針數(shù)據(jù)指針(就象存儲與空間的數(shù)據(jù)一樣)控制存儲定義一個(gè)指向空間地址的指針,指針本身存放在中??刂茢?shù)據(jù)和指針存放的定義必須是全局變量,控制屬性(好像只有指針)可以是局部變量??刂拼娣趴刂茖傩?關(guān)鍵字:告訴編譯器未使用的代碼也要編譯。定義存放在空間的全局變量在程序編譯
6、時(shí)會自動(dòng)生成文件以供燒錄。對于程序沒有使用也要求編譯的數(shù)據(jù)必須加關(guān)鍵字限制:例:程序沒有使用變量,編譯也會生成文件的。頭文件里有詳細(xì)說明??臻g地址()中寫入數(shù)據(jù)()??臻g地址()中讀取數(shù)據(jù)()。實(shí)際上兩種5操作宏取函數(shù):在A向指定;從指定5IAR-AVR-C編譯器簡要指南函數(shù)的原形如下:對于定義為空間的變量操作同數(shù)據(jù)空間的操作方法一樣,編譯器會自動(dòng)調(diào)用A宏函數(shù)來對變量的操作。例:函數(shù)。函數(shù)必須要包含頭文件變量的操作,自動(dòng)調(diào)用對于直接在程序中使用例:向空間讀取空間單元寫入值單元值36自動(dòng)生成文件置:操作步驟:1在的中觀察該使用了哪個(gè)文件。本文使用的8編譯,使用文件是96IAR-AVR-C編譯器簡
7、要指南、打開該文件,在該文件最后中加入以下兩行:本人用的文件7IAR-AVR-C編譯器簡要指南8IAR-AVR-C編譯器簡要指南例:經(jīng)編譯生成文件9IAR-AVR-C編譯器簡要指南中選擇格式輸出。經(jīng)編譯生成文件第四章常用類型的具體操作方法41區(qū)域數(shù)據(jù)存儲。用關(guān)鍵字控制來存放,關(guān)鍵字寫在數(shù)據(jù)類型前后效果一樣定義一個(gè)變量存放在空間效果同上定義一個(gè)數(shù)組存放在空間對于空間的變量的讀操作同數(shù)據(jù)空間的操作方法一樣,編譯器會自動(dòng)用P指令來操作。例:讀數(shù)組變量的操作讀變量的操作由于在正常的程序中,空間是只讀的,所以沒有賦值的變量是沒有意義的。定義常數(shù)在空間,只要給變量賦與初值就可以了。由于常數(shù)在空間的地址是隨
8、機(jī)分配的,讀取變量才可以讀取到常數(shù)值。在10IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 IAR-AVR-C編譯器簡要指南定義一個(gè)常數(shù)存放在空間。/定義一個(gè)組常數(shù)存放在例:空間。讀取空間值讀取空間值空間絕對地址定位:定義數(shù)組存放在定義變量存放在空間空間,開始地址為單元/0單/8元 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南定義常數(shù)存放在空間單元/定義一個(gè)組常數(shù)存放在
9、空間開始地址為單元 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南由于常數(shù)在空間的地址是已經(jīng)分配的,讀取空間值可以用變量和地址。與有關(guān)的指針操作。關(guān)鍵字控制指針的存放和類型。指向空間的指針指針(控制類型屬性)定義指向間在值空空間間*值地來址;的/指/針,8位。值定義個(gè)指向值在*空空值間間來地值;址/的/指針,16位。值定義指向空間地址的指針,元4位。值定義指向空間地址的指針,/元4位。值定義一個(gè)指向空間地址的指針,指針本身存放在中
10、。的值代表空間的某一地址。表示空間該地址單元存放的內(nèi)容。例:假定表示空間地址單元,而空間單元的內(nèi)容就用來讀取。例:讀取空間單元的值(*讀取空間單元的值2存儲于空間的指針數(shù)據(jù)指針就象存儲與空間的數(shù)據(jù)一樣控制存儲屬性定義指向空間地址的指針,指針本身存放在中。元控制數(shù)據(jù)和指針存放的定義必須是全局變量,控制類型屬性(好像只有指針)可以是局部變量。控制存放控制屬性關(guān)鍵字保證沒有使用的函數(shù)或者變量也能夠包含在目標(biāo)代碼中定義存放在空間的數(shù)據(jù)在程序編譯時(shí)會自動(dòng)生成代碼嵌入到代碼中,對于程序沒有使用也要求編譯的數(shù)據(jù)(比如可以在代碼中嵌入你的版本號,時(shí)間等)必須加關(guān)鍵字限制。例:保程序沒有使用變量,編譯也會生成該
11、代碼。 IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南5操作宏函數(shù):在頭文件里有詳細(xì)說明??臻g具正常情況下有只讀性能,對于讀數(shù)據(jù)編譯器會自動(dòng)編譯對應(yīng)的指令,但對于空間的自編程寫命令就沒有對應(yīng)的指令了,這里不講解詳細(xì)的自編程方法,只是講解一下對的讀寫函數(shù)。直接在程序中讀取空間地址數(shù)據(jù):要包含頭文件空間從指定空間地址讀數(shù)據(jù)。該函數(shù)在頭文件里有詳細(xì)說明。在文件有它的簡化書寫。注意匯編指令中的是一個(gè)指針。所以用來強(qiáng)制轉(zhuǎn)換為指向空間地址指針。故該條宏函數(shù)的正確寫法應(yīng)該如下:具()例:該條函數(shù)書寫不方便,在文件有簡化:稍微方便一點(diǎn)。改為就更方便了,
12、直接使用數(shù)據(jù)就可以了。例: #IAR-AVR-C編譯器簡要指南從指定空間地址單元中讀數(shù)據(jù)空間空間參照上面的理解修改可以書寫更簡單自編程函數(shù):讀取縮定位讀取熔絲位位頁擦除位頁緩沖位頁寫入位頁擦除E位頁緩沖詳細(xì)參見位頁寫入編譯器參考指南。第五章數(shù)據(jù)類型的具體操作方法 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南空間是單片機(jī)最重要的部分,所有的操作必須依賴該部分來完成。變量在空間的存儲模式三中存儲屬性。一旦選擇為哪種存關(guān)鍵字來更改。有三種,也就是對應(yīng)于儲模式,對應(yīng)的數(shù)據(jù)默認(rèn)屬性也就確定了,但可以采用對于程序中的局部變量,編譯器會自動(dòng)處理的,我們也不可能加什么儲存屬性,但提供
13、了強(qiáng)大的外部變量定義。,5位定義變量在工作寄存器,編譯器內(nèi)部使用了部分工作寄存器,留給用戶的只有供個(gè)寄存器供用戶使用,要使用工作寄存器必須在工程選項(xiàng)里打開鎖定選項(xiàng)。,例:,14IAR-AVR-C編譯器簡要指南定義兩個(gè)變量使用工作寄存器在工程選項(xiàng)里里打開要使用的寄存器編譯結(jié)果就如下,看看是不是直接使用了寄存器做為數(shù)據(jù)應(yīng)用15IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南注意:定義在寄存器里變量不能帶有初始值。最好不要使用超過9個(gè)寄存器變量,不然可能引起潛在的危險(xiǎn),因?yàn)榻斓臅r(shí)候沒有鎖定任何寄存器。52定
14、義變量的絕對地址.沒有特性的變量是隨機(jī)分配的,要給變量分配地址必須加以特性修飾注意在定義地址的時(shí)候千萬不要和片內(nèi)寄存器地址重合了。定義沒有存儲特性的絕對地址變量必須加或者對象特性定義在地址以外定義只讀變量的地址例:對應(yīng)匯編: #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南帶存儲特性的關(guān)鍵字定義變量的絕對地址定義變量在空間 #IAR-AVR-C編譯器簡要指南對應(yīng)匯編:從5.2和.51.2對.比2,發(fā)現(xiàn)用5.2方.法2定義代碼小多了
15、。定義的變量關(guān)鍵字保證從最原始的位置讀取變量。在編譯器里,除了和外,其他的類型的變量都包含有和特性。4強(qiáng)大為位操作:41在語言里對位的操作如一般如下:()置的第位()置的第位(=取反的第位判斷判斷為42編譯器對位的支持更強(qiáng)大,除了上面的方法外還有以下更簡單的操作方法:置的第位置的第位取反的第位或者判斷判斷把的第位傳送到的第位54位變量定義:由于使用了擴(kuò)展語言,它對位域的支持變?yōu)樽钚轭愋?,我們可以很方便地?7IAR-AVR-C編譯器簡要指南 IAR-AVR-C編譯器簡要指南 IAR-AVR-C編譯器簡要指南 #IAR-AVR-C編譯器簡要指南來定義位變量。采用結(jié)構(gòu)體來定義位變量然后就可以用以
16、下位變量了。位操作也不一但是采用以上結(jié)構(gòu)體做出來的位變量只可以訪問的位,不能夠直接訪問變量,和標(biāo)準(zhǔn)的樣。采用聯(lián)合體來定義效果更佳。訪問變量的位直接訪問變量位變量也可以直接定義在工作寄存器里。數(shù)據(jù)類型在語言里是默認(rèn)支持的。如果你在代碼的頭文件里包含數(shù)據(jù)類型也可以使用在語言里。也可以使用布爾值和r不過是占用位個(gè)字節(jié)。定義位變量取反位變量傳遞位變量第六章函數(shù)61中斷函數(shù):在編譯器里用關(guān)鍵字來來定義一個(gè)中斷函數(shù)。用來提供中斷函數(shù)的入口地址定時(shí)器溢出中斷入口地址上面的入口地址寫成更直觀,每種中斷的入口地址在頭文件里有描述。函數(shù)名稱可以為任意名稱。中斷函數(shù)會自動(dòng)保護(hù)局部變量,但不會保護(hù)全局變量。內(nèi)在函數(shù)也可以稱為本征函數(shù)編譯器自己編寫的能夠直接訪問處理器底層特征的函數(shù)。在中有描述完整類型在里有進(jìn)一步的簡化書寫方式2延時(shí)函數(shù),以周期為標(biāo)準(zhǔn)如果處理器頻率為,延時(shí)如下:當(dāng)然你也可以對該函數(shù)進(jìn)行修改:22中斷指令插入指令也可以用I也可以插入指令,也可以用I也可以其實(shí)對于狀態(tài)字的置位和清零只有和兩條指令。像不過是T的另一個(gè)名字而已。指令中還有很多類似的現(xiàn)象,如:和指令完全一樣,號稱多條指令的其實(shí)沒有那么多指令的。2從空間指定地址讀取數(shù)據(jù)該條指令以及正確的使用方法在操作宏函數(shù)里詳細(xì)講解,這里不再重復(fù)2乘法函數(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政總廚個(gè)人述職報(bào)告
- 糖尿病護(hù)理方案
- 3.3.1鹽類的水解酸堿性高二上學(xué)期化學(xué)人教版(2019)選擇性必修1
- 足跟痛的診斷與治療
- 保護(hù)牙齒小班安全教案反思
- 荷塘月色說課稿
- 安踏企業(yè)五年戰(zhàn)略規(guī)劃
- 生物物理學(xué)實(shí)驗(yàn)室安全操作
- 機(jī)場租賃合同
- 健身中心土地租賃協(xié)議
- 風(fēng)險(xiǎn)分級管控清單(完整版)
- 醫(yī)院服務(wù)-PPT課件
- 《護(hù)士執(zhí)業(yè)證書注銷注冊申請表》(新)
- 檢維修交付生產(chǎn)手續(xù)(參考模板)
- SYB創(chuàng)業(yè)培訓(xùn)全課件(ppt)
- 危險(xiǎn)化學(xué)品儲存、經(jīng)營企業(yè)專業(yè)檢查表(長輸管線)
- GB∕T 24694-2021 玻璃容器 白酒瓶質(zhì)量要求
- (完整版)五年級數(shù)學(xué)思維拓展課程整體設(shè)計(jì)
- 下肢動(dòng)脈硬化閉塞癥臨床路徑
- 精裝修驗(yàn)房最全表格
- 實(shí)例兩點(diǎn)透視ppt課件
評論
0/150
提交評論