WinAVR是一款的AVR單片機(jī)編譯軟件,WinAVR的目標(biāo)代碼效率極高。具有編譯速度快、編譯準(zhǔn)確性高的特點(diǎn),支持多種數(shù)據(jù)類型。代碼可讀性和可移植性高。winavr還有一個(gè)很?chē)?yán)重的缺陷就是不支持float數(shù)據(jù)類型,原因是GCC在所有環(huán)境中都把float直接定義為double。這樣,對(duì)8bit環(huán)境來(lái)說(shuō),就顯得負(fù)擔(dān)過(guò)重了。 功能特點(diǎn)
常見(jiàn)問(wèn)答1、AVRGCC不能像CVAVR或ICCAVR那樣把特殊I/O口當(dāng)變量來(lái)用,怎么辦? 其實(shí),使用 AVRGCC 的 inp(port) 和 outp(data,port) 宏就是最好的方法,但如果真的需要延續(xù)以往的使用方式,也可以照以下方式辦理:#define dPORTA (*(unsigned char *)(PORTA + 0x20))。如此,就定義了一個(gè) dPORTA 的偽變量,可以直接用于表達(dá)式中,并且用此種方式也可以實(shí)現(xiàn)類似 C51 中的 sfr 變量類型…… 2、AVRGCC 不能編譯帶浮點(diǎn)函數(shù)的程序,怎么辦? 很簡(jiǎn)單,在工程所在目錄的makefile文件中,把LDFLAGS=項(xiàng)目最后加上 .-lm就可以了…… 3、怎么改變目標(biāo)程序的優(yōu)化方式? 在makefile文件的CPFLAGS=行中,加入-Ox(x=1,2,3,s)就可以了,如果已經(jīng)有了-O的項(xiàng)目,就改變現(xiàn)有的,1~3 代表優(yōu)化方式,s代表按代碼長(zhǎng)度優(yōu)化…… 4、AVRGCC 能不能為 AT90S1200、ATTiny 系列進(jìn)行 C 語(yǔ)言編程? 答案是肯定的!首先,需要在 makefile 的項(xiàng)目中,把MCU=后面的內(nèi)容改成avr2其次,需要在程序所在的 c 文件中,把#include 改成#include ,#include如此,即可以直接將編譯后的代碼用于該兩類MCU上,不過(guò),還需要注意的是,由于該兩類 MCU 沒(méi)有軟件堆棧和 RAM,所以,程序中*禁止*使用全局變量、局部靜態(tài)變量以及中斷處理以外的函數(shù)(其實(shí)在 GCC 中,中斷處理程序叫做“信號(hào)”,不叫函數(shù)),并且,在中斷處理過(guò)程中,最好不要開(kāi)放中斷,否則會(huì)引起數(shù)據(jù)錯(cuò)誤并非不可以,但需要一些技巧)。 使用編程語(yǔ)言寫(xiě)的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |
1深度技術(shù)win10正式版ghost(32位)旗艦......
2番茄花園win10 X86 ghost 標(biāo)準(zhǔn)通......
3番茄花園Win10_Ghost Win10 64......
4雨林木風(fēng) GHOST WIN10 X64 快速裝......
5深度技術(shù)GHOST WIN10 X64 尊貴專業(yè)......
6筆記本W(wǎng)in10系統(tǒng) 64位官方正式版2023年......
7筆記本win10正式版ghost(32位)旗艦免......
8雨林木風(fēng)win10(32位)ghost 修正專業(yè)......