AVR Bootloader應(yīng)用介紹
因為AS4中使用avrub已經(jīng)很方便了,所以就不重復(fù)了,這里只介紹AS6中使用avrub的方法。先在AS6中創(chuàng)建新項目,然后將avrub中需要的三個文件復(fù)制到項目文件夾下,并刪除原來的主程序文

使用過avrub的人都知道,使用avrub主要就是要做好參數(shù)配置工作,基本不用修改程序的。先設(shè)置一下bootloader的地址,方法和AS4中一樣,在項目屬性的Memeory Setting中,在Flash segment下添加一行:復(fù)制代碼這是為了將bootloader設(shè)置在0x3C00Word(0x7800Byte)處,也就是Boot區(qū)大小是1KW。其它參數(shù)就在bootcfg.h中修改了,主要是修改時鐘頻率、LED引腳、波特率等。
- .text=0x3C00

設(shè)置完成后保存一下,然后可以編譯了。為了驗證Bootloader是否在我們需要的位置,可以用avrubd.exe查看一下編譯后的HEX文件。下圖顯示它的確從0x7800Byte處開始的。

下一步就是配置ATmega328P的熔絲位了。這里主要是設(shè)置BOOTRST和BOOTSZ兩個,其它不用修改。在Device programming中設(shè)置好后記得還要program,這樣才能設(shè)置到芯片中。使用AS自帶的編程軟件好處就在于如果不小心設(shè)置了一些錯誤而關(guān)鍵的熔絲位,它會提示你。

下一步就是將上面編譯好的bootloader程序下載到芯片。然后就是在上位機軟件中設(shè)置參數(shù)和串口,最簡單的方法就是直接在選項中導(dǎo)入剛才的bootcfg.h。設(shè)置串口時需要注意,必須將DTR選中,不然串口是無法通信的(這是mEDBG要求的)。

最后在打開一個atmega328的例子下載,測試一下。只要沒有設(shè)置錯誤,基本都是一次成功,用起來還是很方便的。

因為ATmega328P Xplained mini開發(fā)板上沒有復(fù)位按鈕,所以我們還需要準備一個鑷子,在需要復(fù)位時,將ISP插座的5 6兩個腳(RESET和GND)短路一下。
評論