历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2018年10月15日 | AVR使用范例--使用Bootloader 升级芯片内程序详解

发布者:静默思考 来源: eefocus关键字:AVR  Bootloader  升级 手机看文章 扫描二维码
随时随地手机看文章

Bootloader是flash中高地址的一个程序区域,通过它可以实现程序的运行控制,程序更新等。本页给出的是通过串口实现在线更新的方法。程序编译环境:icc avr 6.31。


如果你使用Atmega16芯片,7.3728M晶振,1024的bootloader区,19200的波特率,那么你直接使用下面的hex文件就可以了,下载hex文件。
本站的开发板内,预制这个hex文件,可以按照本页的方法用串口线直接更新程序。


否则,你需要对程序进行调整,然后重新编译Bootloader的hex文件,下载软件包,软件中需要更改的部分:


  1. 芯片的类型


  2. #include //选择对应的芯片


  3. Bootloader区的大小,和ICC的option相对应。


  4. #define BootSize 'd' //1024


  5. 串口的通讯频率设置,根据晶振大小对应的进行修改。


  6. #define BAU 23 // 7.3728M 19200(计算方法如下图)


下面这个界面计算出UBBR的值正确的前提是CPU选项中的芯片类型和晶振都选择正确。


0


程序修改之后,进行如下操作,操作详细步骤说明:


1、在ICC中设置设置bootloader选项。


设置ICC的编译选项


2、编译,这里很容易出问题,因为你的ICC的安装路径,以及下载后存放文件的路径可能会不同,所以刚开始的时候编译可能会出错,解决的方法,Projects—>Options —>Paths 把路径修改为正确的路径,然后再编译。


3、用ISP下载线或JTAG调试器把生成的hex文件烧写到单片机里。


使用JTAG或ISP下载程序


4、配置熔丝,需要用ISP或者JTAG来完成。


编辑reset熔丝位


其他熔丝位请参考其他文献,在此不作详诉。Boot loader在flash中对应的是高位字节, 选中此熔丝的目的是让程序在复位时从boot loader开始运行,而不是0x0000。(此处再配置熔丝选择BOOTSZ=1024)


然后打开AVR.EXE


上位机操作说明:


1、确保所要升级程序的单片机与PC机的RS232接口连接正常;


2、打开本软件,选定所使用的通讯端口,选定波特率(本软件默认为19200bps,对应单片机使用7.3728MHz晶振)


3、点击 “打开串口” 按钮;


4、请您复位单片机或断电后重新启动单片机系统,此时在芯片信息栏里会出现您所要操作的单片机的相关信息;

其中版本可能显示与实际版本不符,但不影响使用;


得到芯片的信息

5、点击 “载入文件” 按钮,将您要更新的程序载入,完成后会在数据区正下方出现数据占用的页数; 每次都需重新点击“载入文件”选择相应的hex文件,不然下一步无法继续。


载入文件


6、点击 “下载程序”按钮开始下载,测试在总页数旁边会实时显示已经完成的页数,请耐心等待;


7、当所有程序都更新完后,实时显示的页数与总页数相等,并在信息框中会显示 “程序下载已完成”;


程序下载完成


8、点击 “退出BOOT”按钮,此时单片机跳转到0x0000开始运行从串口写入的程序,更新完毕。


想写入下一个程序时,再次点载入文件,然后复位一下单片机,就可以再出现第5步之后的界面了。


说明:上位机借用了别人的软件,此举是为了大家共同学习所用。在单片机复位,如接受不到上位机发出的命令,则自动转到应用程序区运行。


Ps: 此bootloader是由上位机通过串口发出命令控制,在实际的操作中完全可以模拟此程序写出满足自己要求的逻辑炸弹或相应的更新软件。自己做的测试程序 小灯 可以正常显示。


关键字:AVR  Bootloader  升级 引用地址:AVR使用范例--使用Bootloader 升级芯片内程序详解

上一篇:AVR ELF文件的生成与烧录
下一篇:AVR Mega16 PAL/NTSC制式 B/W 信号模拟

推荐阅读

自2016年谷歌的AlphaGo击败围棋世界冠军李世石起,人工智能的热度就一直居高不下。人工智能绝不仅仅只会下棋,其已经逐渐渗透到了我们生活的各个方面。而作为群众呼声最高、行业寄予厚望和相对成熟的领域——医疗人工智能,被认为最有应用前景。一、国家人工智能相关政策2015年起,国家陆续出台了推动医疗人工智能领域发展的一系列政策,对于人工智能在医...
* 【编译环境】: ICCAVR * 【函数功能】: 1602字符显示 * 【晶 振】: 8M * 【芯 片】: ATMEGA16A #include<iom16v.h>#define uchar unsigned char #define uint unsigned int uchar wz[]={"mcustudio1com-cn"};uchar gd[]={"Tel:15980xx5601"};#define uchar unsigned cha...
10月15日,合力泰发布业绩预告称,公司预计2020年前三季度归属于上市公司股东的净利润为12,200万元~18,200万元,同比下降72.78%~81.75%,上年同期盈利为66,854.32万元。其中,第三季度(7-9月)实现归属于上市公司股东的净利润预计为1,538.36万元~7,538.36万元,同比下降49.12%-89.62%,上年同期盈利为14,815.39万元。合力泰表示,由于国际新冠肺炎疫情...
新加坡 - Media OutReach - 2021年10月15日 - 领先的全球企业应用公司IFS宣布Andy Watts为集团的核心新成员。这位新任亚洲(包括东盟、印度、斯里兰卡、韩国和中国)副总裁在IT行业拥有超过20年的经验,在销售和软件即服务领域拥有丰富的知识和领导能力。Andy的主要专业领域包括建立高绩效团队,以卓越的工作文化为后盾,超越自我。他的专业领域和...

史海拾趣

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

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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