dongdaxing 发表于 2020-4-16 16:13:19

请教一个关于avr熔丝位的配置问题

各位大佬,
        用avr mega328做了一个实验,对于bootrst这个熔丝位配置,默认是1,按照文档如果不使用bootload,设置为1,程序默认从0x0000开始运行。这个没有问题。
        如果有bootload,并且设置了大小,那么需要把bootrst位置零。程序启动后从bootload启动。如果不设置 则无法通过bootload下载程序。

        现在问题是如果没有预先把bootload写入到单片机,程序通过ISP写入单片机,然后又设置了bootrst。会出现什么情况。

        我原以为程序程序应该无法执行,因为我觉得程序从bootload区启动,但是bootload区是清空的,程序应该死掉,但是实际上不管bootrst设置成什么值,都能正常运行。
        不知道哪里理解错了。
        但是这个我在手册里面也没有找到相关说明,请各位大佬给指点一下原因。
       

renpeng009672 发表于 2020-4-16 16:36:06

FF全当NOP

dongdaxing 发表于 2020-4-16 19:10:48

renpeng009672 发表于 2020-4-16 16:36
FF全当NOP

我原来也考虑这个问题
但是
avrNOP 的指令码好像是   0000 0000 0000 0000
不是 FF

t3486784401 发表于 2020-4-16 19:35:32

FFH 不是 AVR 标准的 NOP,但是 AVR 也不知道要干什么,大多数都选择了 NOP。

不排除将来某些 AVR 会把 FFH 识别成 HardFault 之类东西

dongdaxing 发表于 2020-4-16 21:39:40

t3486784401 发表于 2020-4-16 19:35
FFH 不是 AVR 标准的 NOP,但是 AVR 也不知道要干什么,大多数都选择了 NOP。

不排除将来某些 AVR 会把 FF ...

谢谢。
你这么讲大概就明白了。
但是为了不出错还是按照要求设置。
请问这个有文档出处吗。

t3486784401 发表于 2020-4-16 22:34:38

dongdaxing 发表于 2020-4-16 21:39
谢谢。
你这么讲大概就明白了。
但是为了不出错还是按照要求设置。


都是实际的经验,一般不推荐 AVR 执行未知指令。

brother_yan 发表于 2020-4-20 09:37:57

本帖最后由 brother_yan 于 2020-4-20 09:40 编辑

大概就是nop,以前发现过
页: [1]
查看完整版本: 请教一个关于avr熔丝位的配置问题