geniusly111 发表于 2012-10-26 13:12:42

AVRSTUDIO 5.1如何烧写BOOT程序到BOOT区,而非0x0000

如题,我使用邵老师提供的通用AVR单片机BOOT程序。但邵老师使用的是
WinAVR版本:      20071221
AVR Studio版本:    4.13.571

而我只用到AVR STUDIO 5.1英文完全版。

现在发现boot程序没问题,也能烧写进去,但是会烧写到0x0000位置开始,也就是应用程序区。结果就会造成错误如下:
boot烧写进去后,接下来烧写应用程序bin文件,就会发现一直烧写失败。因为boot程序没有烧写到FLASH的BOOT区,所以之后烧写bin,会覆盖BOOT程序。
因此,第一个数据包都可以接收并写入FLASH,但是会覆盖boot程序,之后,从第二个数据包开始就都是接收错误了,因为boot程序没了

因此恳请高手教我如何才能将boot写到真正的BOOT位置区域?而非0x0000开始的FLASH区。

我的熔丝位都按照邵老师的做了,没有问题。

网上曾经提到好像要修改什么段地址?我烧写的失败是不是和这个有关?是不是和AVR STUDIO有关?

geniusly111 发表于 2012-10-26 14:13:59

无语,阿莫最近的确越来越冷清了啊,AVR起源的版块都木有人来解答了

geniusly111 发表于 2012-10-26 15:35:08

我曾经试过:

在AVRSTUDIO 5.1里面,项目属性里面,toolchain,右边有个memory settings,其中新增一个flash segment,新增内容如下:
.boot=0x7000

然后保存,然后重新编译项目,然后烧写,结果还是不行。

如果把.boot改为.bootloader,还是不行

yklstudent 发表于 2012-10-26 21:20:51

.text=0x7000试试
最后 我很想对楼主吐槽

geniusly111 发表于 2012-10-28 20:13:16

楼上的,我试过了,也8行啊!
附:我虽然土,但是我不吐槽

yklstudent 发表于 2012-10-28 22:03:36

5.1以下不知道怎么搞 不过6.0的可以这么做
以前的4.12等版本饿AS也是差不多的

这个也是从前辈们那里学来的

yklstudent 发表于 2012-10-28 22:05:44

主要就是要添加设置.text=BOOT字起始地址

geniusly111 发表于 2012-10-28 22:17:46

无语,我就是这样做的,5.1的设置几乎和你一样,呵呵,结果无效

geniusly111 发表于 2012-10-29 10:21:54

搞定了,无语,原来BOOT程序有点小bug,解决了。

但是还有一个问题,成功烧写BOOT后,再成功烧写应用程序后,如果继续重新烧写一次应用程序,就彻底失败了,BOOT程序一开始的密码接收模块就挂了,估计BOOT程序被毁了?

pilihuo81 发表于 2013-9-17 22:55:28

geniusly111 发表于 2012-10-29 10:21 static/image/common/back.gif
搞定了,无语,原来BOOT程序有点小bug,解决了。

但是还有一个问题,成功烧写BOOT后,再成功烧写应用程序 ...

回复楼主 我正在弄这个,怎么设置 我的也出现你开始的问题,怎么解决 告诉我一下

飞翔麦田 发表于 2014-5-9 16:32:34

yklstudent 发表于 2012-10-28 22:03
5.1以下不知道怎么搞 不过6.0的可以这么做
以前的4.12等版本饿AS也是差不多的



请问一下用AVDStudio5.1怎么设置熔丝啊?谢谢
页: [1]
查看完整版本: AVRSTUDIO 5.1如何烧写BOOT程序到BOOT区,而非0x0000