Набор инструментов Avrstudio 4.19 с использованием gcc 4.7.x

Я использую компиляцию в стиле makefile для моих проектов ATMEGA. Как наследие Arduino IDE, цепочка инструментов разработки в основном нацелена на gcc 4.3.2. Avrstudio 4.19 + Jtagice MKII CN + gcc 4.3.2 + make кое-как работает. Но моя проблема в том, что gcc 4.3.2 довольно глючный. я вижу напр. раздражают случайные баги, связанные с оптимизацией энергонезависимых переменных, кэшированные значения регистров не всегда записываются обратно в память, а также неправильное предупреждение. Следовательно, использование gcc 4.7.0 решает проблему, но я не могу загрузить такую ​​программу в Avrstudio 4.19, Avrstudio всегда аварийно завершает работу при загрузке hex. Кто-нибудь пробовал и преуспел с этим набором инструментов?

Примечание: я не хочу переходить на более высокую версию Avrstudio, потому что размер увеличивается и, вероятно, приносит новые проблемы.

Спасибо


person TMa    schedule 14.02.2014    source источник


Ответы (2)


Ответ A Erasmus мог работать для avr-gcc 4.7.x; но я обнаружил, что в avr-gcc 4.8.1, предоставленном последними версиями Atmel AVR Toolchain, AvrStudio4 не загружает символы отладки.

Я заметил, что в файле ELF, сгенерированном avr-gcc 4.8.1, отсутствовал раздел .debug-pubnames, и что использование параметров отладки -gdwarf-2 -gstrict-dwarf -gpubnames восстановило отсутствующий раздел, что позволило AvrStudio4 отображать символы отладки.

person Nigel Winterbottom    schedule 05.03.2015
comment
Да! Это решение работает с последней версией avr-gcc 6.1.x. - person TMa; 19.11.2016

Если кто-то использует последнюю цепочку инструментов avr-gcc, доступную от Atmel, тогда AVR Studio 4 дает сбой при попытке загрузить файл .elf. Чтобы исправить это, измените флаги отладки с avr-gcc на -gdwarf-2 -gstrict-dwarf. Затем можно загружать и отлаживать программы в AVR Studio 4 как обычно.

person A Erasmus    schedule 20.03.2014
comment
Хм, а gdwarf флаги совсем не помогают. AvrStudio продолжает падать, когда выполняется отладка Start. Может это связано с JTAG программатором (у меня китайский клон JTAGICE mkII-CN)? Я не могу это доказать, потому что при отключении появляется диалоговое окно, т.е. я не могу сказать, на какой именно фазе он падает. Я также не знаю, какие данные передаются в JTAGICE. - person TMa; 23.03.2014