Open main menu

DAVE Developer's Wiki β

Changes

Setting the cross-compiler
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Version
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|X.Y.Z{{oldid|16121|2022/02/17}}|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; borderFirst DESK-bottom:solid 2px #73B2C7; backgroundMX8M-color:#edf8fb; padding:5px; color:#000000"|TBDL release
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |{{oldid|17547|2023/02/24}}
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK-MX8M-L-2.0.0 release
|-
|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|[TBD_link X.Y.Z]2023/08/22|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|Month Year|style="borderDESK-left:solid 2px #73B2C7; borderMX8M-right:solid 2px #73B2C7;borderL-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD4.0.0 release
|-
|}
<section begin=Body/>
==Hello word World example==
Here below an example on C code displaying the classic [https://en.wikipedia.org/wiki/%22Hello,_World!%22_program Hello World!] message on the target serial console.
=== Setting the cross-compiler ===
It is assumed that the development environment has been set up properly as described [[DESK-MX6-L#Quick_start_guide|here]].
* start the Linux development VM and login into the system
* open a terminal window and ''cd'' into your source code directory
<pre class="workstation-terminal">
dvdk@vagrant:~$ mkdir -p ~/myprojectdvdk@vagrant:~$ cd ~/myproject/
dvdk@vagrant:~/myproject$ vi hello.c
dvdk@vagrant:~/myproject$ cat hello.c
#include <stdio.h>
int main(){
printf("Hello, World!\n"); return 0;
}
</pre>
* configure the build environment
<pre class="workstation-terminal">
dvdk@vagrant:~/myproject$ source /home/dvdk/desk-mx-l/desk-mx6mx8m-l-14.0.0_env.sh
</pre>
<pre class="workstation-terminal">
dvdk@vagrant:~/myproject$ echo $CC
armaarch64-poky-linux-gnueabi-gcc -march=armv7armv8-a +crc+crypto -fstack-protector-mfpustrong -O2 -D_FORTIFY_SOURCE=neon 2 -mfloatWformat -abi=hard Wformat-security -mcpuWerror=cortexformat-a9 security --sysroot=/homeopt/yocto/dvdksdk/desk-mxmx8m-l/sdk/desk-mx6mx8m-l-14.0.0-toolchain/sysroots/cortexa9hf-neonarmv8a-poky-linux-gnueabi
dvdk@vagrant:~/myproject$
</pre>
* invoke the cross-compiler for compiling your source code example: the object file obtained, is a proper ELF 3264-bit for the target microprocessor
<pre class="workstation-terminal">
dvdk@vagrant:~/myproject$ $CC hello.c -o hello
dvdk@vagrant:~/myproject$ file hello
hello: ELF 3264-bit LSB pie executable, ARMaarch64, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhfaarch64.so.31, BuildID[sha1]=a7220d78ac1016774b614ce1d50adae71cd713a3, for GNU/Linux 3.214.0, BuildID[sha1]=212bc8245d6274bb4ed675b71128b0e835870fabwith debug_info, not strippeddvdk@vagrant:~/myproject$
</pre>
=== Running the example on the target ===
Now it is enough to copy the object file in the <code>/home/root</code> rfs directory and [[ORCA SOM/DESK-MX8M-L/General/Booting_from_NFS | boot from nfs...]]
<pre class="workstation-terminal">
dvdk@vagrant:~/myproject$ sudo cp hello /home/dvdk/desk-mx-l/rfs/desk-mx6mx8m-l-4.0.0/mx8mp/home/root/dvdk@vagrant:~/myproject$ sudo ls -la /home/dvdk/desk-mx-l/rfs/desk-mx6mx8m-l-4.0.0/mx8mp/home/root/
total 32
drwx------ 2 3 root root 4096 Jun 8 Jul 25 12:36 52 .drwxr-xr-x 3 4 root root 4096 Jan 28 23:54 Mar 9 2018 ..-rwxr-xr-x 1 root root 16432 Jun 8 13928 Jul 25 12:36 52 hellodrwxr-xr-x 7 root root 4096 Mar 9 2018 .nxp-demo-experience-rw-r--r-- 1 root root 1011 Nov 25 Mar 9 2020 2018 .profile
dvdk@vagrant:~/myproject$
</pre>
on the target:
<preclass="workstation-terminal">
...
...
...
[ OK ] Started Terminate Psplash Boot ScreenReached target Multi-User System.[ OK ] Started /etc/rcWeston, a Wayland .local Compatibility|mpositor, as a system service. Starting Hostname Service..[ OK ] Reached target Graphical Interface. Starting WPA supplicantRecord Runlevel Change in UTMP...[ OK ] Started Serial Getty on ttymxc2.[ OK ] Started Getty on tty1Hostname Service.
[ OK ] Started WPA supplicant.
[ OK ] Started Hostname ServiceFinished Record Runlevel Change in UTMP.
NXP i.MX Release Distro 45.1415-sumo kirkstone desk-mx6 ttymxc2mx8mp ttymxc1
desk-mx6 mx8mp login: rootroot@desk-mx6mx8mp:~#root@desk-mx8mp:~# ls -latotal 3244drwx------ 2 3 root root 4096 Jul 25 10:56 .drwxr-xr-x 4 root root 4096 Jun Mar 8 9 2021 2018 ..-rw------- 1 root root 8362 Jul 25 10:53 .bash_historydrwxr-xr-x 3 7 root root 4096 Jan 28 Mar 9 2021 .2018 .nxp-demo-experience-rw-r--r-- 1 root root 1011 Nov 25 Mar 9 2020 2018 .profile-rwxr-xr-x 1 root root 16432 Jun 8 2021 13928 Jul 25 10:55 helloroot@desk-mx6mx8mp:~# ./hello
Hello, World!
root@desk-mx6mx8mp:~#
</pre>
----
[[Category:ORCA]] [[Category:MITO 8M Mini]]
8,286
edits