Исполняемый файл AVR-GCC Flashing ничего не делает, работает только объектный файл.

У меня проблема, которую я не понимаю.

Итак, у меня есть основной файл (main.c), который просто мигает парой светодиодов.

Выполнение следующих действий включает светодиоды микроконтроллера:

$ avr-gcc  -mmcu=atmega128rfa1    -Wall -Wextra    -DBOARD_MEGA128RFA1 -DCPU_ATMEGA128RFA1 -o main.o -c main.c

$ sudo avrdude -v -F -c jtag3isp -p atmega128rfa1  -B 1 -U flash:w:main.o:r

Однако выполнение вышеуказанного, но объединение файла .o в исполняемый файл и его перепрошивка не приводят к включению светодиодов. Шаги, которые я делаю, чтобы сделать и прошить исполняемый файл:

$ avr-gcc -o uJ main.o  
$ sudo avrdude -v -F -c jtag3isp -p atmega128rfa1        -B 1 -U flash:w:uJ:r

Я не понимаю, почему это так. Любая помощь, которую вы могли бы предоставить?

Редактировать: это для atmega128rfa1, мигает из Ubuntu с gcc версии 4.8.2 (GCC).


person Community    schedule 04.04.2016    source источник
comment
Вы пробовали avr-gcc -mmcu=atmega128rfa1 -o uJ main.o?   -  person hlovdal    schedule 04.04.2016


Ответы (1)


Ага! Я нашел проблему.

После просмотра связанных файлов и на avrfreaks эта ссылка объясняет проблему: ссылка

Решение просто добавляет следующую строку перед загрузкой:

avr-objcopy --change-section-lma .eeprom=0 -O binary uJ uJ
person Community    schedule 04.04.2016