WinAVR(GCC)快速入門(mén)
WinAVR 的配置與 makefile 一直是新手入門(mén)的兩個(gè)難點(diǎn)。我們經(jīng)過(guò)詳細的測試,推薦大家不需要作任何的配置,并且介紹了如何用最簡(jiǎn)單的方法創(chuàng )建自己的 makefile 文件。利用本文,十來(lái)分鐘你就能入門(mén) WinAVR /GCC.
首先:下載安裝WinAVR-20050214.exe軟件安裝好后(現在查閱最新的版本是07年的,即2007xxxx),你就能在電腦上看到如下的功能菜單:
說(shuō)明如下:
名稱(chēng) | 說(shuō)明 |
Programmers Notepad | GCC語(yǔ)言編輯器??商峁贸绦蚪涌?。 |
Mfile | GCC需要一個(gè)叫 makefile 的參數文件才能進(jìn)行編譯。Mfile 是一個(gè)工具,可以讓用戶(hù)方便地修改 makefile 上的參數。不過(guò)我們不推薦使用它。我們推薦直接用記事本打開(kāi) makefile 進(jìn)行編輯。 |
AVR Insight | 仿真調試工具 |
TkInfo | GNU的超文本瀏覽器 |
Uninstall WinAVR | 卸載 WinAVR 軟件 |
WinAVR User Manual | WinAVR 用戶(hù)手冊 |
GNU Maunals Online | GNU的在線(xiàn)幫助 |
AVR-libc Manual | AVR GCC的C語(yǔ)言函數庫幫助手冊 |
步驟一:打開(kāi) PN 工具
步驟二: 在硬盤(pán)建立一個(gè)專(zhuān)門(mén)存放avr文件的目錄, 例如,我們在D:盤(pán)新建一個(gè)AVR的目錄,注意!不要用中文目錄!也不要存在其他的有中文目錄的路徑。
在PN工具的編輯窗口中輸入下面的一個(gè)簡(jiǎn)單的跑馬燈程序:
在PN工具的編輯窗口中輸入下面的一個(gè)簡(jiǎn)單的跑馬燈程序:#include "avr/io.h"static void io_init(void)
{
PORTA = 0xff;
DDRA = 0xff;
}
void mDelay(uint16_t DelayTim)
{ uint16_t i;
for(;DelayTim>0;DelayTim--)
{ for(i=0;i<4000;i++)
{;}
for(i=0;i<3900;i++)
{;}
}
}
int main(void){
uint8_t i=0;
io_init();
while(1)
{ if(++i>=8)
i=0;
PORTA=~(0x01<>i可改變流水燈方向mDelay(500);}
}
然后:菜單 File -->save as..把它保存在剛剛建立的d:avr目錄下,命名為led.c
回到前面點(diǎn)程序菜單的winavr的mfile出現前面的界面
點(diǎn)擊主菜單Makefile->Main file name…即出現如圖2所示的對話(huà)框,通常不需要更改此選項,最終產(chǎn)生的hex文件即main.hex。
接著(zhù)點(diǎn)擊Makefile->Mcu type,設定所用單片機的型號,如圖3所示我們選擇ATmega8515為我們所用的型號。
點(diǎn)擊:Make-->Debug Format:可選擇輸出的調試文件格式,應選擇最后一項:ELF/DRARF-2(AVR Studio ELF,GDB[experimental] ),這樣可以由產(chǎn)生供AVR studio 4以上版本調試用的ELF格式的文件。
圖4 選擇主文件
其他的項一般可以不必改動(dòng)。
編譯 (Make All):
回到Programmer Notepads中,點(diǎn)擊:Tools->Make All,即可對該文件進(jìn)行編譯、鏈接等處理,有關(guān)信息在output窗口中呈現。如有錯誤,單擊錯誤行,即可定位,以便對此進(jìn)行修改,直到編譯、鏈接完全正確為止。此時(shí),output窗口顯示:> Process Exit Code: 0 (否則程序有問(wèn)題請檢查)
燒寫(xiě)程序/演示
用下載線(xiàn)連接好目標板上的ATmega8515L或Atmega8515,開(kāi)啟電源 ,
按照上圖選擇: 單片機工作在內部時(shí)鐘8MHZ
注意:熔絲位配置錯誤將會(huì )鎖死芯片導致再編程失敗。
加載編譯的文件main.hex
特別注意!由于51單片機和AVR單片機的復位信號相反,而XL600/XL1000主要設計為51單片機使用,為此, 如果按XL600/XL1000的復位鍵后,則停止運行, 按下不動(dòng),才重新運行。初學(xué)者請注意!另外由于軟件設計的原因可能要點(diǎn)兩次智能一鍵通, 才能正常的下載。
附表:Atmega8515/L的熔絲配置說(shuō)明(詳細資料請參考官方Datasheet)
表1.時(shí)鐘源選擇
默認時(shí)鐘源:
芯片在出廠(chǎng)時(shí)CKSEL = “0001”, SUT = “10”。默認時(shí)鐘源為有最長(cháng)啟動(dòng)時(shí)間的內部RC振蕩器(頻率1M)。默認設置可以保證用戶(hù)通過(guò)系統內或并行編程得到他們期望的時(shí)鐘源。
標定的片內RC 振蕩器提供了固定的1.0、2.0、4.0 或8.0 MHz 的時(shí)鐘。這些頻率都是5V、25°C 下的標稱(chēng)數值。這個(gè)時(shí)鐘也可以作為系統時(shí)鐘,只要按照表2 對熔絲位CKSEL進(jìn)行編程即可。
表2. 片內標定的RC 振蕩器工作模式
評論