我正在使用我的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版本,因为尺寸增加并可能带来新问题。
由于
答案 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显示调试符号