I have problems with Arduino 1.0 while trying to comple a program. This is what I get as an error. I am getting this errors even on an empty project.
/home/user/projects/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:91:41: error: attempt to use poisoned "SIG_USART0_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:101:15: error: attempt to use poisoned "SIG_USART0_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:132:15: error: attempt to use poisoned "SIG_USART1_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:145:15: error: attempt to use poisoned "SIG_USART2_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:158:15: error: attempt to use poisoned "SIG_USART3_RECV"
I am running Gentoo Linux with kernel 3.0.6, avr-libc version 1.8.0, avrdude 5.5, binutils 2.22-r1, gcc-4.5.3-r2.
I have the same problem with Arduino-0022. I cannot understand where is the problem so I need your help and your suggestions.
It appears to be a problem with deprecated items in avr-libc v1.8.0.
I got this from the savannah site. I presume from past experience that "AVR_LIBC_DEPRECATED_ENABLE" is not defined in IDE V1.0.
Does someone know where these are defined? It appears to be by board type.
I am still checking in my spare time.
edit: I think I found the defines (avr/io.h), but the include files are by board type, and there are several. Knowing which board you have selected will help.
One more thing you should know...I will try about anything, so you must decide what you want to do.
Here is what I found. The main file was "../avr/io.h".
The Mega2560 includes the header "../avr/io2560.h".
That file includes the header "../avr/iomxx0_1.h", and this is an excerpt from that file. Note both the new and old format are defined. According to the defines in HardwareSerial.cpp, the new format will have precedence.
I am very impressed by the speed and quality of the reply and offered solutions.
There are two things I do not understand, and will be happy to learn:
How come this problem reared its head here, all of a sudden. Earlier today I built the
sketch I am working on, several times without a hitch.
This evening it started complaining about my use of prog_char, etc. elsewhere in the
code. It did not complain until this evening!
The only change I made was to add another library, supporting another piece of hardware.
There is no reference in the latest addition to the AVR_LIBC_DEPRECATED_ENABLE macro.
nor is there any mention of this macro anywhere in my code, or the sketch libraries.
Strange, is it not?
Why is the Arduino web site contain examples choke full of prog_this and prog_that?
2a. Why is the developer that checks in this message not provide a clear backwards competability
for a while. This is important as we can see from the "sudden" breakage.
Otherwise, I am as happy as a clam with Arduino et al.
prog_char is a deprecated variable (data type) in avr-libc v1.8.0 (newest version).
(edit2: You probably downloaded it with the last package upgrade from your repository without knowing it)
Here is the bug report and fix for the bug you mentioned: http://code.google.com/p/arduino/issues/detail?id=795
edit: To answer your last question, this is open source software. The developers do as good a job as one could expect, considering it is one group writing the avr-gcc compiler, another group writing the avr-libc library, and still another group writing the Arduino IDE. Sometimes, communication between the groups is not as good as it should be. But since it is open source (thankfully), users like me can dig into the code and help them out.
I have the same problem:
/home/user/projects/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:91:41: error: attempt to use poisoned "SIG_USART0_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:101:15: error: attempt to use poisoned "SIG_USART0_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:132:15: error: attempt to use poisoned "SIG_USART1_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:145:15: error: attempt to use poisoned "SIG_USART2_RECV"
/home/user/arduino-1.0/hardware/arduino/cores/arduino/HardwareSerial.cpp:158:15: error: attempt to use poisoned "SIG_USART3_RECV"
I've probably found a solution to this pretty annoying problem.
Since I'm running Debian wheezy and I'm pretty lazy i just put the following line as a third line into my Arduino.h
#define __AVR_LIBC_DEPRECATED_ENABLE__ 1
You can find the Arduino.h (at least on a linux system) under:
fmorgner:
I've probably found a solution to this pretty annoying problem.
Since I'm running Debian wheezy and I'm pretty lazy i just put the following line as a third line into my Arduino.h
#define __AVR_LIBC_DEPRECATED_ENABLE__ 1
You can find the Arduino.h (at least on a linux system) under:
/usr/share/arduino/hardware/arduino/cores/arduino
Hope that helps as a temporary fix
Just wanted to say thank. I've been trying to get code for my Mega 2560 building since switching to Eclipse for my IDE. Had my UNO up and running pretty easily but the Mega code wouldn't compile due to this very problem. Putting that line at the top of my Arduino.h file fixed the problem. Thank you!
It isn't working like it should.
I'm not sure if the modification has anything to do with it.
The upload completes without any errors now, but the mega doesn't work at all.
I get nothing on serial. It seems like the mega is either hanging, or isn't booting up.
The only way to fix it, is to upload the sketch using another computer.
perhaps a bug with mega on Arduino-1.0.4 or FreeBSD port.