打印

在cygwin下打造自己的交叉环境

[复制链接]
307|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
考哥|  楼主 | 2018-10-6 07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很是不爽,要搞个ARM还要在linux和m$win来回的切换,虚拟机也麻烦。不切换就不能用AXD来调试

谁叫AXD没有linux的版本呢!?我也幻想着哪时也搞个类似的linux版本来。不过这个还真是有难度

算是还是先把目录的搞定吧。决定用cygwin来搞个ARM的交叉编译环境,在网上找了些资料,然后就

动手了,下面是自己的一些记录,以备忘。



1, 下载crosstool。当前最高版本是0.43。

http://kegel.com/crosstool/crosstool-0.43.tar.gz



2, 解压crosstool,并根据需要修改相关选项

$ tar zxf crosstool-0.43.tar.gz

$ cd crosstool-0.43

$ cp demo-arm-softfloat.sh s3c2440.sh  <<== 复制编译脚本。demo-arm.sh是简单的arm;

$ vi s3c2440.sh                        <<== demo-arm-softfloat.sh是带软浮点的。当然还有其它。

TARBALLS_DIR=$HOME/downloads

RESULT_TOP=/opt/crosstool              <<== 编译正功后的安装目录

export TARBALLS_DIR RESULT_TOP

GCC_LANGUAGES="c,c++"                  <<== 编译产生的编译器支持哪些语言

export GCC_LANGUAGES

...

eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest

...



$ vi arm-softfloat.dat

KERNELCONFIG=`pwd`/arm.config          <<== 好像是linux的.config

TARGET=arm-softfloat-linux-gnu         <<== 产生最后的工具前缀,如:arm-linux-gcc, arm-linux-ld

TARGET_CFLAGS="-O"                     <<== 编译开关,像优化之类

GCC_EXTRA_CONFIG="--with-float=soft"   <<== 编译开关,打开软浮点

GLIBC_EXTRA_CONFIG="--without-fp"      <<== 编译开关,暂时还没明白这个 @_@



$ vi gcc-3.4.5-glibc-2.3.6.dat         <<== 此文件放的就是编译需求要的文件,为了加速可以先用

BINUTILS_DIR=binutils-2.15             <<== 多线程下载器(像迅雷等)下载回来并放到目录/下,当

GCC_DIR=gcc-3.4.5                      <<== 然crosstool也会判断没有的话就用wget单线程去下载

GLIBC_DIR=glibc-2.3.6                  <<== 放到目录/下

LINUX_DIR=linux-2.6.8

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6



3, 下载必要文件并放到目录/下

[url=]ftp://ftp.gnu.org/gnu/binutils/binutils-2.15.tar.bz2[/url]

ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.5/gcc-3.4.5.tar.bz2[url=]ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.5/gcc-3.4.5.tar.bz2[/url][/url]

[url=]ftp://ftp.gnu.org/gnu/glibc/glibc-2.3.6.tar.bz2[/url]

[url=]ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2[/url]

[url=]ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.6.tar.bz2[/url]

[url=]ftp://ftp.lfs-matrix.net/pub/linux-libc-headers/linux-libc-headers-2.6.12.0.tar.bz2[/url]



4, 好,准备好了,开始让机器自动工作吧,你去哪里都可以了,完成它会告诉你done的

$ ./s3c2440.sh



5, done之后默认就会在目录/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/

下产生需要的工具和文件了



6, 可以删除原来的crosstool-0.43目录了,它占用的空间还真是有够大的



7, OK, 可以用它们来编译u-boot了。网上说只能编译低版本的u-boot,可是刚才我刚过编译成功1.1.6版本

前提是你必要是带softfloat的,不然会出现下面的错误:(也就是说编译u-boot需要浮点数运算)

arm-linux-ld: ERROR: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-

linux/4.1.0/libgcc.a(_udivdi3.o) uses hardware FP, whereas u-boot uses software FP



8, 暂时就到时了,只是在cygwin上编译正确。当然此种方法也可以让你在其它环境中产生你需要的

交叉编译环境,像linux, BSD, OS X等等,不过我还有试过。



9, 开始工作了,可以直接在M$ Windows上直接编译u-boot然后同时使用H-JTAG和AXD来调试了。



10, 本想移植到u-boot-1.3.3-rc3的,可是就是编译不了。看来还真是只能低版本的了。不过我再改改u-boot看。



fi9 @ shenzhen in 2008-05-18

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

461

主题

477

帖子

0

粉丝