#
学科のサーバの1つ DALMORE 上で CbC を CrossCompile した時のメモ
#
準備
1
2
3
4
5
6
7
8
|
% sudo yum install gcc-arm-linux-gnu.x86_64
% sudo -s
% cd /net/open/Linux/arm
% wget 'https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2?revision=375265d4-e9b5-41c8-bf23-56cbe927e156?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,7-2017-q4-major'
% bunzip2 < gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2\?revision\=375265d4-e9b5-41c8-bf23-56cbe927e156\?product\=GNU\ Arm\ Embedded\ Toolchain\,64-bit\,\,Linux\,7-2017-q4-major |tar xvf -
% cd gcc-arm-none-eabi-7-2017-q4-major
% /usr/bin/arm-linux-gnu-nm lib/gcc/arm-none-eabi/7.2.1/libgcc.a (armのコードが吐かれているか確認)
% /usr/bin/arm-linux-gnu-objdump -D lib/gcc/arm-none-eabi/7.2.1/libgcc.a
|
* 参考にしたサイト
https://gnu-mcu-eclipse.github.io/toolchain/arm/install/
#
CrossCompile
1
2
3
4
5
|
#include<stdio.h>
int main() {
printf("Hello World!\n");
}
|
* CrossCompile
1
|
% ./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm -I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/ hello.c -c -mfloat-abi=hard
|
* Raspberry Pi で動くことを確認する
1
2
3
4
5
|
DALMORE上で
% scp hello.o pi@innparusu-rpi.cr.ie.u-ryukyu.ac.jp
Raspberry pi 上で
% gcc hello.o
% ./a.out
|
* GCC arm cross compiler
configure の前に prefix のところに arm-monte-eabi-as などがある必要がある。
../CbC_gcc/configure –prefix=/usr/local/arm-cbc –disable-nls –disable-bootstrap –target=arm-none-eabi –enable-languages=c –enable-checking=tree,rtl,assert,types
1
2
|
% make -j24 all-gcc
% make install-gcc
|
liggcc.a は以下のように作る
1
2
|
make -j24 all-target-libgcc
make install-target-libgcc
|
/usr/local/arm-cbc/bin/arm-none-eabi-gcc -B/usr/local/arm-cbc/bin/arm-none-eabi- ~/src/hello-cbc.c
のように-Bをつけて使用する