AVR-GCC支持ATXMega16a4u

时间:2013-07-18 09:32:42

标签: linux microcontroller avr avr-gcc atmel

我有Atmel的ATXMega16a4u mcu并尝试使用av​​r-gcc 4.7.2(Fedora 4.7.2-1.fc17)编译代码。我收到了这个错误:

  

选项'-mmcu = atxmega16a4u'

中无法识别的参数

所以我尝试用-mmcu = atxmega16a4编译代码(最后没有'u')。并得到一些“未声明”的错误:

  

错误:'ADC_CH_GAIN_DIV2_gc'未声明(首次使用此功能)

avr-gcc还不支持我的微控制器吗?有没有可能让它在Fedora上工作,避免使用avr studio(和windows)?

由于 长

1 个答案:

答案 0 :(得分:2)

ATxmega16A4U是not supported by AVR-libc。您的未定义符号存在由C编译器抛出的错误。粗略阅读Atmel的网站显示,两个微控制器ATxmega16A4U和ATxmega16A4是不同的设备,最显着的区别是前者的USB接口。因此,avr/io.h给出的包含文件中的一些寄存器描述对于ATxmega16A4U来说不会很容易获得。该问题的解决方案是创建一个新的头文件,其中包含该微控制器的必要定义。这照顾了libc方面。对于编译器/链接器端,您可能必须修补gcc以采用正确的-mmcu选项并定义avr/io.h期望的符号。也可能需要链接器脚本,尽管粗略阅读Atmel的网站表明两个微控制器的内存布局相同,因此最后一步可能没有必要。