使用gcc 4.7.x的Avrstudio 4.19工具链

时间:2014-02-14 23:43:24

标签: gcc avr atmel atmega avr-studio4

我正在使用我的ATMEGA项目的makefile样式编译。作为Arduino IDE的遗产,develepment工具链主要针对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在加载十六进制时总是崩溃。有没有人试过这个工具链?

注意:我不想使用更高的Avrstudio版本,因为尺寸增加并可能带来新问题。

由于

2 个答案:

答案 0 :(得分:1)

如果使用Atmel提供的最新avr-gcc工具链,则AVR Studio 4在尝试加载.elf文件时会崩溃。要解决此问题,请将调试标记从avr-gcc更改为-gdwarf-2 -gstrict-dwarf。然后就可以正常加载和调试AVR Studio 4下的程序。

答案 1 :(得分:1)

A Erasmus答案可能适用于avr-gcc 4.7.x;但是我发现avr-gcc 4.8.1是由最新版本的Atmel AVR工具链提供的,AvrStudio4没有加载任何调试符号。

我注意到avr-gcc 4.8.1生成的ELF文件中缺少.debug-pubnames部分,并且使用-gdwarf-2 -gstrict-dwarf -gpubnames调试选项恢复了丢失的部分,然后允许AvrStudio4显示调试符号