WinAVR是開源社區(qū)的一個用來開發(fā)AVR單片機(jī)的GCC編譯器,WinAVR可運(yùn)行于32位Windows操作系統(tǒng)中,并兼容64位Windows操作系統(tǒng)。WinAVR 是GNU 組織推出的AVR 單片機(jī)的gcc 編譯器,該編譯器的編譯效率極高。gcc 編譯器是開源的,是免費(fèi)的。使用gcc 編譯器,可以掌握標(biāo)準(zhǔn)c 的語法等,為學(xué)習(xí)Linux 等奠定基礎(chǔ)。
winavr 編譯器安裝教程:
下載完成后,運(yùn)行安裝程序。
選擇語言
你沒有必要因?yàn)榫幊潭x擇英文,也可以選擇你更熟悉的中文。
歡迎界面
歡迎界面將提示你安裝馬上開始。建議你關(guān)閉其他正在運(yùn)行的程序,正在進(jìn)行的系統(tǒng)更新。屏幕背景將變成藍(lán)色,任務(wù)欄會消失。這只是安裝程序?yàn)榱俗屇慵凶⒁饬Φ淖龇。你依然可以通過鍵盤上的Windows鍵調(diào)出開始菜單和任務(wù)欄。
許可協(xié)議
WinAVR在GNU GPL許可協(xié)議下發(fā)布。接受許可協(xié)議,以繼續(xù)安裝。
選擇路徑
選擇安裝路徑。最佳的做法是安裝在一個不包含空格的路徑下,這樣會避免很多可能的問題。
選擇組件
選擇額外的組件。
Install Files,安裝文件。它是必要的選項(xiàng)。
Add Directories to PATH,將程序目錄添加到PATH環(huán)境變量。強(qiáng)烈建議的選項(xiàng),添加到PATH之后,你就可以直接調(diào)用WinAVR命令,而不必切換到程序路徑。
Programmers Notepad,代碼編輯器,也是一個簡單的IDE。建議安裝,它體積小巧,卻能為編程帶來極大便利。
安裝進(jìn)度
安裝過程中會顯示安裝進(jìn)度,此過程會持續(xù)幾分鐘,這取決于你的計算機(jī)速度。
安裝完成
若安裝順利完成,則會跳到完成界面。點(diǎn)擊完成離開安裝界面。
winavr 編譯器簡單使用教程:
啟動Programmer's Notepad
在開始菜單中尋找WinAVR 20100110(也可能是其他版本號) > Programmers Notepad [WinAVR],打開程序。
新建項(xiàng)目
File > New > Project,新建一個項(xiàng)目。
指定項(xiàng)目的名字,并選擇項(xiàng)目路徑。項(xiàng)目路徑是存放的所有項(xiàng)目文件,最好為它選擇一個一個單獨(dú)的空目錄。
編寫代碼
在啟動Programmer's Notepad時,已經(jīng)默認(rèn)加載了一個新建的空白文檔,這個文檔還沒有被保存,也沒有設(shè)置文件類型,文本不會被識別為代碼。如果打開的時候沒有文件,則可以點(diǎn)擊工具欄左側(cè)的新建文件按鈕,創(chuàng)建一個空白文件。
我們可以先隨意輸入一些文本,然后保存。保存按鈕在工具欄的左側(cè),也可以再“File”菜單里選擇“Save”。注意文件的保存的文件夾最好與前面項(xiàng)目文件夾一致。文件名以“.c”結(jié)尾可以幫助Programmer's Notepad識別代碼類型。
然后,我們就可以將此C源代碼文件包含到項(xiàng)目中去了。右擊窗口左側(cè)項(xiàng)目面板中的我們前面新建的項(xiàng)目,在右鍵菜單中選擇“Add Files”。之所以要將C代碼文件添加到項(xiàng)目中,是為了便于項(xiàng)目的管理。
現(xiàn)在,就可以在C文件中添加代碼了。試著將下面的代碼復(fù)制到編輯器中,或者自己書寫代碼。
//此程序?qū)崿F(xiàn)8個LED的亮與滅 //所使用的開發(fā)板為MEGA128,PB接8個LED燈,1為亮,0為滅 //若使用不同的開發(fā)板,則應(yīng)相應(yīng)修改 #include <avr/io.h> //AVR頭文件 #include <util/delay.h> //內(nèi)部函數(shù)頭文件 int main(void) { PORTB = 0xff;//初始化PB口 DDRB = 0xff;//設(shè)置PB口為輸出 while(1){ PORTB = 0xff; _delay_ms(500);//延時500毫秒 PORTB = 0x00; _delay_ms(500);//延時500毫秒 } }
輸入代碼之后,編輯器能夠自動識別代碼,并以不同顏色標(biāo)記。
如此,代碼便編輯完畢了。但現(xiàn)在還不能直接開始編譯,因?yàn)檫沒有配置makefile。
Makefile
在開始菜單中打開WinAVR > MFile [WinAVR]。
在程序菜單打開Makefile,在菜單中選擇各個選項(xiàng)。
首先是Main file name,即包含main函數(shù)的C文件。只需要輸入文件名即可,不需要后綴(.c)。
下面是MCU type,也就是單片機(jī)的型號,這里使用的是ATmega系列的atmega128。
當(dāng)你選擇了選項(xiàng)之后,會發(fā)現(xiàn)Makefile文件多了一行“MCU = atmega128”。這個小程序的作用就是在你通過菜單修改選項(xiàng)時,同步修改makefile文件。
然后是Output format,即編譯輸出的文件類型。這里我們選擇ihex(十六進(jìn)制文件),這種文件可被下載程序下載到單片機(jī)中。
接下來是Optimization level選項(xiàng),選擇默認(rèn)的s即可。
之后是Debug format選項(xiàng),這里我們使用GDB和Insight調(diào)試工具,因此要選擇第一個“ELF/stabs”。
C standard level,即C語言標(biāo)準(zhǔn)。C99和GNU99是不同的,這里我們選擇GNU99。
C/C++ source files,C/C++源文件。如果除了main文件還有其他C/C++源代碼文件,則需要用此選項(xiàng)添加。
還有一個芯片的晶振頻率,需要手動修改。在菜單中選擇Makefile > Enable Editing of Makefile,啟動手動編輯。現(xiàn)在就可以像編輯文本一樣修改makefile文件了。找到
# Processor frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency. You can then use this symbol in your source code to # calculate timings. Do NOT tack on a 'UL' at the end, this will be done # automatically to create a 32-bit value in your source code. # Typical values are: # F_CPU = 1000000 # F_CPU = 1843200 # F_CPU = 2000000 # F_CPU = 3686400 # F_CPU = 4000000 # F_CPU = 7372800 # F_CPU = 8000000 # F_CPU = 11059200 # F_CPU = 14745600 # F_CPU = 16000000 # F_CPU = 18432000 # F_CPU = 20000000 F_CPU = 8000000
將F_CPU的數(shù)值修改為與你的單片機(jī)一致。F_CPU的值也可在C代碼中用#define F_CPU設(shè)定,代碼中的定義會覆蓋makefile中的定義。
編輯好之后,F(xiàn)ile>Save as,保存此makefile文件到項(xiàng)目文件夾下,文件名為必須為Makefile。
編譯程序
有了Makefile之后,就可以編譯程序了。
回到Programmer's Notepad,確保代碼已經(jīng)保存。使用菜單欄的Tools > Make all [Win AVR],編譯程序。
若程序沒有錯誤,編譯就能順利完成。若有錯誤,則會在下方的結(jié)果中提示。
現(xiàn)在我們轉(zhuǎn)到項(xiàng)目所在的文件夾,就能看到WinAVR編譯輸出的文件了。
.hex后綴的文件是Flash文件,可以通過燒寫程序下載到AVR單片機(jī)的Flash中去。
.eep后綴的文件是EEPROM文件,可以通過燒寫程序下載到AVR單片機(jī)的EEPROM中去。
現(xiàn)在,一個AVR項(xiàng)目就已經(jīng)完成了。