- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一台 Atmel 的 ATXMega16a4u mcu,并尝试使用 avr-gcc 4.7.2 (Fedora 4.7.2-1.fc17) 编译代码。我收到此错误:
Unrecognized argument in option '-mmcu=atxmega16a4u'
所以我尝试使用 -mmcu=atxmega16a4 编译代码(最后没有“u”)。并得到一些“未声明的”错误:
error: 'ADC_CH_GAIN_DIV2_gc' undeclared (first use in this function)
avr-gcc 还不支持我的微 Controller 吗?是否有可能使其在 Fedora 上运行,避免使用 avr studio(和 windows)?
谢谢长
最佳答案
ATxmega16A4U 是 not supported by AVR-libc .您的 undefined symbol 存在 C 编译器抛出的错误。粗略浏览一下 Atmel 的网站,可以发现这两款微 Controller ATxmega16A4U 和 ATxmega16A4 是不同的设备,最显着的区别在于前者的 USB 接口(interface)。因此,在 avr/io.h
给出的包含文件中找到的一些寄存器描述对于 ATxmega16A4U 将不可用。这个问题的解决方案是创建一个新的头文件,其中包含该微 Controller 的必要定义。这会处理 libc 方面。对于编译器/链接器端,您可能必须修补 gcc 以采用正确的 -mmcu
选项并定义 avr/io.h
一般所需的符号。链接描述文件可能也是必需的,尽管粗略阅读 Atmel 的网站表明两个微 Controller 的内存布局相同,因此最后一步可能不是必需的。
关于linux - AVR-GCC 支持 ATXMega16a4u,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719688/
我是一名优秀的程序员,十分优秀!