gracialee 发表于 2013-4-18 22:25:21

M8的代码镜像,BOOTSZ1.0为00,BOOT区应该是0C00,可这里是1C00哦?

本帖最后由 gracialee 于 2013-4-18 22:27 编辑


gracialee 发表于 2013-4-19 10:21:28

看样子也只有马老师才会回答这种蛋疼而又8褂的问题了。如今连马老师都不屑一顾,也只有自己去啃书本去。。。

skynet 发表于 2013-4-19 10:33:32

茴香豆的茴字有几种写法
茴 ,回,囘,囬

machao 发表于 2013-4-20 14:57:15

gracialee 发表于 2013-4-19 10:21 static/image/common/back.gif
看样子也只有马老师才会回答这种蛋疼而又8褂的问题了。如今连马老师都不屑一顾,也只有自己去啃书本去。。 ...

这个下载的上位机软件我没有用过,不能说明原因的。

我会如此这般:使用官方的工具读出熔丝位的设置,以及FASH中的数据,看是否正确(前提是代码正常运行),如果正常,那就是LZ使用的上位机软件的BUG。芯片不会错的。

gracialee 发表于 2013-4-22 17:21:25

machao 发表于 2013-4-20 14:57 static/image/common/back.gif
这个下载的上位机软件我没有用过,不能说明原因的。

我会如此这般:使用官方的工具读出熔丝位的设置,以 ...

大师不愧就是大师,一句话就能点开心中纠结的疑团。本不想作更深入的尝试这回香豆了,但心着实放心不下,又做了一测试。

gracialee 发表于 2013-4-22 17:24:20


这个是AVR_FIGHT的记录。


这个是智峰的读出记录。


这个是他们读出的熔丝位,从两软件来看,一致。 按马老师的要求,该程序为一LED亮灯程序,程序烧入后能正常运行。(亮灯现象来看)

gracialee 发表于 2013-4-22 17:27:21

这里的疑问是:既然熔丝位设置从启动区启动,那么这段代码应该设置在启动区,BOOTSZ1.0设置成10,应该是在:
***************************************
BOOTSZ1/0:引导程序大小及入口    00      
00:1024Word/0xc00;
01:512Word/0xe00;
10:256Word/0xf00;
11:128Word/0xf80
***************************************
0xf00处,而记录上写在了0000处。何故?---------要想把程序烧在0XF00处,如何处理?

machao 发表于 2013-4-22 21:07:48

熔丝位设置从boot区启动,并不是意味着你的代码下载就一定放在BOOT区。
正确的方法是:
1、确定BOOT区的大小,比如从0C00H开始;
2、编写代码时,设置你的代码是BOOT代码,启动地址为0C00H(不同的编译器设置稍微有差别),然后编写代码,编译成HEX文件,此时的HEX文件将代码开始定位在0C00H处。
3、下载代码,并设置熔丝从0C00H处执行。

gracialee 发表于 2013-4-23 17:33:08

machao 发表于 2013-4-22 21:07 static/image/common/back.gif
熔丝位设置从boot区启动,并不是意味着你的代码下载就一定放在BOOT区。
正确的方法是:
1、确定BOOT区的大 ...

感谢马老师百忙中的解答,基本搞清楚了马老师的解释,但还有一事未尽:

又做了一实验,LED亮灯程序,程序中没设置任何有关BOOT区的代码,CA_AVR 版本为2.04.4a,现将代码烧入M8,熔丝设置如下:

熔丝位BOOTSZ1.0为01,启动区为0X0E00,但0X0E00处无代码,应该全是FF,可LED程序依然运行正常,何解?从图中可以看出,设置了启动区启动熔丝位,但程序依然从0000运行了。。。。
页: [1]
查看完整版本: M8的代码镜像,BOOTSZ1.0为00,BOOT区应该是0C00,可这里是1C00哦?