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

发布者:陈晨5566最新更新时间:2019-10-14 来源: eefocus关键字:ATMEL系列  MCU  在线升级  bootloader 手机看文章 扫描二维码
随时随地手机看文章

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


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

实现,相信大家都能看明白,这里就直接上传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机就需要一个应用软件。


接下来说一下这个应用软件的的使用,下面是针对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 类似的结果。




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


关键字:ATMEL系列  MCU  在线升级  bootloader 引用地址:ATMEL系列MCU在线升级bootloader固件源码及操作过程

上一篇:LCD1602&DS1302时钟测试程序+仿真图分享
下一篇:avr单片机智能频率计的设计

推荐阅读最新更新时间:2024-11-07 06:49

MCU系统中如何利用ADC技术进行数据采集
使用MCU的系统设计人员受益于摩尔定律,即通过更小封装、更低成本获得更多的丰富特性功能。嵌入式系统设计人员和MCU厂商关心数据采集系统的三个基本功能:捕获、计算和通信。理解全部功能对设计大有帮助,本文将主要关注数据采集系统的捕获阶段。 捕获 复杂的混合信号MCU必须能够从模拟世界中捕获某些有用信息,并且能够把连续时间信号转换成离散的数字形式。模数转换器(ADC)是完成这项任务最重要的MCU外设,因此ADC的性能往往决定何种MCU适用于何种应用。MCU也能够通过各种串行或并行数字I/O接口捕获来自外部信号源的数字形式的系统信息。 计算 信号捕获后,需要对捕获数据进行某些处理;有时仅仅需要模数转换,但是更多情况下必须要对捕获的数据样本
[电源管理]
在<font color='red'>MCU</font>系统中如何利用ADC技术进行数据采集
自制51单片机常用头文件(st7920串行方式)
/*-------------------------------------------------------------------------- ST7920.H The user function is C51. Copyright (c) 1988-2004 Keil Elektronik GmbH sum zhaojun All rights reserved. --------------------------------------------------------------------------*/ // 串行方式 #ifndef __ST7920_H__ #define __ST7920_H__ #
[单片机]
MCS96系列单片机的一种大容量的外部RAM扩展技术
    摘要: 在MCS96系列单片机的应用开发中,我们经常会遇到需要大容量的外部RAM的情况, 本文针对MCS96系列单片机的内存体系结构特点介绍了的一种段式管理的大容量的外部RAM扩展技术,此技术由于使用方便具有很高的实用性。     关键词: 单片机 段 物理地址 逻辑地址 1 引言     MCS96系列单片机是一种16位字长的比MCS51系列单片机功能更全,性能更高的单片机,它在仪器仪表,过程控制等若干领域应用极为广泛。在采用MCS96系列单片机的应用开发中我们碰到一个难题,当需要大容量的数据存储时,外部数据存储器的扩展如采用与MCS51系列单片机同样的方法则无法工作,因为其内存体系结构
[工业控制]
SPMC65P2408A单片机在报警主机中的应用
引 言:   随着人们生活水平的提高,安全意识也在不断增强,这为安防行业提供了良好的发展环境和广阔的发展空间。最近几年统计数字显示:国内安防产品行业平均以20%-30%的年增长率迅速成长。安防市场的年产值为300-400亿元。就北京地区来讲,安防市场容量1996年为5亿元,1997年6.25亿元,1998年由于大力推行金融网建设激增至13.6亿元,1999年9.2亿元,近几年则一直保持在10亿元以上。由于奥运设施应在2006年以前基本建成,因此专家指出,在2004年到2005年安防市场将迎来总体高峰,对安防产品制造、销售和工程安装都是不可多得的商机。   安防产品的网络化和无线化是发达国家安防发展的方向,也将成为我国安防业的发展方
[单片机]
SPMC65P2408A<font color='red'>单片机</font>在报警主机中的应用
单片机防解密
1 引言   单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花
[单片机]
单片机常用芯片MAX7219驱动
MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。。它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。MAX7219的外部引脚分配如图1所示及内部结构如图2所示。
[单片机]
<font color='red'>单片机</font>常用芯片MAX7219驱动
8051单片机(STC89C52)以轮询方式实现串口通信(51接收数据后发送回PC端)
#include STC89C5xRC.H int main() { char buf; TMOD = 0x21; //设定timer1的工作模式 SCON = 0x50; //设置串行通信格式 TH1 = 0xE6; //设定timer1的初始值 TL1 = 0xE6; TR1 = 1; //开启timer1 while(1) { if(RI == 1) { //如果收到数据 buf = SBUF; RI = 0; SBUF = buf;//将收到的数据发回去 while(TI == 0); //等待数据发送完毕 TI = 0;
[单片机]
8051<font color='red'>单片机</font>(STC89C52)以轮询方式实现串口通信(51接收数据后发送回PC端)
怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器呢
一:功能 基于STM32单片机智能手环心率计步器体温显示设计 本设计由STM32F103C8T6单片机核心板电路+ADXL345传感器电路+心率传感器电路+温度传感器+lcd1602电路组成。 1、通过重力加速度传感器ADXL345检测人的状态,计算出走步数、走路距离和平均速度。 2、通过心率传感器实时检测心率,通过温度传感器检测温度。 3、lcd1602实时显示步数、距离和平均速度、心率以及温度值。 二:电路图 三:源代码 #include led.h #include delay.h #include sys.h #include usart.h #include #include timer.h #i
[单片机]
怎样去设计一种基于STM32<font color='red'>单片机</font>的智能手环脉搏心率计步器呢
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved