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