我正在尝试移植现在随Arduino 1.0 IDE一起提供的硬件串行库。我正在编译ATMega2560处理器并使用简单的“Hello World”示例测试Arduino USART库“HardwareSerial”,但我留下了这个奇怪的声音错误。
它告诉我我:attempt[ing] to use poisoned "SIG_USART0_RECV"
...我以前从未听说过这样的错误。我试图找出它的定义,eclipse给了我这个:
#define SIG_USART0_RECV _VECTOR(25)
找到了 iomxx0_1.h
。
然后从那里_VECTOR(n)
通过__vector_25
重定向到#define _VECTOR(N) __vector_ ## N
。但这些都在系统路径中,我认为它们仍然有效,因为当前的Arduino库仍然使用它们。
为什么他们会毒害自己的定义?在尝试编译项目之前,是否需要声明其他内容?
修改
我在iomxx0_1.h
中发现了毒药:#pragma GCC poison SIG_USART0_RECV
。那他们为什么要毒害这个?