0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实例图文讲解bootloader固件源码及在线升级

n2wM_Atmel_comm 来源:未知 作者:佚名 2017-09-19 10:05 次阅读

笔者发现很多朋友需要bootloader实现在线升级,在这里笔者将实现过程与大家分享,并笔者的bootloader固件给大家参考。笔者在mage和xmage上都实现过,不过使用的RS485,所以固件里面也是RS485的,大家使用RS232的话,把RS485的控制去掉就可以了,RS232实现起来比RS485简单,因为RS232是全双工的。

笔者开发使用的环境是Atmel Studio 6.2,这个看大家习惯,环境主要就是实现可执行文件。bootloader固件都是C语言实现,相信大家都能看明白,这里就直接上传bootloader固件源码,大家到原文中下载。bootloader固件是需要仿真器等设备下载到设备中的。

ATMEL的mcu大多数都分boot区和应用区,都有熔丝位的设置,所以要实现在线升级,首先需要设置熔丝位,使mcu上电从boot区启动。然后在boot区判断是否需要升级,不需要自动跳到应用。还有就是要注意,笔者给的bootloader固件只是实现上电时进入boot区,需要其他方法实现,可以自行修改,原理一样。

下面说一下熔丝位的设置,这个需要针对mcu,不通的mcu设置稍有不同。

笔者在mage88pa上实现过,熔丝位设置为:

使用仿真器ISP设置mega88pa熔丝位,设置如下:

1, BOOTSZ:选择512W_0E00;

2, BOOTRST:选中,表示使用上电从boot区开始启动。

3, SPIEN:选中,默认仿真器模型,ISP下载程序,但不能仿真。该模式可设置熔丝位。

4, 需要仿真时,选中DWEN,去掉SPIEN。即选择debugwire,在仿真在调试时disable后进入ISP;

5, EESAVE:执行擦除命令时是否保留E2PROM中的内容,默认状态为“1”,表示E2PROM中的内容同Flash中的内容一同擦除。该位设置为“0”,对程序进行下载前的擦除命令只会对FLASH代码区有效,而对E2PROM区无效。

6, BODLEVEL:选择4.2V;掉电检测。

7, SUT_CKSEL:选择EXTXOSC_8MHZ_XX_16kCK_14CK_65MS;最后一个,根据使用的晶体来选择。

8, 其他不选择。

在xmage16上实现过,熔丝位设置相对简单一下,只设置从boot区启动即可。

熔丝位设置好后,就使用仿真器把bootloader固件固化到mcu中。

接下来就是实现在线升级了。如果使用pc机实现在线升级的画,在pc机就需要一个应用软件。这里笔者提供一个与bootloader配套的软件,大家可以在原文中下载;

接下来说一下这个应用软件的的使用,下面是针对mage88pa来说:

1) 启动 AVRUBD.EXE 。

2) 设置 AVRUBD 。 点击“选项”,点击下拉菜单的AVR, 先将“ AVR ” 选项卡下的参数设置为图 一 的要求, 注意 flash 空间大小是8K (这个根据具体mcu设置,如xmage16,应设置为16K); 联机密码为HEX:41 56 52 55 42;然后选“系统” 卡片, 设成图二 所示, 注意通讯协议要选简化 Xmodem 协议;数据帧长度为:64,(根据mcu串口接收buff设置,如xmage16应设置为256); 再选“串口 ” 卡片, 将其设成图三 所示, 其中串口号要根据你所用电脑实际串口确定;波特率为38400; 完成以上设置后点击“确定”

3) 载入要写到芯片中的 HEX 文件。 这一步是将你要下载到电路板的程序先装入电脑, 方法是点击

左上角菜单中“文件 –> 载入”, 然后选择要下载的文件, 点击“打开”。

4) 点击“下载”( 图4 ), 随即给目标板上电。 注意这里有一个时间配合的问题, 当你点击“下载”

后, PC 会查询下位机, 这段时间约为数秒。 当板卡上电后也有一个等待串口命令的时间,

这个时间只有 1 – 2 秒, 如果这两个时间配合不上, 就会出现联机失败( 图 5 ), 所以应当点击“下

载” 后马上给下位机( 即主板卡) 上电。 当顺利完成时, 你应该看到与图 6 类似的结果。

到这里,在线升级完全实现了。谢谢阅读~


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17021

    浏览量

    350384
  • bootloader
    +关注

    关注

    2

    文章

    234

    浏览量

    45558

原文标题:ATMEL系列MCU在线升级bootloader固件源码及操作过程

文章出处:【微信号:Atmel_community,微信公众号:Atmel中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问谁有stm8的IAP升级bootloader工程源码吗?

    求stm8的IAP升级bootloader工程源码。串口通过超级终端进行升级。如果能提供,那么分数全给你。
    发表于 10-11 01:12

    无法使用内置Bootloader的DFU方式进行固件升级的问题进行分析

    本文将针对客户无法使用内置Bootloader的DFU方式进行固件升级的问题进行分析。
    发表于 08-06 09:52

    STM32F407的系统bootloader之串口IAP固件升级

    STM32F407的系统bootloader之串口IAP固件升级,STM32F407的系统bootloader之串口IAP固件
    发表于 08-10 07:26

    使用系统bootloader做程序升级的方法

    第29章 STM32F407的系统bootloader之USB DFU方式固件升级本章节为大家讲解使用系统bootloader做程序
    发表于 08-10 06:31

    使用系统bootloader做程序升级的方法

    第29章 STM32F429的系统bootloader之USB DFU方式固件升级本章节为大家讲解使用系统bootloader做程序
    发表于 08-10 08:15

    使用系统bootloader做程序升级的方法

    第30章 STM32F429的系统bootloader之串口IAP固件升级本章节为大家讲解使用系统bootloader做程序
    发表于 08-10 06:29

    使用系统bootloader做程序升级的方法

    第68章 STM32H7的系统bootloader之USB DFU方式固件升级本章节为大家讲解使用系统bootloader做程序
    发表于 08-20 06:32

    STM32H7的系统bootloader之串口IAP固件升级

    第69章 STM32H7的系统bootloader之串口IAP固件升级本章节为大家讲解使用系统bootloader做程序
    发表于 08-20 06:04

    bootloader升级模式有哪几种

    1.固件升级简述固件升级,通常称为 OTA(Over the Air)升级或者 FOTA(Firmware Over-The-Air)
    发表于 01-25 07:33

    STM32 BootLoader升级固件

    Bootloader应该是每个成熟产品都必须具备的功能,有了它,我们不用担心产品销售出去后发现产品固件有问题而无法解决的问题,有了Bootloader功能,我们可以非常方便的升级更新我
    发表于 11-10 08:59 5052次阅读
    STM32 <b class='flag-5'>BootLoader</b><b class='flag-5'>升级</b><b class='flag-5'>固件</b>

    STM32单片机网络远程升级固件源码下载

    STM32单片机网络远程升级固件源码下载
    发表于 04-17 09:27 77次下载

    如何快速将BootLoader与APP固件合并

    1、前言嵌入式固件一般分为BootLoader和App,BootLoader用于启动校验、App升级、App版本回滚等功能,BootLoader
    的头像 发表于 09-24 14:19 5313次阅读

    AT32 MCU如何使用OTA通过USART实现对固件在线升级更新

    AT32 MCU如何使用OTA通过USART实现对固件在线升级更新
    的头像 发表于 10-26 17:09 2463次阅读
    AT32 MCU如何使用OTA通过USART实现对<b class='flag-5'>固件</b>的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>更新

    AT32 MCU如何使用IAP通过USART实现对固件在线升级更新

    AT32 MCU如何使用IAP通过USART实现对固件在线升级更新
    的头像 发表于 09-19 16:51 2229次阅读
    AT32 MCU如何使用IAP通过USART实现对<b class='flag-5'>固件</b>的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>更新

    如何开发不带Flash API 的Bootloader实现在线升级

    电子发烧友网站提供《如何开发不带Flash API 的Bootloader实现在线升级.pdf》资料免费下载
    发表于 09-12 09:41 0次下载
    如何开发不带Flash API 的<b class='flag-5'>Bootloader</b>实现<b class='flag-5'>在线</b><b class='flag-5'>升级</b>