我正在尝试移植现在随 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
via #define _VECTOR(N) __vector_ ## N
。但这些都在系统路径中,我认为它们仍然有效,因为当前的 Arduino 库仍在使用它们。
他们为什么要毒害自己的定义?在尝试编译项目之前,我是否需要声明其他内容?
编辑:
iomxx0_1.h
我在陈述中发现了毒药: #pragma GCC poison SIG_USART0_RECV
。那么他们为什么要下毒呢?