AVR universal Bootloader 在Atemga32 中的應用(一)

 

/***************************************************************************************************************************    

  AVR 通用 Bootloader這個程序提供一個具有通用性的 AVR Bootloader,不同型號的AVR單片機只需要修改一下幾個簡單的配置參數就可以直接使用了,不需要再修改主程序。因爲現在網上流傳的很多 Bootloader程序都是針對某個或幾個特定型號的,在換用其它型號後,需要對程序進行較多的修改;而且很多Bootloader程序雖然實現了基本功能,但是存在着一些缺陷或隱患,或者使用起來不夠方便,所以我寫了這個程序。它是在網上流傳的馬潮老師的ATmega128 Bootloader程序的基礎上,結合了我以前在PIC18單片機中使用Bootloader的一點經驗,以及學習自AVR USB中一些使用宏定義的技巧,再經過多次優化和反覆測試後得出的。

      這個通用的Bootloader可以支持大部分具有自編程功能、帶有Boot區和UART串口的AVR單片機(主要是Mega系列)。如果是多串口的單片機,可以任意選擇使用其中的一個串口。程序支持RS232/RS485/RS422方式,如果程序稍加修改,也應當可以很容易的支持USI、SPI、I2C等接口。

       整個Bootloader最大佔用不到1K Word的空間。在最小情況下,佔用的空間不到300 Word(具體佔用空間的大小與單片機的型號、配置的參數、功能裁剪的多少以及程序的優化等級有關)。



主要特點?

  • 支持多種型號的AVR單片機
  • 支持多串口的AVR單片機
  • 支持RS232/RS485/RS422模式
  • 支持多種通信波特率和時鐘頻率
  • 自動計算波特率誤差,如果波特率誤差>2%,將給出錯誤提示
  • 完全C語言編寫,容易修改
  • 代碼高度優化,佔用空間小
  • 方便的功能裁剪,適應不同的要求
  • 支持看門狗
  • 支持使用LED指示升級狀態
  • 支持使用超級終端做爲上位機下載軟件
  • 支持Flash寫入校驗
  • 可以自定義用戶程序區大小

***********************************************************************************************/

 

        我自己做了一個Atmega32的板子,在Atmega32中我使用了bootloder 。首先我下載了avr 通用 bootloader

的源代碼和AVRUBD的windows PC端程序。編譯avr universal bootloader的程序有兩種方式:

        1.可以通過AVRUBD的自動配置功能進行編譯。

        2.對程序的源代碼的配置文件進行修改,手動編譯。

 

 

       這裏我只對自動編譯進行主要的闡述:

 

     首先打開avrubd.exe 應用程序,對源程序進行自動配置編譯:進入【操作】---->【》》自動生成配置代碼】

(或者按F11),彈出自動配置對話框如下圖。在這裏我選擇我的單片機Atmega32,選擇時鐘晶振7.3728Mhz,

波特率選擇115200,然後單擊【創建】保存配置文件在源程序的目錄,然後立即選擇編譯bootloader,這樣

bootloader就被編譯完成。

 

     

通過ISP或者JTAG ICE將bootloader程序下載Atemga32的bootloader區,在這裏要注意AVR單片機的

熔絲位的設置 ,boot區大小的設置。

 

 

    

 

熔絲位設置好以後,就燒寫程序到flash的boot區。

 

然後打開AVRUBD.exe進入【選項】---》【AVR】並選擇

 


進入【選項】---》【系統】並選擇

進入【選項】---》【串口】並選擇

在選項都配置好以後,打開編譯好的bin文件或者hex文件,按黑色的【dn】

按鈕進行下載。

 

最後會提示升級成功的提示。這樣就算bootloader升級成功。

 

注意:在使用bootloder的燒寫時要特別注意熔絲位的設置,要不然會導致升級失敗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章