MPLABC18C編譯器用戶指南(中文)_第1頁(yè)
MPLABC18C編譯器用戶指南(中文)_第2頁(yè)
MPLABC18C編譯器用戶指南(中文)_第3頁(yè)
MPLABC18C編譯器用戶指南(中文)_第4頁(yè)
MPLABC18C編譯器用戶指南(中文)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、©MicrochipMPLAB® C18c編譯器用戶指南® 2004 Microchip Technology Inc.DS51288C.CN木出版物中所述的器件應(yīng)用信息及其它類似內(nèi)容僅為您提供便 利.它們可能由更新之信息所怦代.確保W用符介技術(shù)規(guī)范.是 您fl M ay負(fù)的疔in Microchip對(duì)這些佰息不作任何明示或暗 示、書面或口頭的聲明或擔(dān)保,包括但不限于什對(duì)其使用情況、 質(zhì)量.性能.適銷性或轉(zhuǎn)定用途的適用性的聲明或擔(dān)保 Microchip對(duì)閔這些們息及使川這此倍息而引起的麻果不水擔(dān)任 何資任.未經(jīng)Microchip ”面批準(zhǔn).不得將Microchip

2、的廣胡用 作生命維持系統(tǒng)中的關(guān)鍵組件.在Microchip知譏產(chǎn)權(quán)保護(hù)下. 不得略中或以其它方式轉(zhuǎn)讓任何許町證。QUALITY MANAGEMENT SYSTEMCERTIFIED BY DNV=ISO/TS 16949:2002 =請(qǐng)注意以下有關(guān)Microchip器件代碼保護(hù)功能的要點(diǎn), Microchip的產(chǎn)胡均達(dá)到Microchip數(shù)撫乎冊(cè)中所述的技術(shù)指標(biāo). Microchip確信:在止常使用的悄況卜' Microchip系列戶晶是今幣場(chǎng)上同類戶品中瑕安全的產(chǎn)胡Z % H前.仍"在著惡氐其至是非法破壞代碼保護(hù)功能的行為。就我們所知衍右這些行為都不是以Microchip中

3、規(guī)泄的操作規(guī)范來(lái)使用Microchip產(chǎn)品的。這樣做的人極町能侵犯了知識(shí)產(chǎn)權(quán)。 Microchip愿與那些注垂代碼完整性的客戶介作. Microchip或任何妊它半導(dǎo)體廠商均無(wú)法保證實(shí)代碼的安金件代碼保護(hù)并不意味稈我們保證產(chǎn)品是"I:不可破”的.代碼保護(hù)功能處于持續(xù)發(fā)展中.Microchip承諾將不新改進(jìn)產(chǎn)品的代碼保護(hù)功能.任何試圖破壞Microchip代碼保護(hù)功能的行為均可視 為違反了技字T年版權(quán)法案(Digital Millennium Copyright Act) > -如果這種行為導(dǎo)致他人在未絵授權(quán)的情況下.施訪問(wèn)您的軟 件或応它受版儀保護(hù)的成果.您仃權(quán)依拡?jiān)摲ò缸窖V

4、訟.從而制止這種行為.商標(biāo)Miaochip 的名稱和ftH小紐合、Microchip 做杯.Accuron. dsPICx KeeLoq. microlD. MPLAB、PIC、PICmicro. PICSTART, PRO MATE> PowerSmart. rfPIC 和 SmartShunt 均為Micrxhip Technology Inc. 4處國(guó)利其它國(guó)家或地區(qū)的汴 冊(cè)商標(biāo)。AmpLab. FilterLab. MXDEV. MXLAB. PICMASTER. rfPIC、SEEVAL, SmartSensor 和 The Embedded Control Solutions

5、 Company 均為 Microchip Technology Inc.右關(guān) IH 的江 冊(cè)ifii標(biāo)。Analog-for-the-Digital Age、Application Maestro、 dsPICDEM, dsPICDEM.net. dsPICworks. ECAN. ECONOMONITOR, FanSense. FlexROM. fuzzyLAB. In-Circuit Serial Programming. ICSP、ICEPIC. Migratable Memory. MPASM. MPLIB. MPLINK. MPSIM、 PICkit. PICDEM. PICDEM

6、.net. PICLAB. PICtaik PowerCak Powerinfo. PowerMate. PowerTook rfLAB. rfPICDEM. Select Mode、Smart Serial、SmartTel 和 Total Endurance 均為 Microchip Technology Inc. (集川利其它IH家或地區(qū)的備杯。 SQTP 於 Microchip Technology Inc.力頭國(guó)的服務(wù)標(biāo)記。在此提及的所仃其它楠杯均為備持仃公詞所伏© 2004, Microchip Technology Inc;冊(cè)權(quán)所仃。Microchip位丁 MN &am

7、p;利W蓉州Chan&e和Tempe及位你科稲卅 Mountain g的金球總部、“V詢溺曲I 2003 10 <沁 “ ISO/TS6949:2002 威量體系認(rèn).PlCmicro 8 : 機(jī)、kcclo-y/A eeprom訕兒機(jī)外議次住$血粘和模應(yīng)戶;A方聞的質(zhì)錄體系漁(V為符介SO/TS、349.2002此外. Microchip /珀 価訛H和生產(chǎn)方血的質(zhì)墩體系也已通過(guò)TISO9001:2000 畑DS51288C CN 第 # 頁(yè)空 2004 Microchip Technology Inc.MPLAB®C48C 編譯器用戶指南i¥Miurxhip

8、前言第4章簡(jiǎn)介1.1 概述1.2 調(diào)用編譯器1.2.1生成輸出文件1.2.2屯示診斷信息1.2.3定義宏1.2.4選擇處理器1.2.5選擇模式第2章語(yǔ)法說(shuō)明2.82.9數(shù)據(jù)類型及數(shù)值范用2.1.1整熨2.1.2浮點(diǎn)型字節(jié)存儲(chǔ)順序 一Endianness 存儲(chǔ)類別2.3.1 Overlay2.3.2 static型函數(shù)參數(shù)存儲(chǔ)限定符2.4.1 near/far數(shù)據(jù)存儲(chǔ)對(duì)彖2.4.2 near/far程序存儲(chǔ)對(duì)象2.4.3 ram/rom 遼符包含文件搜索路徑2.5.1系統(tǒng)頭文件2.5.2用戶頭文件預(yù)定義宏名與ISO的差異27.1整型的提升2.7.2數(shù)字常最2.

9、7.3字符串常量語(yǔ)言的擴(kuò)展2.8.1匿名結(jié)構(gòu)2.8.2行內(nèi)匯編Pragma偽指令.2112 2202.9.3#pragma tpragma #pragma #pragma #pragmasectiontype interruptlow frame /interrupt fnamevarlocate bank variable-ncme varlocate "section-nam©*1 variabl©-nam©22針對(duì)處理器的頭文件針對(duì)處理器的寄存器定義文件配置字31333535© 2004 Micro

10、chip Technology Inc.DS51288C_CN 第 iii 頁(yè)MPLAB® C18 C編譯器用戶指南第3章運(yùn)行時(shí)模型3.1 存儲(chǔ)模型373.2 關(guān)丁調(diào)用的約定383.2.1返回值393.2.2管理軟件堆棧403.2.3 C語(yǔ)言與匯編語(yǔ)言的混合編程403.3 啟動(dòng)代碼453.3.1默認(rèn)操作453.3.2 定制463.4 編譯器管理的資源46第4章優(yōu)化4.1 介并相同的字符串494.2 轉(zhuǎn)移優(yōu)化504.3 存儲(chǔ)區(qū)選擇優(yōu)化504.4 W寄存器內(nèi)容跟蹤514.5 代碼排序514.6 尾部合并524.7 刪除執(zhí)行不到的代碼534.8 復(fù)制傳遞534.9 冗余存儲(chǔ)刪除544.10

11、刪除死代碼554.11過(guò)程抽彖55第5章示例應(yīng)用程序附錄A COFF文件格式A.1 struct filehdr 文件頭61A.1.1 unsigned short f_magic61A. 1.2 unsigned short f_nscns61A.1.3unsigned long f_timdat61A. 1.4unsigned long f_symptr61A.1.5unsigned long f_nsyms61A. 1.6unsigned short f_opthdr61A.1.7unsigned short f_flags62A.2 struct opthdr uj選文卜頭62A.2.

12、1unsigned short magic62A.2.2unsigned short vstamp62A.2.3unsigned long proc_type62A.2.4unsigned long rom_width_bits64A.2.5unsigned long ram_width_bits64A.3 struct scnhdr 段頭64A.3.1union _s65A.3.2unsigned longs_size65A.3.3unsigned longs_scnptr65A.3.4unsigned longs_relptr65A.3.5unsigned longs_lnnoptr65A

13、.3.6unsigned shorts_nreloc65A 3.7unsigned shorts_nlnno65A.3.8 unsigned long s_f lags66DS51288C CN 第 v 頁(yè)© 2004 Microchip Technology Inc.目錄A.4 struct reloc 旋定位i己錄66A.4.1unsigned long r_vaddr66A.4.2unsigned long r_symndx66A.4.3short r_of fset66A.4.4unsigned short r_type67A.5 struct syment符號(hào)表記錄68A.

14、5.1union _n68A.5.2unsigned long n_value68A.5.3short n_scnum69A.5.4unsigned short n_type69A.5.5char n_sclass70A.5.6char n_numaux70A.6 struct cof f_lineno 行 號(hào)記錄71A.6.1unsigned long l_srcndx71A.6.2unsigned short l_lnno71A.6.3unsigned long l_paddr71A.6.4unsigned short l_flags71A.6.5unsigned long l_fcnnd

15、x71A.7 struct aux_file 源文件的附加符號(hào)表記錄71A.7.1unsigned long x_of f set71A.7.2unsigned long x_incline71A.7.3unsigned char x_f lags72A.8 struct aux_scn 段的附加符號(hào)表記錄72A.8.1unsigned long x_scnlen72A.8.2unsigned short x_nreloc72A.8.3unsigned short x_nlinno72A.9 struct aux_tag st rue t/union/enum 標(biāo)記名的附加符號(hào)表記錄.72A.

16、9.1unsigned short x_size72A.9.2unsigned long x_endndx72A. 10 struct aux_eos struct/union/enum 結(jié)束的附加符號(hào)表記錄73A.10.1unsigned long x_tagndx73A.10.2unsigned short x_size73A.11 struct aux_fcn 函數(shù)名的附加符號(hào)表記錄73A.11.1unsigned long x_tagndx.73A.11.2unsigned long x_lnnoptr73A.11.3unsigned long x_endndx.73A.11.4sho

17、rt x_actscnum73A.12 struct aux_fcn_calls Ffi數(shù)調(diào)用的附加符號(hào)表記錄74A.12.1unsigned long x_calleendx74A.12.2unsigned long x_is_interrupt74A.13 struct aux_arr 數(shù)組的附加符號(hào)表記錄74A.13.1unsigned long x_tagndx74A.13.2unsigned short x_size74A.13.3unsigned short x_dimen X_DIMNUM74A.14 Struct aux.eobf 塊或函數(shù)結(jié)尾的附加符號(hào)表記錄75A.14.1u

18、nsigned short x_lnno75© 2004 Microchip Technology Inc.DS51288C CN 第 V 頁(yè)MPLAB® C18 C編譯器用戶指南A.15 struct aux_bobf 塊或函數(shù)開(kāi)頭的附加符號(hào)表記錄75A.15.1 unsigned short x_lnno75A.15.2 unsigned long x_endndx75A. 16 struct aux_var struct/union/enum的附加符號(hào)表記錄75A.16.1 unsignedlong x_tagndx75A.16.2 unsignedshortx_si

19、ze75A. 17struct aux_field 位域的附加記錄76A.17.1 unsignedshortx_size76附錄B采用ANSI定義的方式B. 1簡(jiǎn)介77b.2標(biāo)識(shí)符(B.3字符77B.4整型78B.5浮點(diǎn)數(shù)78B.6數(shù)組和指針79B.7寄存器79B8結(jié)構(gòu)和聯(lián)合79B.9位域79B.10枚舉80B 11Switch語(yǔ)句80B.12預(yù)處理偽指令80附錄C命令行概述附錄D MPLAB C18診斷D.1錯(cuò)誤83D.2警告93D. 3消息95附錄E擴(kuò)展模式E. 1源代碼兼容性97E.1.1棧幀大小97E.1.2 static型參數(shù)97E.1.3 overlay 關(guān)鍵字97E.1.4行內(nèi)

20、匯編98E.1.5預(yù)定義宏98E.2命令行選項(xiàng)差別99E.3COFF文件差別99E.3.1 一般處理器99E.3.2文件頭的f_flags字段99術(shù)語(yǔ)表101索引107全球銷售及服務(wù)網(wǎng)點(diǎn)114DS51288C CN 第 vii 頁(yè)© 2004 Microchip Technology Inc.MPLAB®C48C 編譯器Microchip用戶指南簡(jiǎn)介© 2004 Microchip Technology Inc.DS51288C.CN 第 1 頁(yè)關(guān)于本指南本文檔論述MPLAB®C18編譯器的技術(shù)細(xì),并講絲MPLAB C18編詳器的所仃功 能。這里假定讀者

21、已經(jīng)具備如卜基本索質(zhì):知道如何編寫C程序知道如何使用MPLAB集成開(kāi)發(fā)環(huán)境創(chuàng)建和調(diào)試項(xiàng)冃已經(jīng)閱讀并理解了所使用單片機(jī)的數(shù)據(jù)于冊(cè)© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)文檔內(nèi)容編排文檔內(nèi)容編樣如E:第1章:簡(jiǎn)介一捉供對(duì)MPLABC18編譯器的概述以及仃關(guān)調(diào)用編譯器的信息。第2章:語(yǔ)法說(shuō)明一論述MPLAB C18編譯辭與ANSI標(biāo)準(zhǔn)的不同Z處。第3章 運(yùn)行時(shí)模型一論述MPLAB C18編譯器如何利用PIC18PICmicro

22、® 片機(jī) 的資源。第4章:優(yōu)化一論述MPLAB C18編譯器執(zhí)行的優(yōu)化功能。第5章:示例應(yīng)用程序一給出一個(gè)示例應(yīng)用程序,并就本用戶指南中論述的外主 題.對(duì)源代碼進(jìn)行了說(shuō)明附錄A: COFF文件格式一詳細(xì)闡述了 Microchip的COFF格式。附錄氏采用ANSI定義的方式一論述按照ANSI標(biāo)準(zhǔn)的要求.MPLAB C18實(shí)現(xiàn)所 定義的執(zhí)行方式.附錄C:命令行概述一列出了命令行選項(xiàng)以及論述每個(gè)命令行選項(xiàng)的參考荒節(jié)。附錄D: MPLAB C18診斷一列出了錯(cuò)謀.警告和消息。附錄E:擴(kuò)展模式一論述菲擴(kuò)展模式和擴(kuò)展模式Z間的區(qū)別.© 2004 Microchip Technology

23、 Inc.DS51288C.CN 第 # 頁(yè)© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)MPLAB® 88 C編譯器用戶指南本指南中使用的約定本用戶指南便用如卜文檔約定:文檔約定描述表示示例代碼(Courier字體兒Courier字體樂(lè)例源代碼distance 一= time * speed;文件務(wù)和路徑c:mccl8h關(guān)鍵字asmr endasmz static命令行選項(xiàng)0pa+, Opa斜休 Courier可變

24、參數(shù)file.o, K中可以是任何仃效的文件名方括弓可選的參數(shù)mccl8(opt iono file opt ions J省略號(hào)代瞽重復(fù)的文木示例varename . var name表示由用戶提供的代碼void main (void) (OxnnnnI六進(jìn)制數(shù).其中刀代表I 六進(jìn)制位OkFFFF, 0x007A文檔(Arial字體八斜體字符|參考書籍MPLAB User's Guide文檔更新所冇的文檔將來(lái)都會(huì)過(guò)時(shí),本指南也不例外.為滿足客戶的需要,MPLABC18在不斷 發(fā)展之中,本文檔屮對(duì)j某些工具的描述可能與實(shí)際有所星別請(qǐng)逢錄我公司網(wǎng)站獲 得垠新的文檔。文檔命名約定文檔用“DS

25、”號(hào)編號(hào)。編號(hào)位于毎頁(yè)的頁(yè)腳,在頁(yè)碼Z前.DS號(hào)的命名約定為DSXXXXXA 或 DSXXXXXA_CN,其中:XXXXX = 文檔號(hào)。A=文檔的版本._CN = 文檔為中文版.DS51288C CN 第 3 頁(yè)空 2004 Microchip Technology Inc.刖旨PIC18參考讀物readme.c18關(guān)于使用MPLAB C18 C編譯辭的最新富息,請(qǐng)閱讀本軟件自帶的readme.c18文件 (ASCII文本).此fl述文件包含了木文檔可能未提供的更新信息。MPLAB®C48C 編譯器入門(DS51295C_CN)描述如何安裝MPLAB C18編譯器,如何編寫簡(jiǎn)單的程序

26、以及如何便用安裝了編譯器 的 MPLAB IDE oMPLAB® C18C 編譯器函數(shù)庫(kù)(DS54297C-CN關(guān)J-MPLAB C18庫(kù)文件和預(yù)編譯I標(biāo)文件的參考指南。列出了隨MPLAB C18 C提供 的所有庫(kù)幣數(shù),并詳細(xì)描述了這些庫(kù)旳數(shù)的便用.MPLAB® IDE V6.XX 快速入門指南(DS54284C_CN)描述如何安裝MPLAB IDE軟件,如何使用它來(lái)創(chuàng)建項(xiàng)H及燒丐器件。MPASM User's Guide with MPLINK Linker and MPLIB Librarian (DS33014) 講述如何使用 Microchip PICmic

27、ro MCU $1.編器(MPASM).鏈接器(MPLINK)和 庫(kù)管理器(MPLIB).PICmicro® 18C單片機(jī)系列參考手冊(cè)(DS39500A.CN魚(yú)點(diǎn)介紹增強(qiáng)空單片機(jī)系列。說(shuō)明了增強(qiáng)型單片機(jī)系列的架構(gòu)和外設(shè)模塊的I作原理, 但沒(méi)有涉及到每個(gè)器件的具體細(xì)節(jié)。PIC18 Device Data Sheets and Application Notes講述PIC18器件工作和電氣特性的數(shù)據(jù)手冊(cè)。應(yīng)用筆記介紹了如何使用PIC18器件。 要獲得上而列出的任何文檔,請(qǐng)?jiān)L問(wèn)Microchip的網(wǎng)站(),獲得 Adobe Acrobat ( pdf)格式的文檔。© 2004 M

28、icrochip Technology Inc.DS51288C CN 第 # 頁(yè)前亙c語(yǔ)言參考讀物American National Standard for Information Systems 一 Programming Language 一 C. American National Standards Institute (ANSI), 11 West 42nd. Street, New York, New York, 10036.此標(biāo)準(zhǔn)規(guī)定了用C語(yǔ)靑編寫程序的格式,并對(duì)C程岸進(jìn)行了解釋。其片的是提高C 程序在多種計(jì)算機(jī)系統(tǒng)上的可移杭性、可靠性、可維護(hù)性及執(zhí)行效率。Beatman,

29、John B. Embedded Design with the PIC18F452 Microcontroller, First Edition. Pears on Educatio lnc.» Upper Saddle River, New Jersey 07458.點(diǎn)介紹Microchip公f可的PIC18FXXX系列單片機(jī)以及如何編寫優(yōu)化的應(yīng)用代碼。Harbison, Samuel P. and Steele, Guy L., CA Reference Manual, Fourth Edition. Prentice-Hall, Englewood Cliffs, New J

30、ersey 07632.詳細(xì)地講述了 c編程語(yǔ)言。這本書是一本權(quán)威性的參考手冊(cè),它對(duì)c語(yǔ)言、運(yùn)行時(shí) 庫(kù)以及C編程的鳳格都進(jìn)行了完整的描述,C編程強(qiáng)調(diào)正確性、可移植性和可維護(hù) 性。Kernighan, Brian W. and Ritchie, Dennis M. The C Programming Language, Second Edition. Prentice Hall, Englewood Cliffs, New Jersey 07632.對(duì)山ANSI標(biāo)準(zhǔn)定義的C語(yǔ)育進(jìn)行了簡(jiǎn)刃闡述。對(duì)J-C程序員來(lái)說(shuō)足本出色的參 考書。Kochan, Steven G. Programming In

31、ANSI C, Revised Edition. Hayden Books, Indianapolis, Indiana 46268.學(xué)習(xí)ANSI C的另一本出色的參考書,用作大學(xué)教材。Van Sickle, Ted. Programming Microcontrollers in C, First Edition. LLH Technology Publishing, Eagle Rock, Virginia 24085.盡管這木書主要講的是Motorola單片機(jī),但其屮單片機(jī)C語(yǔ)言編程的基本原理是 很冇用的。© 2004 Microchip Technology Inc.DS51

32、288C CN 第 5 頁(yè)前亙MICROCHIP 網(wǎng)站Microchip網(wǎng)站為您提供在線支持.客戶很容易從Microchip網(wǎng)站上獲得文件和信息. 要訪問(wèn)此網(wǎng)站,您必須能訪問(wèn)互聯(lián)網(wǎng)并雯安裝Netscape Navigator® 或 Microsoft® Internet Explorer 等網(wǎng)絡(luò)瀏覽器,使用您再歡的Internet 覽器.町以訪問(wèn)Microchip的網(wǎng)站: 網(wǎng)站提供多種服務(wù)。用八從網(wǎng)站上訶以卜徴到放新開(kāi)發(fā)工具的文件、數(shù)據(jù)手冊(cè)、應(yīng)用 筆記、用戶指南、文章和示例程序。也可以獲得關(guān)于Microchip業(yè)務(wù)的具體信息,包括 銷俗辦少處、分銷商和工廠代表的列表.技術(shù)支

33、持常見(jiàn)問(wèn)題(FAQ)在線討論組一關(guān)于產(chǎn)品、開(kāi)發(fā)系統(tǒng)、技術(shù)信息及其它方而的討論會(huì). Microchip顧問(wèn)il劃成員列表到苴它與Microchip產(chǎn)品相關(guān)的其它仃用網(wǎng)站的鏈接工程師工具箱設(shè)計(jì)技巧器件勘誤表其它信息眾新Microchip新聞稿研討會(huì)和活動(dòng)列表招刪職位開(kāi)發(fā)系統(tǒng)客戶通知服務(wù)Microchip啟動(dòng)了客戶通知服務(wù),來(lái)幫助客戶輕松獲得關(guān)J: microchip產(chǎn)品的最新信 息.訂閱此項(xiàng)服務(wù)后,每當(dāng)您指定的產(chǎn)品系列或感興趣的開(kāi)發(fā)工具有更改、更新.改 進(jìn)或有妙誤時(shí),您都會(huì)收到電子郵件通知。登Microchip網(wǎng)站(),點(diǎn)山“客八變更通知”。按!紺旨 示注冊(cè).開(kāi)發(fā)系統(tǒng)產(chǎn)品組分類如卜:編譯器仿真器在

34、線調(diào)試器 MPLAB IDE編程器© 2004 Microchip Technology Inc.DS51288C CN 第 # 頁(yè)前亙卜而是對(duì)這曲類別的描述:編譯器一關(guān)J Microchipif器和只它語(yǔ)言工八的瑕新仏禹 這些工具包括MPLABC17. MPLABC18 和 MPLAB C30 C 編譯給 MPASM 和 MPLAB ASM30 匯編器; MPLINK和MPLAB LINK30 H標(biāo)鏈接器:MPLIB和MPLAB LIB30 I標(biāo)庫(kù)管理器。仿真器一關(guān)J: Microchip在線仿真器的最新信息.包括MPLAB ICE 2000和MPLAB ICE 4000o在線調(diào)試

35、器一關(guān)J- Microchip在線調(diào)試器的尿新信息,包括MPLAB ICD 2。MPLAB IDE 關(guān)于Microchip MPLAB IDE的最新信息,它是開(kāi)發(fā)系統(tǒng)I具的 Windows® 集成開(kāi)發(fā)環(huán)境(介紹 MPLAB IDE、MPLAB SIM 仿真器.MPLAB IDE項(xiàng)目借理器以及i般的編紺和調(diào)試功能。編程器一關(guān)J: Microchip器件編程器的眾新信息。包括MPLAB PM3和PRO MATE® II器件編樫盟.以及PICSTARf® Plus圧發(fā)編程器.客戶支持Microchip產(chǎn)品的用門可通過(guò)卜列渠道獲得文持:分銷商或代表當(dāng)?shù)劁N住辦事處應(yīng)用工程師

36、(FAE)應(yīng)用工程師(CAE)執(zhí)線客戶可以致電氏分銷商.代表或應(yīng)用丁程師(FAE)尋求支持。請(qǐng)茂看木手冊(cè)后封而 的銷倡辦事處及地址列農(nóng)??倡@得技術(shù)支持,可訪問(wèn)網(wǎng)站.也可致電應(yīng)用工程師 (CAE),中國(guó)大陸地區(qū)請(qǐng)撥打800-820-6247o此外還仃系統(tǒng)信息和更耶熱線。此熱線為系統(tǒng)用戶捉供開(kāi)發(fā)系統(tǒng)軟件產(chǎn)品眾新版本的 列衣。此熱線還提供仃關(guān)客八如何獲得日前更新匸具包的信息。熱線號(hào)碼為:美國(guó)和加皇人人部分地IX.請(qǐng)撥打1-800-755-2345.全球其它國(guó)家或地區(qū),請(qǐng)撥© 2004 Microchip Technology Inc.DS51288C CN 第 7

37、 頁(yè)Microchip1.1 槪述MPLAB®C48C 編譯器 用戶指南第1章簡(jiǎn)介© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)MPLAB C18編譯器是適用于PIC18PICmicro單片機(jī)的獨(dú)立而優(yōu)化的ANSIC編譯器。 僅在ANSI標(biāo)準(zhǔn)X3.159-1989與高效的PICmicro單片機(jī)支持有沖突的情況此編譯 器才會(huì)& ANSI標(biāo)準(zhǔn)的所偏離.此編譯器是一個(gè)32位Windows Y臺(tái)應(yīng)用程序,弓 Microchip的MFLAB IDE尢全冊(cè)容,它允許便用MFLAB ICE仕線仿TU仁 MPLAB ICD 2在線

38、調(diào)試器或MPLAB SIM軟件模擬器進(jìn)行源代碼級(jí)訓(xùn)試。MPLAB C18編譯器有以卜特點(diǎn):與ANSI *89兼容能集成到MPLAB IDE,便J:進(jìn)彳j:項(xiàng)E管理和源代碼級(jí)調(diào)試能生成可熏定位的冃標(biāo)模塊.增強(qiáng)代碼的重用性與由MPASM匯編器生成的目標(biāo)模塊兼容,允許在同個(gè)項(xiàng)目中自由地進(jìn)行匯編語(yǔ) 言和C語(yǔ)言的混合編程對(duì)外部存儲(chǔ)器的讀/寫訪問(wèn)足透明的當(dāng)需要進(jìn)行實(shí)時(shí)控制時(shí)能很好地支持行內(nèi)匯編具有多級(jí)優(yōu)化的高效代碼生成引擎擁有廣泛的庫(kù)支持.包括PWM、SPI叫l(wèi)2C. UART、USART、字符串操作和 數(shù)學(xué)函數(shù)庫(kù)用戶能對(duì)數(shù)據(jù)和代碼的存儲(chǔ)空間分配進(jìn)行完全控制1.2 調(diào)用編譯器MPLA決C18 C編譯辭入門

39、(DS51295C_CN)拙述了如何住MPLAB IDE中便用 C18編譯器。也叫以通過(guò)命令行調(diào)用編譯器,齋令行用法如卜:mccl8 options file options可以指定一個(gè)源文件和任意個(gè)命令行選項(xiàng)。-help命令行選項(xiàng)列出編譯器接受的所仃 命令行選項(xiàng)。-verbose命令行選項(xiàng)便編譯器在編譯結(jié)束時(shí)顯示版本號(hào)以及錯(cuò)謀、警 告和消息的總數(shù)等信息.© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)© 2004 Microchip Technology Inc.DS51288C.CN 第 # 頁(yè)© 2004 M

40、icrochip Technology Inc.DS51288C.CN 第 # 頁(yè)MPLAB® 88 C編譯器用戶指南1.2.1 生成輸出文件默認(rèn)情況卜,編譯器會(huì)生成一個(gè)名為file.。的輸出冃標(biāo)文件,其中,住"是在命 令行上指定的源文件幾 不包括擴(kuò)展名。可通過(guò)-£。命令行選項(xiàng)改變輸出口標(biāo)文件"。 例如:mccl8 -fo bar.o foo.c如果源文件仃錯(cuò)謀,那么編譯器會(huì)生成一個(gè)名為file.err的錯(cuò)誤文件苴中. file在命令行上指定的源文件名.不包括擴(kuò)展名。町通過(guò)-fe命令行選項(xiàng)改變錯(cuò)謀 文件名。例如:mccl8 -fe barerr foo.

41、c12.2 顯示診斷信息診斷信息可通過(guò)F和-IW命令行選項(xiàng)控制。-W命令行選項(xiàng)設(shè)置警告診斷的級(jí)別(1. 2或3。表列出了警告診斷的級(jí)別以及所表示的診斷類®o-nw命令行選項(xiàng) 禁止特左的消息(附錄D或-help-message-list命令彳J選項(xiàng)列出山編譯器生成 的所的消息)。使用一help-message-all命令行選項(xiàng),可得到關(guān)于所仃消息的幫 助。若要獲得關(guān)于某個(gè)待定診斷的幫助,可使用-help-message命令行選項(xiàng).例 如:mccl8 help-message=2068會(huì)顯示以下結(jié)果:20681 obsolete use of implicit int1 detected

42、The ANSI standard allows a variable to be declared without a base type being specified, e.g. r "extern x;wr in which case a base type of 1 int is implied. This usage is deprecat皀d by the standard as obsolete, and therefore a diagnostic is issued to that effect 表仁1:警告級(jí)別警告級(jí)別所表示的診斷1錯(cuò)誤(致命的利非致命的)2級(jí)別

43、1加警告3級(jí)別2加消息DS51288C CN 第 9 頁(yè)© 2004 Microchip Technology Inc.簡(jiǎn)介1.2.3 定義宏-D命令行選項(xiàng)允許定義宏??梢杂萌绮穬煞N方式Z-指定-D命令行選項(xiàng):-Dmame或 -Dnamevalueo -Dname'AL義宏名為name并役怎其值為1 : -Dna/ne=va丄ue宦義宏名 為name并設(shè)定其值為valuer例如:mccl8 -DMODE定義了宏MODE,其值為1, Iftj:mccl8 -DMODE=2定義左MODE的值為2。使用-D命令行選項(xiàng)的個(gè)例子是條件編譯,例如:#if MODE = 1x - 5;#e

44、lif MODE = 2x = 6;# elseX = 7;#endif1.2.4選擇處理器默認(rèn)帖況卜MPLABC18針對(duì)般的PIC18PICmicro單片機(jī)編譯應(yīng)用程序。町以利 用processor命令行選項(xiàng)指定為某個(gè)特定的處理器生成冃標(biāo)文件,其中 processor指定要使用的處理器型號(hào)例如.耍生成僅供PIC18F452使用的H標(biāo)文 件.應(yīng)該使用命令行選項(xiàng)-pl8f452e命令行選項(xiàng)-pl8cxx明確指能針對(duì)-般的 PIC18 PICmicro單片機(jī)編譯源文件。12.5選擇模式編巴工作在如下兩種不同的工作模式:擴(kuò)式和非擴(kuò)展模式。工作在擴(kuò)展模式 時(shí).編譯器使用擴(kuò)展指令(即 ADDFSR、AD

45、DULNK、CALLW. MOVSF、MOVSS、 PUSHL、SUBFSR和SUBULNK)和立即數(shù)變址尋址,這種尋址方式通常需耍較少的指 令來(lái)訪問(wèn)基堆棧的變量(因此山用較小的程序存儲(chǔ)空何)。匚作在牢擴(kuò)展模式時(shí), 編譯器不便用擴(kuò)展指令或匸即數(shù)變址尋址。-extended和-no-extended命令行 選項(xiàng)告知編譯器丁作模式.表仁2概括了阜于所指定命令行選項(xiàng)的編詳器匸作模式© 2004 Microchip Technology Inc.DS51288C CN 第 # 頁(yè)MPLAB® 88 C編譯器用戶指南表仁2:模式選擇-p extended-p no-extended-

46、pl8cxx不指定 編譯器-extended擴(kuò)展錯(cuò)誤擴(kuò)展擴(kuò)展-no-extended非擴(kuò)展非擴(kuò)展非擴(kuò)展非擴(kuò)展不指定非擴(kuò)展非擴(kuò)展非擴(kuò)展非擴(kuò)展注, 如果便MJ mccl8 -help調(diào)用編譯器,將顯示關(guān)編譯器丁作在非擴(kuò)展模式的簾 助:但是,當(dāng)編譯器工作在非擴(kuò)展模式時(shí),不是所有的命令行選頊都有效。要査看 關(guān)于編譯湍工作在擴(kuò)展模式時(shí)的幫助 W該使用命令行選項(xiàng)mccl8 extended help。注:其它命令行選項(xiàng)將在本用戶指南的后面部分中論述.化附錄C中可以找到對(duì)所右命令行選項(xiàng)的概括。DS51288C.CN 第 11 滅© 2004 Microchip Technology Inc.Mic

47、rochipMPLAB®C48C 編譯器 用戶指南第2章語(yǔ)法說(shuō)明2.1 數(shù)據(jù)類型及數(shù)值范圍2.1.1 整型© 2004 Microchip Technology Inc.DS51288C.CN 第門頁(yè)MPLABC18編譯器支持由ANSI啟義的標(biāo)準(zhǔn)整型。標(biāo)準(zhǔn)整型的數(shù)值范陽(yáng)如農(nóng)2-1所 示。另外 MPLAB C18 還支持 24 位整short long int (或 long short int),分為仃符號(hào)和無(wú)符號(hào)兩種類型.表2-1也列出了 24位整熨的數(shù)值范帀表2-1:整型數(shù)據(jù)的長(zhǎng)度及數(shù)值范圍類型長(zhǎng)度最小值最大值Cha"】®8位128127signed

48、 char8位-128127unsigned char8僅0255ict16 ft32,76832,767unsigned int16位065535short16 &-32,76832,767unsigned short16&065,535short long24 &8,388,6088,388,607unsigned short long24位016777,215long32位-2,147,483,6482,147,483,647unsigned long32位04,294,967,295注15若rh«r前沒(méi)何符號(hào)說(shuō)明.則歡認(rèn)為仃符號(hào)10.2:可通過(guò)-k命令

49、行選項(xiàng)便無(wú)符號(hào)說(shuō)明的chair默認(rèn)為無(wú)符號(hào)熨。MPLAB® 88 C編譯器用戶指南2.1.2 浮點(diǎn)型對(duì)MPLABC18來(lái)說(shuō),double或float數(shù)據(jù)類型都足32位浮點(diǎn)型.衷22列出了 浮點(diǎn)型數(shù)據(jù)的數(shù)值范用。表2-2:浮點(diǎn)型數(shù)據(jù)的長(zhǎng)度及數(shù)值范圍類型長(zhǎng)度最小指數(shù)最大指數(shù)規(guī)格化的最小值規(guī)格化的Jt大值float32位1261282-12®« 1.17549435e-382128 * (2-2-15)« 6.80564693e * 38double32位-1261282-12® 1.17549435e - 382128 * (2-2"15

50、) 6.80564693e + 38MPLAB C18的浮點(diǎn)數(shù)格式是IEEE 754格式的改進(jìn)形式。MPLAB C18恪式和IEEE 754格式的不同Z處在于數(shù)據(jù)表示的眾高9位。IEEE 754恪式的最高9位循環(huán)左移一 次將轉(zhuǎn)換為MPLAB C18恪式。同理.MPLAB C18格式垃高9位循環(huán)右移-次將轉(zhuǎn)換 為IEEE 754格式。表20對(duì)這兩種格式作了比較.表2-3:MPLAB C18浮點(diǎn)格式與IEEE 754格式的對(duì)比標(biāo)準(zhǔn)指數(shù)字節(jié)字節(jié)0字節(jié)1字節(jié)2IEEE 754Sege-i C2e3e4e5e6e-jddd dddddddd dddddddd ddddMPLAB C1860e1 e2e3

51、e4e5e6e7sddd dddddddd dddddddd dddd圖注:S二符號(hào)位d = M數(shù)e二指數(shù)2.2字節(jié)存儲(chǔ)順序 一ENDIANNESSEndianness指務(wù)字廿數(shù)據(jù)中的字肖存儲(chǔ)順序。MPLAB C18采用低字肖低地址 (little-endian)格式存儲(chǔ)數(shù)據(jù).低字節(jié)存儲(chǔ)在較低地址中(即數(shù)據(jù)是按“低字肖先 存”的方式存儲(chǔ)的)。例如:tpragma idata test=0x0200long 1-OxAABBCCDD;數(shù)據(jù)在存儲(chǔ)器中的存放結(jié)果如卜:地址0x02000x02010x02020X0203醴OxDDOxCCOxBBOxAADS51288C CN 第 # 瓦©

52、2004 Microchip Technology Inc.語(yǔ)法說(shuō)明2.3存儲(chǔ)類別MPLAB C18 支持 ANSI 標(biāo)準(zhǔn)的存儲(chǔ)類別(auto、extern、register、static 和 typedef)«2.3.1 OverlayMPLAB C18編譯器引入了。verlay (亜磴)存儲(chǔ)類別,僅當(dāng)編譯器匸作在非擴(kuò)展模 式(參見(jiàn)125節(jié)“選擇模式”)時(shí)才使用此存儲(chǔ)類別。overlay存儲(chǔ)類別可用丁局 部變量(但不能用J:形式參數(shù).函數(shù)宦義或全局變呈)。overlay類別將相關(guān)變杲分配到一個(gè)持定于函數(shù)的靜態(tài)取疊存詩(shī)區(qū)。這種變杲是靜態(tài)分配存儲(chǔ)空間的.但每 次進(jìn)入函數(shù)時(shí)都要被初始化.

53、例如:void f (void)overlay int x = 5;x+ + ;)盡管X的存儲(chǔ)空間是靜態(tài)分配的,X在每次進(jìn)入兩數(shù)時(shí)都會(huì)被初始化為5.如果沒(méi)仃 初始化,那么進(jìn)入換數(shù)時(shí)其值是不確定的。MPLINK鏈接器將使不同時(shí)運(yùn)行的兩數(shù)屮定義為overlay的局部變量共亨存儲(chǔ)空間。 例如,在卜而的函數(shù)屮:int f (void)overlay int x = 1;return x;)int g (void)overlay int y = 2;return y;)如果f和g永遠(yuǎn)不會(huì)同時(shí)運(yùn)行,則x和y共享相同的存儲(chǔ)空間但是.在卜而的函數(shù) 中:int f (void)overlay Int x - 1

54、;return x;int g (void)overlay int y = 2;y = c ();return y;)由于f和g可能會(huì)同時(shí)運(yùn)行,x和y不能共享相同的存儲(chǔ)空間。便用overlay局部 變員的優(yōu)點(diǎn)是其存儲(chǔ)空間是靜態(tài)分配的,也就是說(shuō).在-般情況卜存取這種變錄 所需要的指令較少(因此所生成代碼占用的程序存儲(chǔ)空間也較小。同時(shí),由于一些 變?cè)庮怨蚕硐嗤拇鎯?chǔ)空仙 這些變量所需分配的總的數(shù)據(jù)存儲(chǔ)空間比定義為 static時(shí)要小如果MPLINK鏈接器檢測(cè)到包含overlay局部變杲的遞歸兩數(shù).就會(huì)發(fā)出錯(cuò)誤并中 止編譯。如果MPLINK鏈接器檢測(cè)到,在任意模塊中燈通過(guò)折針進(jìn)行的函數(shù)調(diào)用.在 任意模塊(不一定和上述模塊是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論