Go Down

Topic: Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches (Read 118759 times) previous topic - next topic

sohini25

Serial port dev/ttyACM0 is not showing up whenever I try to upload a sketch. As a result output is showing as "No device found on ttyACM0
bossac finished" . I tried to edit the eclipse.ini file by adding the line -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0. But still the error persists. Can you please tell a workaround. I am using Arduino Due with Eclipse Juno, Arduino IDE 1.5.2 and plugin version V2 beta.

Jantje

Can you provide me with a dump of the upload console?
Best regards
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

neuweiler


neuweiler
This behavior is already implemented.
I have not seen this behavior on my system. Which OS are you using? Are you using 64 bit eclipse? Can you provide me the output of the menu->window->preferences->arduino->test dll
Best regards
Jantje

Jantie,
I'm running Eclipse on a 64bit Windows 7 system. Eclipse itself is 32bit (I think, Eclipse says so).
I get the following from menu->window->preferences->arduino->text RXTX:
"Arduino IDE delivered rxtx library Z:/development/arduino-1.5.2/rxtxSerial.dll) has been loaded successfully, Os=win32 Os Architecture=x86".

neuweiler

Jantie,

A while ago I wrote you about syscalls_sam3.c not being properly used when compiling projects with your plug-in. You asked me to compare the output of the plug-in with the one of the standard IDE. I did so and I think I've found the cause of the problem: when calling the archiver and the combiner, your plug-in omits the syscalls_sam3.c.o file - although it correctly compiled it before.

Here's the relevant part of your plug-in (sorry, had to shorten it so the forum accepts my post) :


and here's the output of the Arduino IDE:

Code: [Select]

20:10:48 **** Incremental Build of configuration Release for project CANMonitor ****
make all

[....]

Building file: Z:/arduino-1.5.2/hardware/arduino/sam/cores/arduino/syscalls_sam3.c
Starting C compile
"Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-gcc" -c -g -Os -w -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -mcpu=cortex-m3 -DF_CPU=84000000L -DARDUINO=152 -D__SAM3X8E__ -mthumb -DUSB_PID=0x003e -DUSB_VID=0x2341 -DUSBCON "-IZ:/arduino-1.5.2/hardware/arduino/sam/system/libsam" "-IZ:/arduino-1.5.2/hardware/arduino/sam/system/CMSIS/CMSIS/Include/" "-IZ:/arduino-1.5.2/hardware/arduino/sam/system/CMSIS/Device/ATMEL/"   -I"Z:\development\arduino\arduino-1.5.2\hardware\arduino\sam\cores\arduino" -I"Z:\development\arduino\arduino-1.5.2\hardware\arduino\sam\variants\arduino_due_x" -I"Z:\development\arduino\arduino-1.5.2\hardware\arduino\sam\libraries\DueCAN" -I"Z:\development\arduino\arduino-1.5.2\libraries\LiquidCrystal" -MMD -MP -MF"arduino/syscalls_sam3.c.d" -MT"arduino/syscalls_sam3.c.d" "Z:/arduino-1.5.2/hardware/arduino/sam/cores/arduino/syscalls_sam3.c"  -o  "arduino/syscalls_sam3.c.o"
Finished building: Z:/arduino-1.5.2/hardware/arduino/sam/cores/arduino/syscalls_sam3.c

[...]

Starting archiver
"Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar" rcs "Z:/development/source/arduino/CANMonitor/Release/arduino.ar"    ./arduino/variant.cpp.o  ./arduino/CDC.cpp.o ./arduino/HID.cpp.o ./arduino/USBCore.cpp.o  ./arduino/IPAddress.cpp.o ./arduino/Print.cpp.o ./arduino/Reset.cpp.o ./arduino/RingBuffer.cpp.o ./arduino/Stream.cpp.o ./arduino/UARTClass.cpp.o ./arduino/USARTClass.cpp.o ./arduino/WInterrupts.c.o ./arduino/WMath.cpp.o ./arduino/WString.cpp.o ./arduino/cortex_handlers.c.o ./arduino/cxxabi-compat.cpp.o ./arduino/hooks.c.o ./arduino/iar_calls_sam3.c.o ./arduino/itoa.c.o ./arduino/main.cpp.o ./arduino/syscalls_sam3.c.o ./arduino/wiring.c.o ./arduino/wiring_analog.c.o ./arduino/wiring_digital.c.o ./arduino/wiring_pulse.cpp.o ./arduino/wiring_shift.c.o
Finished building: Z:/development/source/arduino/CANMonitor/Release/arduino.ar

Starting combiner
"Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-g++" -Os -Wl,--gc-sections -mcpu=cortex-m3 "-TZ:/arduino-1.5.2/hardware/arduino/sam/variants/arduino_due_x/linker_scripts/gcc/flash.ld" "-Wl,-Map,Z:/development/source/arduino/CANMonitor/Release/CANMonitor.map" -o "Z:/development/source/arduino/CANMonitor/Release/CANMonitor.elf" "-LZ:/development/source/arduino/CANMonitor/Release" -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group     ./Libraries/LiquidCrystal/LiquidCrystal.cpp.o  ./Libraries/DueCAN/due_can.cpp.o ./Libraries/DueCAN/sn65hvd234.cpp.o  ./CANMonitor.ino.o   Z:/development/source/arduino/CANMonitor/Release/arduino.ar   "Z:/arduino-1.5.2/hardware/arduino/sam/variants/arduino_due_x/libsam_sam3x8e_gcc_rel.a" "Z:/development/source/arduino/CANMonitor/Release/arduino.ar" -Wl,--end-group
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xa): warning: undefined reference to `_exit'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0x12): warning: undefined reference to `_sbrk'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0x18): warning: undefined reference to `_kill'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x0): warning: undefined reference to `_getpid'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text+0x16): warning: undefined reference to `_write'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text+0x12): warning: undefined reference to `_close'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text+0x14): warning: undefined reference to `_fstat'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text+0x12): warning: undefined reference to `_isatty'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text+0x16): warning: undefined reference to `_lseek'
Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text+0x16): warning: undefined reference to `_read'
Finished building: CANMonitor.elf

Create eeprom image
Finished building: CANMonitor.eep

Create Flash image (ihex format)
"Z:/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-objcopy" -O binary "Z:/development/source/arduino/CANMonitor/Release/CANMonitor.elf" "Z:/development/source/arduino/CANMonitor/Release/CANMonitor.bin"
Finished building: Release/CANMonitor.bin

Building target: CANMonitor
Printing size:
Finished building target: CANMonitor


20:11:08 Build Finished (took 19s.487ms)


neuweiler

And here the relevant parts of the original IDE's log:
Code: [Select]

[...]
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-gcc -c -g -Os -w -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -mcpu=cortex-m3 -DF_CPU=84000000L -DARDUINO=152 -D__SAM3X8E__ -mthumb -DUSB_PID=0x003e -DUSB_VID=0x2341 -DUSBCON -IZ:\arduino-1.5.2\hardware\arduino\sam\system/libsam -IZ:\arduino-1.5.2\hardware\arduino\sam\system/CMSIS/CMSIS/Include/ -IZ:\arduino-1.5.2\hardware\arduino\sam\system/CMSIS/Device/ATMEL/ -IZ:\arduino-1.5.2\hardware\arduino\sam\cores\arduino -IZ:\arduino-1.5.2\hardware\arduino\sam\variants\arduino_due_x Z:\arduino-1.5.2\hardware\arduino\sam\cores\arduino\syscalls_sam3.c -o c:\Temp\build3170532245487102748.tmp\syscalls_sam3.c.o
[...]
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\cortex_handlers.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\hooks.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\iar_calls_sam3.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\itoa.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\syscalls_sam3.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\WInterrupts.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\wiring.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\wiring_analog.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\wiring_digital.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\wiring_shift.c.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\cxxabi-compat.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\IPAddress.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\main.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\Print.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\Reset.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\RingBuffer.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\Stream.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\UARTClass.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\USARTClass.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\CDC.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\HID.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\USBCore.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\wiring_pulse.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\WMath.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\WString.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-ar rcs c:\Temp\build3170532245487102748.tmp/core.a c:\Temp\build3170532245487102748.tmp\variant.cpp.o
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-g++ -Os -Wl,--gc-sections -mcpu=cortex-m3 -TZ:\arduino-1.5.2\hardware\arduino\sam\variants\arduino_due_x/linker_scripts/gcc/flash.ld -Wl,-Map,c:\Temp\build3170532245487102748.tmp/CANMonitor.cpp.map -o c:\Temp\build3170532245487102748.tmp/CANMonitor.cpp.elf -Lc:\Temp\build3170532245487102748.tmp -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group c:\Temp\build3170532245487102748.tmp/syscalls_sam3.c.o c:\Temp\build3170532245487102748.tmp\CANMonitor.cpp.o c:\Temp\build3170532245487102748.tmp\DueCAN\due_can.cpp.o c:\Temp\build3170532245487102748.tmp\DueCAN\sn65hvd234.cpp.o c:\Temp\build3170532245487102748.tmp\LiquidCrystal\LiquidCrystal.cpp.o Z:\arduino-1.5.2\hardware\arduino\sam\variants\arduino_due_x/libsam_sam3x8e_gcc_rel.a c:\Temp\build3170532245487102748.tmp/core.a -Wl,--end-group
Z:\arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-objcopy -O binary c:\Temp\build3170532245487102748.tmp/CANMonitor.cpp.elf c:\Temp\build3170532245487102748.tmp/CANMonitor.cpp.bin
Binary sketch size: 73'208 bytes (of a 524'288 byte maximum) - 13% used

Jantje

neuweiler
I guess you missed the below info

I found the bug
Code: [Select]
String Value = MakeEnvironmentString(Var[1].replace("\"{build.path}/syscalls_sam3.c.o\"", "")); // /TOFIX
No more need for the verbose log output.
As I'm working on multiple configurations right now I can not quickly release a new version. Next version will contain the fix.
Best regards
Jantje


I don't know why you experience the due upload problem. I did extend some timings in the newest version (still under testing) so that may fix your problem.
Best regards
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

sohini25

Hi,

I got my previous problem solved. But I need some other help. Can this plugin work with any other toolchain apart from the Arduino toolchain. I need to have Linker option for importing external files. Can anybody tell me how to link files in the Arduino toolchain.

Best Regards,
Sohini

Jantje

@sohini25
I'm not sure what you want to try to achieve. But I guess you probably want to modify the info in "project properties"->C/C++ properties/settings.
Note however there have been some major changes this view between 1.X and 2.0 beta.
Note that in Arduino IDE 1.5.x you can change the boards.txt and platform.txt to do so.
Note that 2.1 beta (currently in test) has a tab to change the C++ and C compile options. If you can explain me why a linker option change is interesting I may add one to.

From a eclipse point of view the answer to the question "Can this plugin work with any other toolchain apart from the Arduino toolchain." is yes.
You need to go to "project properties"->C/C++ properties/toolchain editor. But I doubt this is what you want to do.

Best regards
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

sohini25

Thanks for the reply but I cannot find any other option apart from the Arduino toolchain in the tolchain editor- current toolchain dropdown.

How can I include a C++ linker in my settings. Please help me out.

Regards,
Sohini

sohini25

I am not able to get printf() support from the Arduino Sketch built through the V2 plugin. But my Arduino 1.5.2 IDE is allowing printf() function. I have included stdio.h file in my sketch in Eclipse. But not getting any output. Can anybody help. I am using Arduino Due with arm-none-eabi-gcc toolchain.

Jantje

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

sohini25

I was using the below code ----

> #include "arduino_due.h"
>
> #include <Arduino.h>
> #include<stdio.h>


> void setup(){
>     Serial.begin(115200);
>
>    Serial.print("Start");
>    printf("test");

> }

void loop()
> {
> printf("test");
>
> }



None of the two printf statements are working, even though the code is showing no error on compilation. Please help me out.

Jantje

the code
Code: [Select]
printf("test");
doesn't make sense to me. Can you explain me what it should be doing? have you seen http://www.cplusplus.com/reference/cstdio/printf/
can you give me the compile output?
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

sohini25

I am trying to implement Relic Toolkit library on Arduino Due. But that library requires printf() support. So i was just trying to see if printf() is working in my sketch or not. But it is not. I cannot get any declaration in the project/workspace for printf() even though the stdio.h file is there under project includes. 

Jantje

I just compiled the code below without any problems
Code: [Select]
#include <Arduino.h>
#include<stdio.h>


void setup(){
     Serial.begin(115200);

    Serial.print("Start");
    printf("test");
}

void loop()
{
printf("test");
}
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Go Up