原创 修正AVR通用Bootloader的两个bug

2012-6-3 21:33 2459 6 8 分类: MCU/ 嵌入式

最近在AVR通用Bootloader中发现了两个比较大的bug,在某些情况下会引起一些问题。因为完整的更新文件还没有整理,所以先发布一下错误修正:

Bug1:

 

在SafeMode下,跳转到Bootloader的地址计算错误。

解决方法

将文件Bootldr.c中的语句
  (*((void(*)(void))(BootStart)))();       //跳转到 bootloader
改为
  (*((void(*)(void))(BootStart/2)))();     //跳转到 bootloader
共有三处。
 

Bug2:

这个错误是国外网友Ben Wilson发现的,是一个比较严重的错误,在CRC校验错误时,将引起下载失败。在这种情况下,原来应该可以通过重新发送数据解决问题的,但因为这个bug,使得重发机制失效,容易出现“重试次数太多”。引起的原因是因为没有修正缓冲区指针,使得即使发送了新数据也没有保存到缓冲区的正确位置。

解决方法

在文件bootldr.c中,在第475和499行(V4.5版,其它版本行数可能不同),增加如下代码:

 

            bufptr -= BUFFERSIZE;             //修改缓冲区地址
 
 
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2012-9-6 09:43

很好~~

用户403664 2012-6-21 10:15

谢谢分享!
相关推荐阅读
shaoziyang 2017-12-15 11:06
《micropython 入门指南》正式出版了
第一本专门介绍MicroPython的中文图书《MicroPython入门指南》由电子工业出版社正式出版了(各大书店和网络书店都有)。MicroPython是近年开源社区中最热门的项目之一,它功能强大...
shaoziyang 2017-11-01 15:30
《MicoPython入门指南》一书即将发行
《MicoPython入门指南》一书即将发行,这是第一本专业介绍MicroPython的中文书籍,请大家多关注和支持。​​...
shaoziyang 2017-07-13 19:50
micro:bit 专用电池扩展板
最近Microbit这么火,就想着要做点什么,于是就有了这个Microbit的专用电池扩展板。它完美配合原版的microbit,可以为microbit增加电池、蜂鸣器功能,功能上超过 MI:power...
shaoziyang 2017-06-13 09:09
用pyboard的dac播放音乐
官方的PyBoard带有DAC功能,使用DAC,我们可以播放简单的音乐。 先准备好两根铜丝,一个有源音箱,一个音频线。 然后从官方网站下载两个文件: http://micropython.org/...
shaoziyang 2017-06-13 09:03
microbit巡线小车 BoBBoT
BoBBoT 是一个使用 BBC micro:bit 控制的巡线小车套件,它很容易组装。 它特别为儿童设计,让孩子可以通过实践学习计算机科学概念。使用 BoBBoT 可以学习: 算法设计 (流程图和...
shaoziyang 2017-06-12 08:29
micropython升级到了 1.9.1
micropython升级到了 1.9.1,主要改进有: v1.9.1 修复了 stm32 的 USB 存储, lwIP 绑定和 VFS 问题 This release provides an imp...
EE直播间
更多
我要评论
2
6
关闭 站长推荐上一条 /3 下一条