创建ARM GCC编译器和工具链是每一个爱好嵌入式的程序员想要做的第一件事情。从头搭建编译器和工具链是一件非常复杂的事情。这里使用了crosstools工具自动产生了arm系列交叉编译器。
1 创建ARMv4系列交叉编译器
由于Samsung 24xx属于ARMv4系列指令集。 所以这里创建ARMv4交叉编译器,在这里使用了ARM公司新一代的EABI格式来创建交叉编译器。
2 下载crosstools-0.43.tar.gz
浏览器下载地址:http://www.kegel.com/crosstool/#downlaod
使用命令行下载
wget http://www.kegel.com/crosstool/crosstool-0.43.tar.gz
3 解压crosstools-0.43.tar.gz文件
$ tar xfz crosstools-0.43.tar.gz
$ cd crosstools-0.43
4 创建demo-armv4tl-eabi.sh文件
#!/bin/sh
TARBALLS_DIR=`pwd`/tarballs
RESULT_TOP=/opt/virt.arm
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++,f77"
export GCC_LANGUAGES
mkdir -p $RESULT_TOP
mkdir –p $ TARBALLS_DIR
eval `cat armv4tl-eabi.dat gcc-3.4.5-glibc-2.3.6.dat` PREFIX=/opt/virt.arm sh all.sh --notest
echo Done.
注:
这里的/opt/virt.arm表示安装路径。用户可以根据情况修改。一旦这里修改了路径。以后程序需要安装到该目录中。
用户可以根据需要选择gcc和glibc的各种组合来编译最终的编译器。比如使用gcc-3.4.5-glibc-2.3.6.dat来产生gcc-3.4.5和glibc-2.3.6的编译器。
5 创建armv4tl-eabi.dat文件
KERNELCONFIG=`pwd`/arm.config
TARGET=armv4tl-none-linux-gnueabi
TARGET_CFLAGS="-O"
GCC_EXTRA_CONFIG="--with-float=soft --with-arch=armv4t --with-cpu=arm9tdmi --with-tune=arm9tdmi --enable-cxx-flags=-march=armv4t"
GLIBC_EXTRA_CONFIG="--without-fp"
注:
这里的armv4tl-none-linux-gnueabi表示创建编译器的格式。其中none中用户可以自己定制,比如可以创建armv4tl-saif-linux-gnueabi的交叉编译器。
6 编译方法,运行demo-armv4tl-eabi.sh
$ ./demo-armv4tl-eabi.sh
不能使用root用户执行该程序。
7 常遇到的问题
一般要求用户使用低版本的本地gcc来编译高版本的编译器。比如在使用gcc4.x系列的编译器编译arm linux gcc会出现编译错误。
一般在Ubuntu系列中缺省使用了dash作为sh解释器。因为gcc和glibc中大量使用了bash的语法,而不是dash的语法。建议使用bash作为sh解释器。解决方法是。
$ sudo mv /bin/sh /bin/sh.dash
$ sudo ln -s /bin/bash /bin/sh
不能使用root用户执行demo-armv4tl-eabi.sh
分享到:
相关推荐
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
文档中详细说明了在ubuntu9.04中如何构建交叉编译链的过程。
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
使用crosstool-ng制作的MacOS下arm-linux交叉编译器,编译器版本linaro 7.2.1,支持armv8,cortex-a53,neon-vfpv4。可以在Mac下开发树莓派3程序。MacOS下需要安装到区分大小写的分区中,具体方法网上找。
制作交叉编译器脚本crosstool-ng-1.22.0.tar.bz2源码包
在Ubuntu8.10 64bit version下用Crosstool-0.43建立ARM-Linux交叉编译环境
制作好的ARM处理器交叉工具链,加压即用非常方便!
自己总结用crosstool构建交叉编译工具 arm-linux-gcc 4.1.0
Configured with: /home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/src/gcc/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-cortexa9_neon...
Ubuntu16平台下,使用crosstool-ng编译的Linux下arm cortex-a8交叉编译工具链。
绝对原创----------基于Crosstool-ng的交叉编译环境的详细过程 ---针对Crosstool不能制作GCC-4.1.1以上的版本导致不能编译Linux-2.6.28以上版本的内核新出的交叉编译器的制作
Ubuntu_10.04运用crosstool-ng-1.9.0建立arm-linux交叉工具链
用于golang的交叉编译环境,里面包含rm-linux-gnueabihf-gcc,arm-linux-gnueabihf-g++
crosstool-0.43工具链构建交叉编译环境之gcc-4.1.1
crosstool-0.43 交叉编译环境的构建之教程
介绍arm-linux-gcc交叉编译工具链的制作方法。 包含分步构建和crosstool工具制作。 安装系统为fedora8。亲自测试成功
使用crosstool制作ARM-Linux交叉编译工具链
基于crosstool的交叉编译环境的制作以及Ubuntu10的安装和文件共享 GCC-4.1.1 linux-2.6.24 绝对原创,以前的是在RedHat操作系统下的,但RedHat早已不提供升级,这是基于Ubuntu10的操作系统,而且版本也高了
但每次开机要重启,此时我们编译器就上上述的路径中,包含arm-9tdmi-linux-gnu-gcc,arm-9tdmi-linux-gnu-g++,arm-9tdmi-linux-gnu-ld 如果gcc版本太高,可以用 yum install compat-gcc-34 ,3.4版本的gcc不过之前...