0

I have used a makefile to build my code and I have produced an ELF file.

To make it understandable for my attiny85, I usually use avr-objcopy -O ihex -R .eeprom -R .fuse main.elf main_all.hex. I get a hex file containing fuse settings. I flash the hex file with avrdude -p t85 -c avrispmkII -P usb -U flash:w:main_all.hex. I am using an avrispmkII connected via a working and tested SPI.

This time I got an error.

ERROR: address 0x820003 out of range

I guess because I've played in the code with fuses that this is the problem. According to Contiki compile error, " ERROR: address 0x820003 out of range at line 1740 of...", I've noticed that you can make avrdude create a hex without fuses.

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

This has also worked and now lets the attiny85 flash completely normally.

Now the real question.

How do I still get the fuses on the attiny85?

Is there any way to see which fuse I am setting how, before I set the fuses? I ask explicitly before, because I have no experience in flashing with 12V (HV) and this arvmkII synonymous not true (Yes, I should look in the data sheet whether he can).

My main concern is to get the fuses on the attiny. I am a graduate electrical engineer who is programming in the spare time. So I'm fine with overprivileged links and the magic command.

(Rough translation from the German original)

Community
  • 1
  • 1
Hert
  • 11
  • 1
  • 3

1 Answers1

1

You can set the fuse bytes on the command-line of avrdude. example

There are only 3 fuse bytes on the attiny: low, high, and extended. They can be found on p. 148 of the datasheet.

Just compute the fuse setting as a hex number and include -U switches like

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

for the extended, high, and low fuses.

uncleO
  • 7,997
  • 2
  • 20
  • 37