Eclipse configuration for Digi Embedded Yocto

I am playing around with ConnectCore 6 SBC and Digi Embedded Yocto, but I have a problem with Eclipse configuration. I followed Digi Embedded Yocto 1.6 First Steps Guide and created toolchain, sysroot and target image. The board is booting, it works fine. I am able to communicate with it via serial port terminal. I was able to build and run an example application on the target using TCF from Eclipse (just like in the tutorial). Here comes the problem:
I wanted to create a simple project with NEON intrinsics based on Hello World Autotools project. I checked the configuration and included arm_neon.h header. Even though the effective call to gcc is:

arm-dey-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=DKTARGETSYSROOT (…)

I cannot compile anything that is included in arm_neon header. For example I get the following error:

Type ‘uint8x8_t’ could not be resolved

After a short investigation I noticed that the include path set in Eclipse project (Properties->C/C++ General->Paths and Symbols) is not taken into account. I can find “arm_neon.h” in (…)workspace/ccimx6sbc/tmp/sysroots/ccimx6sbc/usr/include which I set in project “Paths and Symbols”, but the compiler includes this file from:
(…)workspace/ccimx6sbc/tmp/sysroots/i686-linux/usr/lib/cortexa9hf-vfp-neon-dey-linux-gnueabi/gcc/arm-dey-linux-gnueabi/4.8.2/include/arm_neon.h

Apparently there is a discrepancy between Eclipse configuration and Yocto settings. It doesn’t apply only to neon instructions that were given here just as an example.
How should I configure Paths and Symbols of the Eclipse project in order to use the sysroot specific libraries and headers? Shouldn’t it be done automatically after configuring Yocto Eclipse Plugin? After following the First Steps Guide, the Eclipse was pointing to my PC specific includes (regardless Yocto Plugin settings), so I manually edited it to point to the created sysroot. I would like to be able to see the content of the included files from the Eclipse editor (e.g. by right-clicking on a specific include and selecting “Open declaration”). What should I do to use NEON intrinsics?

There also two more problems. In order to run any bitbake command I need to source the mkproject.sh script after every startup of the PC. Moreover I get following “Infos” in “Problems” tab in Eclipse:
Missing PROG arm-dey-linux-gnueabi-dlltool
Missing PROG arm-dey-linux-gnueabi-mt
Missing PROG dlltool
Is it normal or there is something wrong with my system?

Hi,

As I understand it, while in your project directory you:

Configure image (local.conf) with extra debug features
EXTRA_IMAGE_FEATURES = ”tools-debug eclipse-debug debug-tweaks“
i.e.

nano local.conf

ctrl+w; EXTRA_IMAGE_FEATURES; add 'tools-debug eclipse-debug '; ctrl-x;Y; Enter

bitbake dey-image-graphical

bitbake meta-ide-support

Create the SDK for your platform
(in this case dey-image-graphical)

bitbake dey-image-graphical –c populate_sdk

Install SDK including toolchain and sysroot

cd ~/workspace/ccimx6sbc/tmp/deploy/sdk

./dey-eglibc-i686-dey-image-graphical-cortexa9hf-vfp-neon-toolchain-1.6.sh

(In this case we’re creating the SDK for ‘graphical’, for the ccimx6sbc, so keep things simple use that for the sub folder structure)
Enter target directory for SDK (default: /opt/poky/1.6): /opt/dey-1.6/graphical/ccimx6sbc

You are about to install the SDK to “/opt/dey-1.6/graphical/ccimx6sbc”. Proceed[Y/n]? Y

[sudo] password for USER: USER_PASSWORD

Extracting SDK…done
Setting it up…done
SDK has been successfully set up and is ready to be used.

You then configure in Eclipse:
Proerties->Yocto Project Settings->Cross Compiler Options:

*Standalone pre-built toolchain

Toolchain Root Location:
/opt/dey-1.6/graphical/ccimx6sbc

Sysroot Location:
/opt/dey-1.6/graphical/ccimx6sbc/sysroots/cortexa9hf-vfp-neon-dey-linux-gnueabi

Target Architecture:
cortexa9hf-vfp-neon-dey-linux-gnueabi

Eclipse should now use the freshly installed SDK created from your Yocto project.

I am also new to Digi Embedded Yocto though, so largely just passing on the info I got from training.

I also have the Problems:
Missing PROG arm-dey-linux-gnueabi-dlltool
Missing PROG arm-dey-linux-gnueabi-mt
Missing PROG dlltool

Regards,
David

Hi David,

Thanks for your reply. I followed your instructions but I still get the same problems. Are you able to compile and run this example?
http://www.armadeus.com/wiki/index.php?title=NEON_HelloWorld

I’ve tried several tricks with includes, but I still get this message:
Type ‘uint8_t’ could not be resolved

Best wishes,
Tomasz

Hi Tomasz,

Create your project, edit the helloWorld.c, save.

Then close the project and re-open it… (http://www.eclipse.org/forums/index.php/t/285005/).

Build.

You will get errors, but it will debug & run i.e.:
root@ccimx6sbc:/#
echo $PWD’>’
/>
root@ccimx6sbc:/# gdbserver :2345 /tmpHelloWorld;exit
Process /tmpHelloWorld created; pid = 858
Listening on port 2345
Remote debugging from host 192.168.xxx.xxx
data = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
data (new) = 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19

So not ideal, but I guess a configuration issue of eclipse?

Regards,
Dave

1 Like

Thanks, that helped me.

To sum up: even though eclipse was giving errors, the project was compiling correctly. It’s great that it works, and the related problems are just minor details.

Hi Thomasz, did you find a solution for this issue? I’ve still the same problem.

Thanks,
Oliver.