AVR Bootloader應(yīng)用介紹
因?yàn)锳S4中使用avrub已經(jīng)很方便了,所以就不重復(fù)了,這里只介紹AS6中使用avrub的方法。先在AS6中創(chuàng)建新項(xiàng)目,然后將avrub中需要的三個(gè)文件復(fù)制到項(xiàng)目文件夾下,并刪除原來的主程序文
使用過avrub的人都知道,使用avrub主要就是要做好參數(shù)配置工作,基本不用修改程序的。先設(shè)置一下bootloader的地址,方法和AS4中一樣,在項(xiàng)目屬性的Memeory Setting中,在Flash segment下添加一行:復(fù)制代碼這是為了將bootloader設(shè)置在0x3C00Word(0x7800Byte)處,也就是Boot區(qū)大小是1KW。其它參數(shù)就在bootcfg.h中修改了,主要是修改時(shí)鐘頻率、LED引腳、波特率等。
- .text=0x3C00
設(shè)置完成后保存一下,然后可以編譯了。為了驗(yàn)證Bootloader是否在我們需要的位置,可以用avrubd.exe查看一下編譯后的HEX文件。下圖顯示它的確從0x7800Byte處開始的。
下一步就是配置ATmega328P的熔絲位了。這里主要是設(shè)置BOOTRST和BOOTSZ兩個(gè),其它不用修改。在Device programming中設(shè)置好后記得還要program,這樣才能設(shè)置到芯片中。使用AS自帶的編程軟件好處就在于如果不小心設(shè)置了一些錯(cuò)誤而關(guān)鍵的熔絲位,它會提示你。
下一步就是將上面編譯好的bootloader程序下載到芯片。然后就是在上位機(jī)軟件中設(shè)置參數(shù)和串口,最簡單的方法就是直接在選項(xiàng)中導(dǎo)入剛才的bootcfg.h。設(shè)置串口時(shí)需要注意,必須將DTR選中,不然串口是無法通信的(這是mEDBG要求的)。
最后在打開一個(gè)atmega328的例子下載,測試一下。只要沒有設(shè)置錯(cuò)誤,基本都是一次成功,用起來還是很方便的。
因?yàn)锳Tmega328P Xplained mini開發(fā)板上沒有復(fù)位按鈕,所以我們還需要準(zhǔn)備一個(gè)鑷子,在需要復(fù)位時(shí),將ISP插座的5 6兩個(gè)腳(RESET和GND)短路一下。
評論