So, I recently got one of the Copper boards from http://store.stackfoundry.com/de...
And, it has the USB DFU (along with the DFU button).
My platform is Ubuntu 9.10 and I got all of the AVR tools installed (compiler and the like). I tried AVR Studio a go, but I definitely prefer my good ole' makefiles.
I really want to use the USB DFU to program my device as in its final casing, it would be very difficult to get any programming cables in. Also, I am very used to debugging via blinking LEDs and wouldn't be able to use any sort of device debugger anyway.
There's three big questions:
1) The suggested code compilation that AVRStudio tries to go with is:
# avr32-gcc -O2 -Wall -c -fmessage-length=0 -mpart=uc3b1256 -ffunction-sections -masm-addr-pseudos -ohello2.o ../hello2.c # avr32-gcc -mpart=uc3b1256 -Wl,--gc-sections --rodata-writable -Wl,--direct-data -ohello2.elf hello2.o
I then convert it to intel hex...
# avr32-objcopy -O ihex hello2.elf hello2.hex
Then, I try burning it...
# sudo dfu-programmer at32uc3b1256 flash hello2.hex Bootloader and code overlap. Use --suppress-bootloader-mem to ignore
This warning message scares me... a LOT. I read a lot and people were telling other people to relocate things to 0x80002000 and whatnot. Do I need to do this? Can I accomplish this with --change-section-vma? do I need to modify linker scripts that are inside of the AVR toolchain?
Bigger deal is I jut want to make sure whatever I do, I don't blow away the DFU bootloader.
#2: When programming my device with firmware that uses USB, is there any risk of blowing away my DFU bootloader?