標題: ATMEL系列MCU在線升級bootloader固件源碼及操作過程 [打印本頁]

作者: 眺望123    時間: 2016-9-9 16:17
標題: ATMEL系列MCU在線升級bootloader固件源碼及操作過程

前幾天出差,無意間問了大家是否需要bootloader實現(xiàn)在線升級,需要的還是比較多,在這里我就把我實現(xiàn)過程與大家分享,并我的bootloader固件給大家參考。我在mage和xmage上都實現(xiàn)過,不過我使用的RS485,所以固件里面也是RS485的,大家使用RS232的話,把RS485的控制去掉就可以了,RS232實現(xiàn)起來比RS485簡單,因為RS232是全雙工的。


    我開發(fā)使用的環(huán)境是Atmel Studio 6.2,這個看大家習慣,環(huán)境主要就是實現(xiàn)可執(zhí)行文件。bootloader固件都是C語言

實現(xiàn),相信大家都能看明白,這里就直接上傳bootloader固件源碼。bootloader固件是需要仿真器等設備下載到設備中的。

    bootloader源碼:附件里面下下載

   我上傳的這個bootloader是在xmage16上實現(xiàn)的,大家可以根據(jù)自己的芯片稍作修改就可以。
ATMEL的mcu大多數(shù)都分boot區(qū)和應用區(qū),都有熔絲位的設置,所以要實現(xiàn)在線升級,首先需要設置熔絲位,使mcu上電從boot區(qū)啟動。然后在boot區(qū)判斷是否需要升級,不需要自動跳到應用。還有就是要注意,我給的bootloader固件只是實現(xiàn)上電時進入boot區(qū),需要其他方法實現(xiàn),可以自行修改,原理一樣。
下面我說一下熔絲位的設置,這個需要針對mcu,不通的mcu設置稍有不同。
我在mage88pa上實現(xiàn)過,熔絲位設置為:


使用仿真器ISP設置mega88pa熔絲位,設置如下:
1, BOOTSZ:選擇512W_0E00;
2, BOOTRST:選中,表示使用上電從boot區(qū)開始啟動。
3, SPIEN:選中,默認仿真器模型,ISP下載程序,但不能仿真。該模式可設置熔絲位。
4, 需要仿真時,選中DWEN,去掉SPIEN。即選擇debugwire,在仿真在調(diào)試時disable后進入ISP;
5, EESAVE:執(zhí)行擦除命令時是否保留E2PROM中的內(nèi)容,默認狀態(tài)為“1”,表示E2PROM中的內(nèi)容同F(xiàn)lash中的內(nèi)容一同擦除。該位設置為“0”,對程序進行下載前的擦除命令只會對FLASH代碼區(qū)有效,而對E2PROM區(qū)無效。
6, BODLEVEL:選擇4.2V;掉電檢測。
7, SUT_CKSEL:選擇EXTXOSC_8MHZ_XX_16kCK_14CK_65MS;最后一個,根據(jù)使用的晶體來選擇。
8, 其他不選擇。

在xmage16上實現(xiàn)過,熔絲位設置相對簡單一下,只設置從boot區(qū)啟動即可。

熔絲位設置好后,就使用仿真器把bootloader固件固化到mcu中。
接下來就是實現(xiàn)在線升級了。如果使用pc機實現(xiàn)在線升級的畫,在pc機就需要一個應用軟件。我這里提供一個與bootloader配套的軟件;

應用軟件: 點擊這里


接下來說一下這個應用軟件的的使用,下面是針對mage88pa來說:
   1) 啟動 AVRUBD.EXE 。
   2) 設置 AVRUBD 。 點擊“選項”,點擊下拉菜單的AVR, 先將“ AVR ” 選項卡下的參數(shù)設置為圖 一 的要求, 注意 flash 空間大小是8K (這個根據(jù)具體mcu設置,如xmage16,應設置為16K); 聯(lián)機密碼為HEX:41 56 52 55 42;然后選“系統(tǒng)” 卡片, 設成圖二 所示, 注意通訊協(xié)議要選簡化 Xmodem 協(xié)議;數(shù)據(jù)幀長度為:64,(根據(jù)mcu串口接收buff設置,如xmage16應設置為256); 再選“串口 ” 卡片, 將其設成圖三 所示, 其中串口號要根據(jù)你所用電腦實際串口確定;波特率為38400; 完成以上設置后點擊“確定


3) 載入要寫到芯片中的 HEX 文件。 這一步是將你要下載到電路板的程序先裝入電腦, 方法是點擊
左上角菜單中“文件 –> 載入”, 然后選擇要下載的文件, 點擊“打開”。


4) 點擊“下載”( 圖4 ), 隨即給目標板上電。 注意這里有一個時間配合的問題, 當你點擊“下載”
后, PC 會查詢下位機, 這段時間約為數(shù)秒。 當板卡上電后也有一個等待串口命令的時間,
這個時間只有 1 – 2 秒, 如果這兩個時間配合不上, 就會出現(xiàn)聯(lián)機失敗( 圖 5 ), 所以應當點擊“下
載” 后馬上給下位機( 即主板卡) 上電。 當順利完成時, 你應該看到與圖 6 類似的結(jié)果。

到這里,在線升級完全實現(xiàn)了,感覺寫得有點亂,但相信你也能看明白。

avrubd.zip

341.92 KB, 下載次數(shù): 135, 下載積分: 黑幣 -5

bootloader.zip

1013.14 KB, 下載次數(shù): 181, 下載積分: 黑幣 -5


作者: dm800s    時間: 2016-10-14 13:44
不錯,下載測試看看
作者: cgh6825    時間: 2016-10-21 08:50
下載測試看看
作者: randy    時間: 2016-11-9 16:02
不錯,支持
作者: lwhsqqdgy    時間: 2016-11-15 15:17
不錯,下載測試看看
作者: 笨笨兔    時間: 2016-12-29 09:37
下載,學習學習
作者: 行者person    時間: 2017-2-24 11:16
不錯,下載測試看看
作者: lt470484446    時間: 2017-3-8 19:56
看著挺詳細,下載看看學習學習
作者: huaishang    時間: 2017-10-6 21:09
不錯,下載測試看看,謝謝!
作者: wu9961    時間: 2017-10-30 01:00
太棒了,正好需要這個
作者: sunsky667    時間: 2018-1-8 14:13
看著挺詳細,下載看看學習學習
作者: dunjian2000    時間: 2018-2-20 17:24
這個絕對是很好的東西啊,正需要的。謝謝分享
作者: 51加    時間: 2018-7-14 15:11
請問你怎么進行設置的把啟動代碼放到了boot區(qū)
作者: huaishang    時間: 2018-7-18 23:45

不錯,支持。!
作者: Roam    時間: 2018-8-31 23:11
看看先,謝謝
作者: liuxinrui    時間: 2018-9-16 17:38
謝謝群主
作者: liuxinrui    時間: 2018-9-16 17:40

看看先,謝謝
作者: hdcxp    時間: 2018-10-25 00:53
謝謝樓主啊              
作者: weiqizi181    時間: 2019-5-30 16:39
下載幣不夠

作者: xinghai333    時間: 2019-6-9 21:11


看看先,謝謝
作者: billypeng    時間: 2019-9-11 11:36



看看先,謝謝
作者: dasan2000    時間: 2020-1-6 16:26
感謝分享,謝謝,學習學習
作者: rgb175    時間: 2021-2-17 19:48
不錯,下載測試看看

作者: 空山新雨    時間: 2021-3-22 16:07
rgb175 發(fā)表于 2021-2-17 19:48
不錯,下載測試看看

你測試成功了嗎
作者: AMWWXFFN    時間: 2024-7-23 10:10
在那里下載avrubd程序的
作者: AMWWXFFN    時間: 2024-7-23 10:11
在那里下載的





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1