0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實(shí)例圖文講解bootloader固件源碼及在線升級(jí)

n2wM_Atmel_comm ? 來源:未知 ? 作者:佚名 ? 2017-09-19 10:05 ? 次閱讀

筆者發(fā)現(xiàn)很多朋友需要bootloader實(shí)現(xiàn)在線升級(jí),在這里筆者將實(shí)現(xiàn)過程與大家分享,并筆者的bootloader固件給大家參考。筆者在mage和xmage上都實(shí)現(xiàn)過,不過使用的RS485,所以固件里面也是RS485的,大家使用RS232的話,把RS485的控制去掉就可以了,RS232實(shí)現(xiàn)起來比RS485簡單,因?yàn)镽S232是全雙工的。

筆者開發(fā)使用的環(huán)境是Atmel Studio 6.2,這個(gè)看大家習(xí)慣,環(huán)境主要就是實(shí)現(xiàn)可執(zhí)行文件。bootloader固件都是C語言實(shí)現(xiàn),相信大家都能看明白,這里就直接上傳bootloader固件源碼,大家到原文中下載。bootloader固件是需要仿真器等設(shè)備下載到設(shè)備中的。

ATMEL的mcu大多數(shù)都分boot區(qū)和應(yīng)用區(qū),都有熔絲位的設(shè)置,所以要實(shí)現(xiàn)在線升級(jí),首先需要設(shè)置熔絲位,使mcu上電從boot區(qū)啟動(dòng)。然后在boot區(qū)判斷是否需要升級(jí),不需要自動(dòng)跳到應(yīng)用。還有就是要注意,筆者給的bootloader固件只是實(shí)現(xiàn)上電時(shí)進(jìn)入boot區(qū),需要其他方法實(shí)現(xiàn),可以自行修改,原理一樣。

下面說一下熔絲位的設(shè)置,這個(gè)需要針對(duì)mcu,不通的mcu設(shè)置稍有不同。

筆者在mage88pa上實(shí)現(xiàn)過,熔絲位設(shè)置為:

使用仿真器ISP設(shè)置mega88pa熔絲位,設(shè)置如下:

1, BOOTSZ:選擇512W_0E00;

2, BOOTRST:選中,表示使用上電從boot區(qū)開始啟動(dòng)。

3, SPIEN:選中,默認(rèn)仿真器模型,ISP下載程序,但不能仿真。該模式可設(shè)置熔絲位。

4, 需要仿真時(shí),選中DWEN,去掉SPIEN。即選擇debugwire,在仿真在調(diào)試時(shí)disable后進(jìn)入ISP;

5, EESAVE:執(zhí)行擦除命令時(shí)是否保留E2PROM中的內(nèi)容,默認(rèn)狀態(tài)為“1”,表示E2PROM中的內(nèi)容同F(xiàn)lash中的內(nèi)容一同擦除。該位設(shè)置為“0”,對(duì)程序進(jìn)行下載前的擦除命令只會(huì)對(duì)FLASH代碼區(qū)有效,而對(duì)E2PROM區(qū)無效。

6, BODLEVEL:選擇4.2V;掉電檢測。

7, SUT_CKSEL:選擇EXTXOSC_8MHZ_XX_16kCK_14CK_65MS;最后一個(gè),根據(jù)使用的晶體來選擇。

8, 其他不選擇。

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

熔絲位設(shè)置好后,就使用仿真器把bootloader固件固化到mcu中。

接下來就是實(shí)現(xiàn)在線升級(jí)了。如果使用pc機(jī)實(shí)現(xiàn)在線升級(jí)的畫,在pc機(jī)就需要一個(gè)應(yīng)用軟件。這里筆者提供一個(gè)與bootloader配套的軟件,大家可以在原文中下載;

接下來說一下這個(gè)應(yīng)用軟件的的使用,下面是針對(duì)mage88pa來說:

1) 啟動(dòng) AVRUBD.EXE 。

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

3) 載入要寫到芯片中的 HEX 文件。 這一步是將你要下載到電路板的程序先裝入電腦, 方法是點(diǎn)擊

左上角菜單中“文件 –> 載入”, 然后選擇要下載的文件, 點(diǎn)擊“打開”。

4) 點(diǎn)擊“下載”( 圖4 ), 隨即給目標(biāo)板上電。 注意這里有一個(gè)時(shí)間配合的問題, 當(dāng)你點(diǎn)擊“下載”

后, PC 會(huì)查詢下位機(jī), 這段時(shí)間約為數(shù)秒。 當(dāng)板卡上電后也有一個(gè)等待串口命令的時(shí)間,

這個(gè)時(shí)間只有 1 – 2 秒, 如果這兩個(gè)時(shí)間配合不上, 就會(huì)出現(xiàn)聯(lián)機(jī)失?。?圖 5 ), 所以應(yīng)當(dāng)點(diǎn)擊“下

載” 后馬上給下位機(jī)( 即主板卡) 上電。 當(dāng)順利完成時(shí), 你應(yīng)該看到與圖 6 類似的結(jié)果。

到這里,在線升級(jí)完全實(shí)現(xiàn)了。謝謝閱讀~


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16804

    瀏覽量

    349393
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    233

    瀏覽量

    45467

原文標(biāo)題:ATMEL系列MCU在線升級(jí)bootloader固件源碼及操作過程

文章出處:【微信號(hào):Atmel_community,微信公眾號(hào):Atmel中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問誰有stm8的IAP升級(jí)bootloader工程源碼嗎?

    求stm8的IAP升級(jí)bootloader工程源碼。串口通過超級(jí)終端進(jìn)行升級(jí)。如果能提供,那么分?jǐn)?shù)全給你。
    發(fā)表于 10-11 01:12

    無法使用內(nèi)置Bootloader的DFU方式進(jìn)行固件升級(jí)的問題進(jìn)行分析

    本文將針對(duì)客戶無法使用內(nèi)置Bootloader的DFU方式進(jìn)行固件升級(jí)的問題進(jìn)行分析。
    發(fā)表于 08-06 09:52

    STM32F407的系統(tǒng)bootloader之串口IAP固件升級(jí)

    STM32F407的系統(tǒng)bootloader之串口IAP固件升級(jí),STM32F407的系統(tǒng)bootloader之串口IAP固件
    發(fā)表于 08-10 07:26

    使用系統(tǒng)bootloader做程序升級(jí)的方法

    第29章 STM32F407的系統(tǒng)bootloader之USB DFU方式固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序
    發(fā)表于 08-10 06:31

    使用系統(tǒng)bootloader做程序升級(jí)的方法

    第29章 STM32F429的系統(tǒng)bootloader之USB DFU方式固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序
    發(fā)表于 08-10 08:15

    使用系統(tǒng)bootloader做程序升級(jí)的方法

    第30章 STM32F429的系統(tǒng)bootloader之串口IAP固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序
    發(fā)表于 08-10 06:29

    使用系統(tǒng)bootloader做程序升級(jí)的方法

    第68章 STM32H7的系統(tǒng)bootloader之USB DFU方式固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序
    發(fā)表于 08-20 06:32

    STM32H7的系統(tǒng)bootloader之串口IAP固件升級(jí)

    第69章 STM32H7的系統(tǒng)bootloader之串口IAP固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序
    發(fā)表于 08-20 06:04

    bootloader升級(jí)模式有哪幾種

    1.固件升級(jí)簡述固件升級(jí),通常稱為 OTA(Over the Air)升級(jí)或者 FOTA(Firmware Over-The-Air)
    發(fā)表于 01-25 07:33

    STM32 BootLoader升級(jí)固件

    Bootloader應(yīng)該是每個(gè)成熟產(chǎn)品都必須具備的功能,有了它,我們不用擔(dān)心產(chǎn)品銷售出去后發(fā)現(xiàn)產(chǎn)品固件有問題而無法解決的問題,有了Bootloader功能,我們可以非常方便的升級(jí)更新我
    發(fā)表于 11-10 08:59 ?4985次閱讀
    STM32 <b class='flag-5'>BootLoader</b><b class='flag-5'>升級(jí)</b><b class='flag-5'>固件</b>

    STM32單片機(jī)網(wǎng)絡(luò)遠(yuǎn)程升級(jí)固件源碼下載

    STM32單片機(jī)網(wǎng)絡(luò)遠(yuǎn)程升級(jí)固件源碼下載
    發(fā)表于 04-17 09:27 ?77次下載

    如何快速將BootLoader與APP固件合并

    1、前言嵌入式固件一般分為BootLoader和App,BootLoader用于啟動(dòng)校驗(yàn)、App升級(jí)、App版本回滾等功能,BootLoader
    的頭像 發(fā)表于 09-24 14:19 ?5253次閱讀

    AT32 MCU如何使用OTA通過USART實(shí)現(xiàn)對(duì)固件在線升級(jí)更新

    AT32 MCU如何使用OTA通過USART實(shí)現(xiàn)對(duì)固件在線升級(jí)更新
    的頭像 發(fā)表于 10-26 17:09 ?2309次閱讀
    AT32 MCU如何使用OTA通過USART實(shí)現(xiàn)對(duì)<b class='flag-5'>固件</b>的<b class='flag-5'>在線</b><b class='flag-5'>升級(jí)</b>更新

    AT32 MCU如何使用IAP通過USART實(shí)現(xiàn)對(duì)固件在線升級(jí)更新

    AT32 MCU如何使用IAP通過USART實(shí)現(xiàn)對(duì)固件在線升級(jí)更新
    的頭像 發(fā)表于 09-19 16:51 ?2107次閱讀
    AT32 MCU如何使用IAP通過USART實(shí)現(xiàn)對(duì)<b class='flag-5'>固件</b>的<b class='flag-5'>在線</b><b class='flag-5'>升級(jí)</b>更新

    如何開發(fā)不帶Flash API 的Bootloader實(shí)現(xiàn)在線升級(jí)

    電子發(fā)燒友網(wǎng)站提供《如何開發(fā)不帶Flash API 的Bootloader實(shí)現(xiàn)在線升級(jí).pdf》資料免費(fèi)下載
    發(fā)表于 09-12 09:41 ?0次下載
    如何開發(fā)不帶Flash API 的<b class='flag-5'>Bootloader</b>實(shí)現(xiàn)<b class='flag-5'>在線</b><b class='flag-5'>升級(jí)</b>