请教一个关于avr熔丝位的配置问题
各位大佬,用avr mega328做了一个实验,对于bootrst这个熔丝位配置,默认是1,按照文档如果不使用bootload,设置为1,程序默认从0x0000开始运行。这个没有问题。
如果有bootload,并且设置了大小,那么需要把bootrst位置零。程序启动后从bootload启动。如果不设置 则无法通过bootload下载程序。
现在问题是如果没有预先把bootload写入到单片机,程序通过ISP写入单片机,然后又设置了bootrst。会出现什么情况。
我原以为程序程序应该无法执行,因为我觉得程序从bootload区启动,但是bootload区是清空的,程序应该死掉,但是实际上不管bootrst设置成什么值,都能正常运行。
不知道哪里理解错了。
但是这个我在手册里面也没有找到相关说明,请各位大佬给指点一下原因。
FF全当NOP renpeng009672 发表于 2020-4-16 16:36
FF全当NOP
我原来也考虑这个问题
但是
avrNOP 的指令码好像是 0000 0000 0000 0000
不是 FF
FFH 不是 AVR 标准的 NOP,但是 AVR 也不知道要干什么,大多数都选择了 NOP。
不排除将来某些 AVR 会把 FFH 识别成 HardFault 之类东西 t3486784401 发表于 2020-4-16 19:35
FFH 不是 AVR 标准的 NOP,但是 AVR 也不知道要干什么,大多数都选择了 NOP。
不排除将来某些 AVR 会把 FF ...
谢谢。
你这么讲大概就明白了。
但是为了不出错还是按照要求设置。
请问这个有文档出处吗。 dongdaxing 发表于 2020-4-16 21:39
谢谢。
你这么讲大概就明白了。
但是为了不出错还是按照要求设置。
都是实际的经验,一般不推荐 AVR 执行未知指令。 本帖最后由 brother_yan 于 2020-4-20 09:40 编辑
大概就是nop,以前发现过
页:
[1]