Avrdude .hex带保险丝

时间:2017-01-10 20:37:00

标签: avr avrdude winavr

我使用了makefile来构建我的代码,并且我已经生成了一个ELF文件。

为了使我的attiny85易于理解,我通常使用avr-objcopy -O ihex -R .eeprom -R .fuse main.elf main_all.hex。我得到一个包含保险丝设置的hex文件。我用avrdude -p t85 -c avrispmkII -P usb -U flash:w:main_all.hex刷新hex文件。  我正在使用通过工作和测试SPI连接的avrispmkII。

这次我收到了一个错误。

ERROR: address 0x820003 out of range

我猜是因为我在代码中使用了保险丝来解决这个问题。根据{{​​3}}, 我注意到你可以让avrdude创建一个没有保险丝的十六进制。

avr-objcopy -O ihex -R .eeprom -R. Fuse main.elf main_ohne.hex

这也有效,现在让attiny85完全正常闪光。

现在是真正的问题。

我如何在attiny85上获得保险丝?

在我设置保险丝之前,有什么方法可以看出我设定的保险丝是什么?我之前明确要求,因为我没有使用12V(HV)闪存的经验,这个arvmkII同义词不是真的(是的,我应该在数据表中查看他是否可以)。

我主要担心的是保险丝。我是一名在业余时间编程的电气工程师。所以我对超级链接和魔术命令很好。

(来自Contiki compile error, " ERROR: address 0x820003 out of range at line 1740 of..."的粗略翻译)

1 个答案:

答案 0 :(得分:1)

您可以在avrdude的命令行中设置fuse字节。 example

attiny上只有3个熔丝字节:低,高和扩展。它们可以在p上找到。 datasheet中的148个。

只需将保险丝设置计算为十六进制数,并包含-U开关,如

-U efuse:w:0xff:m  -U hfuse:w:0x89:m  -U lfuse:w:0x2e:m

用于扩展,高熔断器和低熔断器。