資源描述:
《picc編譯器資料》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第十一章PIC單片機的C語言編程11.1PIC單片機C語言編程簡介用C語言來開發(fā)單片機系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護升級方便、代碼的重復(fù)利用率高、便于跨平臺的代碼移植等等,因此C語言編程在單片機系統(tǒng)設(shè)計中已得到越來越廣泛的運用。針對PIC單片機的軟件開發(fā),同樣可以用C語言實現(xiàn)。但在單片機上用C語言寫程序和在PC機上寫程序絕對不能簡單等同?,F(xiàn)在的PC機資源十分豐富,運算能力強大,因此程序員在寫PC機的應(yīng)用程序時幾乎不用關(guān)心編譯后的可執(zhí)行代碼在運行過程中需要占用多少系統(tǒng)資源,也基本不用擔(dān)心運行效率有
2、多高。寫單片機的C程序最關(guān)鍵的一點是單片機內(nèi)的資源非常有限,控制的實時性要求又很高,因此,如果沒有對單片機體系結(jié)構(gòu)和硬件資源作詳盡的了解,以筆者的愚見認(rèn)為是無法寫出高質(zhì)量實用的C語言程序。這就是為什么前面所有章節(jié)中的的示范代碼全部用基礎(chǔ)的匯編指令實現(xiàn)的原因,希望籍此能使讀者對PIC單片機的指令體系和硬件資源有深入了解,在這基礎(chǔ)之上再來討論C語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC單片機來展開討論,Microchip公司自己沒有針對中低檔系列PIC單片機的C語言編譯器,但很多專業(yè)的第三方公司有眾多支持PIC單
3、片機的C語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft等公司。其中筆者最常用的是Hitech公司的PICC編譯器,它穩(wěn)定可靠,編譯生成的代碼效率高,在用PIC單片機進(jìn)行系統(tǒng)設(shè)計和開發(fā)的工程師群體中得到廣泛認(rèn)可。其正式完全版軟件需要購置,但在其網(wǎng)站上有限時的試用版供用戶評估。另外,Hitech公司針對廣大PIC的業(yè)余愛好者和初學(xué)者還提供了完全免費的學(xué)習(xí)版PICC-Lite編譯器套件,它的使用方式和完全版相同,只是支持的PIC單片機型號限制在PIC16F84、PIC16F877和PIC16F628
4、等幾款。這幾款Flash型的單片機因其所具備的豐富的片上資源而最適用于單片機學(xué)習(xí)入門,因此筆者建議感興趣的讀者可從PICC-Lite入手掌握PIC單片機的C語言編程。在此列出幾個主要的針對PIC單片機的C編譯器相關(guān)連接網(wǎng)址,供讀者參考:Hitech-PICC:www.htsoft.comIAR:www.iar.comCCS:www.ccsinfo.com/picc.shtmlByteCraft:www.bytecraft.com/mpccaps.html本章將介紹Hitech-PICC編譯器的一些基本概念,由于篇幅所限
5、將不涉及C語言的標(biāo)準(zhǔn)語法和基礎(chǔ)知識介紹,因為在這些方面都有大量的書籍可以參考。重點突出針對PIC單片機的特點而所需要特別注意的地方。11.2Hitech-PICC編譯器PICC基本上符合ANSI標(biāo)準(zhǔn),除了一點:它不支持函數(shù)的遞歸調(diào)用。其主要原因是因為PIC單片機特殊的堆棧結(jié)構(gòu)。在前面介紹PIC單片機架構(gòu)時已經(jīng)詳細(xì)說明了PIC單片機張明峰2004-4-7于上海1of26中的堆棧是硬件實現(xiàn)的,其深度已隨芯片而固定,無法實現(xiàn)需要大量堆棧操作的遞歸算法;另外在PIC單片機中實現(xiàn)軟件堆棧的效率也不是很高,為此,PICC編譯器采用
6、一種叫做“靜態(tài)覆蓋”的技術(shù)以實現(xiàn)對C語言函數(shù)中的局部變量分配固定的地址空間。經(jīng)這樣處理后產(chǎn)生出的機器代碼效率很高,按筆者實際使用的體會,當(dāng)代碼量超過4K字后,C語言編譯出的代碼長度和全部用匯編代碼實現(xiàn)時的差別已經(jīng)不是很大(<10%),當(dāng)然前提是在整個C代碼編寫過程中須時時處處注意所編寫語句的效率,而如果沒有對PIC單片機的內(nèi)核結(jié)構(gòu)、各功能模塊及其匯編指令深入了解,要做到這點是很難的。11.3MPLAB-IDE內(nèi)掛接PICCPICC編譯器可以直接掛接在MPLAB-IDE集成開發(fā)平臺下,實現(xiàn)一體化的編譯連接和原代碼調(diào)試。使
7、用MPLAB-IDE內(nèi)的調(diào)試工具ICE2000、ICD2和軟件模擬器都可以實現(xiàn)原代碼級的程序調(diào)試,非常方便。首先必須在你的計算機中安裝PICC編譯器,無論是完全版還是學(xué)習(xí)版都可以和MPLAB-IDE掛接。安裝成功后可以進(jìn)入IDE,選擇菜單項Project?SetLanguageToolLocations…,打開語言工具掛接設(shè)置對話框,如圖11-1所示:圖11-1MPLAB-IDE語言工具設(shè)置對話框在對話框中選擇“HI-TECHPICCToolsuite”欄,展開可執(zhí)行文件組“Executable”后,列出了將被MPLA
8、B-IDE后臺調(diào)用的編譯器所用到的所有可執(zhí)行文件,其中有匯編編譯器“PICCAssembler”、C原程序編譯器“PICCCompiler”和連接定位程序“PICCLinker”。同時在此列表中還顯示了對應(yīng)的可執(zhí)行程序名,請注意在這里都是“PICC.EXE”。用鼠標(biāo)分別點擊選中這三項可執(zhí)行文件,觀察對話框下面“Location”一