chipKIT® Development Platform

Inspired by Arduino™

Arduino Example Programs not cCompiling

Created Thu, 06 Sep 2012 05:44:39 +0000 by fiddler


fiddler

Thu, 06 Sep 2012 05:44:39 +0000

A number of the included example programs in the MPIDE 0023 release has errors when compiling.

Is that just my setup or has the examples not been fully tested ?

Kim


EmbeddedMan

Thu, 06 Sep 2012 15:53:21 +0000

Not sure. It may be either (or both). Can you give more details on what's not compiling, and what types of errors?

*Brian


fiddler

Thu, 06 Sep 2012 19:54:31 +0000

In Examples in Arduino There are more, of course, but its a start. Doesn't seem to matter what board selection is chosen, same on Uno to Max32 etc Kim

Stepper -> MotorKnob

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
                 from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
                 from /home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/arduino/cores/arduino/wiring_private.h:30,
                 from /home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

In Servo -> Sweep

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
                 from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
                 from /home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/arduino/cores/arduino/wiring_private.h:30,
                 from /home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

WestfW

Fri, 07 Sep 2012 00:15:48 +0000

What version of mpide are you running?

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0

This is a strange error to see. Were you compiling for a chipkit board when it produced the errors you quoted? An mpide build ought not be referencing /usr/lib/gcc at all for a PIC32 compile; it shouldn't even be in the search path. Can you quote the entire log from a "verbose" compile?

For Uno builds, you may be facing a compiler version incompatibility. On linux systems, Arduino relies on a separately-installed avr compiler, and not all linux package managers are set up to install a compatible (or even 'working') version of the AVR compiler.

Both Sweep and MotorKnob compile fine for me (for both Uno and Uno32 targets), using Mpide 0023-macosx-20111221 (which is the last "release" build...)

Edit: Also compiles fine for me using "MPIDE 20120811 RC4" The math.h problem does seem to be a famous libc bug that slipped through in assorted linux installs: http://lists.gnu.org/archive/html/avr-libc-dev/2011-10/msg00011.html (but it still shouldn't occur when building CPU32 targets.)


fiddler

Sat, 08 Sep 2012 22:42:33 +0000

I have had some Ubuntu issues since I "upgraded" to 12.04

Verbose output for Stepper -> MotorKnob mpide-0023 Linux32 build 20120811-test

/home/kim/Desktop/mpide-0023-linux32-20120811-test/hardware/pic32/compiler/pic32-tools/bin/pic32-g++  -O2  -c  -mno-smart-io  -w  -fno-exceptions  -ffunction-sections  -fdata-sections  -G1024  -g  -mdebugger  -Wcast-align  -mprocessor=32MX320F128H  -DF_CPU=80000000L  -DARDUINO=23  -D_BOARD_UNO_  -Danything_you_want  -Danything=1 null   -I/home/kim/Desktop/mpide-0023-linux32-20120811-test/./hardware/pic32/libraries/Stepper/examples/MotorKnob   -I/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/pic32/cores/pic32   -I/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/libraries/Stepper   -I/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/pic32/variants/Uno32   -I/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/libraries/Stepper    /tmp/build4395291500984441059.tmp/MotorKnob.cpp  -o  /tmp/build4395291500984441059.tmp/MotorKnob.cpp.o
In file included from /home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/pic32/cores/pic32/WProgram.h:16:0,
                 from /tmp/build4395291500984441059.tmp/MotorKnob.cpp:19:
/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/pic32/cores/pic32/WCharacter.h: In function 'boolean isblank(int)':
/home/kim/MP_IDE_023/mpide-0023-linux32-20111221/hardware/pic32/cores/pic32/WCharacter.h:45:29: error: new declaration 'boolean isblank(int)'
/home/kim/Desktop/mpide-0023-linux32-20120811-test/hardware/pic32/compiler/pic32-tools/bin/../lib/gcc/pic32mx/4.5.1/../../../../pic32mx/include/ctype.h:24:5: error: ambiguates old declaration 'int isblank(int)'