IMX Hello World: Difference between revisions

From Variscite Wiki
Line 77: Line 77:


FILES_${PN} = "${bindir}/hello"
FILES_${PN} = "${bindir}/hello"
/*
* Variscite sample Hello World example
*/
</pre>
</pre>



Revision as of 14:26, 13 December 2015

VAR-SOM-MX6 - Hello World

Reference

Yocto Project Application Developer's Guide 2.0

Toolchain installation for out of Yocto builds

Build the toolchain by:

$ bitbake meta-ide-support
$ bitbake meta-toolchain

In your Yocto build directory. The output will be located at tmp/deploy/sdk/. On a 64 bit Ubuntu you will get:

sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.8.sh

Install the tools by running:

$ tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.8.sh

Reply to all defaults 'y'
The toolchain name depend on your build machine and may change.

hello World C

$ mkdir ~/applications
$ cd ~/applications
$ gedit hello.c &

#include <stdio.h> 
 
int main(int argc, char **argv)
{
     printf("Hello World\n");
     return(0);
}

Compile:
$ source /opt/poky/1.8/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi 
$ $CC -o hello hello.c 
Find you target ipaddr.
Copy:
$ scp hello root@192.168.1.130:~/

On Target:
Fix an issue with the library happen in poky version 1.8
$ ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
Run:
root@var-som-mx6:~# ./hello 
Hello World

Hello with BitBake

File hello_0.0.bb

#
#@DESCRIPTION: Variscite Hello world example"
#@MAINTAINER: Ron Donio <ron.d@variscite.com>
#
# http://www.variscite.com
# support@variscite.com
#

PR = "r0"
LICENSE = "GPLv2"

S = "${WORKDIR}"

LIC_FILES_CHKSUM = "file://hello.c;md5=360191807313df2e50fded385dd7532b"
SRC_URI = "file://hello.c"

do_compile() {
             ${CC} ${CFLAGS} ${LDFLAGS} -o hello hello.c
}

do_install() {
             install -d ${D}${bindir}/
             install -m 0755 ${S}/hello ${D}${bindir}/
}

FILES_${PN} = "${bindir}/hello"

File hello.c

  1. include <stdio.h>

int main () {

   printf("Hello World<>\n");
   return 0;

}