最近在AVR通用Bootloader中发现了两个比较大的bug,在某些情况下会引起一些问题。因为完整的更新文件还没有整理,所以先发布一下错误修正:
Bug1:
在SafeMode下,跳转到Bootloader的地址计算错误。
解决方法:
Bug2:
这个错误是国外网友Ben Wilson发现的,是一个比较严重的错误,在CRC校验错误时,将引起下载失败。在这种情况下,原来应该可以通过重新发送数据解决问题的,但因为这个bug,使得重发机制失效,容易出现“重试次数太多”。引起的原因是因为没有修正缓冲区指针,使得即使发送了新数据也没有保存到缓冲区的正确位置。
解决方法:
在文件bootldr.c中,在第475和499行(V4.5版,其它版本行数可能不同),增加如下代码:
用户377235 2012-9-6 09:43
用户403664 2012-6-21 10:15