2013-07-18 45 views
0

我有一個Atmel的ATXMega16a4u單片機,並嘗試用avr-gcc 4.7.2(Fedora 4.7.2-1.fc17)編譯代碼。我得到這個錯誤:AVR-GCC支持ATXMega16a4u

Unrecognized argument in option '-mmcu=atxmega16a4u'

於是,我就編譯-mmcu = atxmega16a4代碼(不到底「U」)。並得到一些'未申報'的錯誤:

error: 'ADC_CH_GAIN_DIV2_gc' undeclared (first use in this function)

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

感謝 龍

回答

2

的ATxmega16A4U爲not supported by AVR-libc。您的未定義符號存在C編譯器拋出的錯誤。粗略閱讀Atmel網站顯示,兩款微控制器ATxmega16A4U和ATxmega16A4是不同的設備,其中最突出的區別是前者具有USB接口。因此,對於ATxmega16A4U,在avr/io.h給出的包含文件中找到的某些寄存器描述不會很容易得到。解決這個問題的方法是創建一個包含這個微控制器必要定義的新頭文件。這照顧了libc端。對於編譯器/鏈接器端,您可能需要修補gcc以採用正確的-mmcu選項,並一般定義avr/io.h預期的符號。鏈接器腳本也可能是必要的,但粗略閱讀Atmel的網站表明兩個微控制器的內存佈局是相同的,所以最後一步可能不是必需的。