找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19897|回复: 23
打印 上一主题 下一主题
收起左侧

ATMEL系列MCU在线升级bootloader固件源码及操作过程

  [复制链接]
跳转到指定楼层
楼主

前几天出差,无意间问了大家是否需要bootloader实现在线升级,需要的还是比较多,在这里我就把我实现过程与大家分享,并我的bootloader固件给大家参考。我在mage和xmage上都实现过,不过我使用的RS485,所以固件里面也是RS485的,大家使用RS232的话,把RS485的控制去掉就可以了,RS232实现起来比RS485简单,因为RS232是全双工的。


    我开发使用的环境是Atmel Studio 6.2,这个看大家习惯,环境主要就是实现可执行文件。bootloader固件都是C语言

实现,相信大家都能看明白,这里就直接上传bootloader固件源码。bootloader固件是需要仿真器等设备下载到设备中的。

    bootloader源码:附件里面下下载

   我上传的这个bootloader是在xmage16上实现的,大家可以根据自己的芯片稍作修改就可以。
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 类似的结果。

到这里,在线升级完全实现了,感觉写得有点乱,但相信你也能看明白。

avrubd.zip

341.92 KB, 下载次数: 133, 下载积分: 黑币 -5

bootloader.zip

1013.14 KB, 下载次数: 175, 下载积分: 黑币 -5

评分

参与人数 2黑币 +105 收起 理由
yangshijieab + 5 共享资料的黑币奖励!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏11 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:108023 发表于 2016-10-14 13:44 | 只看该作者
不错,下载测试看看
回复

使用道具 举报

板凳
ID:82939 发表于 2016-10-21 08:50 | 只看该作者
下载测试看看
回复

使用道具 举报

地板
ID:147051 发表于 2016-11-9 16:02 | 只看该作者
不错,支持
回复

使用道具 举报

5#
ID:148045 发表于 2016-11-15 15:17 | 只看该作者
不错,下载测试看看
回复

使用道具 举报

6#
ID:158375 发表于 2016-12-29 09:37 | 只看该作者
下载,学习学习
回复

使用道具 举报

7#
ID:166357 发表于 2017-2-24 11:16 | 只看该作者
不错,下载测试看看
回复

使用道具 举报

8#
ID:169195 发表于 2017-3-8 19:56 | 只看该作者
看着挺详细,下载看看学习学习
回复

使用道具 举报

9#
ID:25103 发表于 2017-10-6 21:09 | 只看该作者
不错,下载测试看看,谢谢!
回复

使用道具 举报

10#
ID:244064 发表于 2017-10-30 01:00 | 只看该作者
太棒了,正好需要这个
回复

使用道具 举报

11#
ID:228528 发表于 2018-1-8 14:13 | 只看该作者
看着挺详细,下载看看学习学习
回复

使用道具 举报

12#
ID:65332 发表于 2018-2-20 17:24 | 只看该作者
这个绝对是很好的东西啊,正需要的。谢谢分享
回复

使用道具 举报

13#
ID:371497 发表于 2018-7-14 15:11 | 只看该作者
请问你怎么进行设置的把启动代码放到了boot区
回复

使用道具 举报

14#
ID:25103 发表于 2018-7-18 23:45 | 只看该作者

不错,支持!!!
回复

使用道具 举报

15#
ID:337674 发表于 2018-8-31 23:11 | 只看该作者
看看先,谢谢
回复

使用道具 举报

16#
ID:281509 发表于 2018-9-16 17:38 | 只看该作者
谢谢群主
回复

使用道具 举报

17#
ID:281509 发表于 2018-9-16 17:40 | 只看该作者

看看先,谢谢
回复

使用道具 举报

18#
ID:318073 发表于 2018-10-25 00:53 | 只看该作者
谢谢楼主啊              
回复

使用道具 举报

19#
ID:24479 发表于 2019-5-30 16:39 | 只看该作者
下载币不够
回复

使用道具 举报

20#
ID:85043 发表于 2019-6-9 21:11 | 只看该作者


看看先,谢谢
回复

使用道具 举报

21#
ID:249748 发表于 2019-9-11 11:36 | 只看该作者



看看先,谢谢
回复

使用道具 举报

22#
ID:682277 发表于 2020-1-6 16:26 | 只看该作者
感谢分享,谢谢,学习学习
回复

使用道具 举报

23#
ID:884583 发表于 2021-2-17 19:48 | 只看该作者
不错,下载测试看看
回复

使用道具 举报

24#
ID:87088 发表于 2021-3-22 16:07 | 只看该作者
rgb175 发表于 2021-2-17 19:48
不错,下载测试看看

你测试成功了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表