1

我正在使用 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 中,加载 hex 时 Avrstudio 总是崩溃。有没有人尝试过这个工具链并成功了?

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

谢谢

4

2 回答 2

1

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

于 2014-03-20T13:45:12.637 回答
1

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

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

于 2015-03-05T10:30:45.657 回答