I'm looking for materials or links about cross-compiling, like eabi, etc
I’m looking for materials or links about cross-compiling, like eabi, etc. I’m new to Linux-based cross-compiling, and I want to develop my knowledge.
From Install the ARM cross compiler toolchain on Ubuntu:
How to install on Ubuntu the complete toolchain to cross compile the
Linux kernel, the Linux device drivers, the Linux applications and the
boot loader like as AT91Bootstrap and its derivatives like AcmeBoot
and AriaBoot.This procedure has been tested on Linux Ubuntu 16.04. The same ARM cross compiler toolchain
is in the default Ubuntu repositories up of Ubuntu 16.04-20.04.###Install the Cross Compilers, utilities, etc.
Install the GCC, G++ cross compilers and support programs by typing:
sudo apt install libc6-armel-cross libc6-dev-armel-cross sudo apt install binutils-arm-linux-gnueabi sudo apt install libncurses5-dev
If you are using an Arietta,
Aria or FOX
G20 board:sudo apt install gcc-arm-linux-gnueabi sudo apt install g++-arm-linux-gnueabi
If you are using an Acqua or
RoadRunner board:sudo apt install gcc-arm-linux-gnueabihf sudo apt install g++-arm-linux-gnueabihf
Now you are ready to cross compile on your PC all the source available
for the Acme Boards based on Microchip MPUs.###Try the cross C compiler
Let’s try to cross compile a Hello World example in C and running it
on an Acme board.This is the example:
#include "stdio.h" int main(void) { printf("Hello world!n"); return 0; }
Compile it typing:
arm-linux-gnueabi-gcc hello.c -o hello
As you can see we are using the ARM version of gcc just installed on
your PC. It will generate an executable file for your Linux board.Copy the executable file on the board via ssh:
scp hello root@[your_board_ip]:/root
Then open a command session on your board and run the example:
./hello Hello world!
###Try the cross C++ compiler
Let’s try to cross compile a Hello World example in C++ and running it
on an Acme board.This is the example:
#include "iostream" using namespace std; int main(int argc, char *argv[]) { cout << "Hello world!" << endl; return 0; }
Compile it typing:
arm-linux-gnueabi-g++ hello.cc -o hello
As you can see we are using the ARM version of gcc just installed on
your PC. It will generate an executable file for your Linux board.Copy the executable file on the board via ssh:
scp hello root@[your_board_ip]:/root
Then open a command session on your board and run the example:
./hello Hello world!
All of the packages in this tutorial are also in the default Ubuntu 14.04 repositories.
###Links specific to nRF51, LM35 and Arduino
- nRF51 microcontroller – https://arduino.stackexchange.com/search?q=nRF51
- LM35 temperature sensor – https://arduino.stackexchange.com/search?q=lm35
- Arduino – What does it take to compile Linux on Arduino, if at all possible?