tag 标签: 交叉编译器

相关博文
  • 热度 20
    2013-9-16 15:52
    1341 次阅读|
    0 个评论
    W5300E01-ARM是基于W5300的ARM功能测试评估板:   1      简介 当用户的开发环境与目标系统不同时就会用到交叉编译器. 例如,当开发基于ARM的嵌入式系统时,用户就需要在电脑上写出源代码,并用交叉编译器进行编译。编译的二进制映像是在基于ARM的系统中运行,而不是在电脑中运行。 1.1      交叉编译器的构成 有几种常用的交叉编译器 –例如 ADS/RVCT (由ARM提供) 和GNU编译器。 W5300E01-ARM支持GNU编译器,GNU编译器是由以下部分组成。 binutils 用来控制各种目标文件格式(.obj)的编程工具   2.  gcc GNU 编译器   3.  gibc 交叉编译器的程序库  1.2    安装准备 W5300E01-ARM的交叉编译器的版本是3.4.3,因此对于交叉编译器需要用3.4.x版本的GCC。 请检查你的电脑是否安装了3.4版本的GCC。 从下一章起,我们会逐步阐述交叉编译器的编译和安装的过程。请按本手册正确安装并且生成编译器。 2      源代码的下载 1.     由于系统组成原因,编译器的安装需要根(root)身份认证。在登陆进入root后,创建如下的目录: mkdir /cross_tools cd /cross_tools     2.     下载 ‘binutils-2.15’ 源代码 wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.15.tar.bz2  XXQ 3.     下载 ‘gcc-3.4.3’ 源代码. wget ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.3/gcc-3.4.3.tar.bz2 4.     下载 ‘glibc-2.3.3’ 源代码. wget ftp://ftp.gnu.org/gnu/glibc/glibc-2.3.3.tar.bz2 5.     下载 ‘glibc-linuxthreads-2.3.3’源代码。 ‘glibc’包括‘linuxthreads’程序库. wget ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.3.tar.bz2 3.      Linux 内核安装 为了使用Linux内核头文件,需要安装Linux内核。在开始安装之前,要安装 W5300E01-ARM提供的Linux核心代码,并生成 ‘linux/version.h’文件。 运行W5300E01-ARM包中的CD, 并且为W5300E01-ARM安装核心源代码. 如果CD-ROM是自动安装的,那么根据发行版本的不同,所显示的目录也不相同。   mount /dev/cdrom /media/cdrom 1.   复制核心源文件到 ‘/usr/src’ 目录下 cp /media/cdrom/Softare/LinuxKernel/linux-2.6.24.4-w5300e01.tar.gz /usr/src/ 2.     移动到 ‘/usr/src’ 目录下,解压Linux的核心源文件 cd /usr/src tar zxvf linux-2.6.24.4-w5300e01.tar.gz cd linux-2.6.24.4-w5300e01 3.     为编译器和符号链接创建头文件 make prepare 4.     进行符号链接可以简化目录名称,. cd .. ln –s linux-2.6.24.4-w5300e01 linux
  • 热度 19
    2013-5-26 13:14
    1697 次阅读|
    0 个评论
      1、将arm-linux-gcc交叉编译器的压缩包放在ubuntu的某个路径下(比如我以chenzhenxing普通用户身份登录,我可以把交叉编译器的压缩包放在我的家目录下,所用交叉编译器版本为arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)。 2、使用tar –xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz –C /命令解压编译器压缩包,将解压后生成的FriendlyARM文件夹放在/opt/路径下面(其他路径理应也可以,只是在配置环境变量时需指定相应的路径)。如图5:               3、修改环境变量(这一步至关重要,如果出错会导致找不到交叉编译器相关的shell命令)。修改环境变量有两种方法:修改登录用户的环境变量和修改全局环境变量。修改登录用户的环境变量使用以下指令:vim /home/chenzhenxing/.bashrc,采用vim编辑器打开.bashrc文件后,在文件的最后一行插入export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin保存退出,之后重启系统,在命令行输入arm-linux-gcc –v如果出现关于arm-linux-gcc的版本信息,那么证明安装成功。如果不想重启系统,可以在保存完.bashrc文件后,在命令行键入source /home/chenzhenxing/.bashrc,之后使用arm-linux-gcc –v命令查看交叉编译器版本信息。修改全局环境变量的方法如下:sudo vim /etc/bash.bashrc,使用vim编辑器打开 bash.bashrc(ubuntu没有.bashrc),在文件的最后一行插入export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin保存退出,之后便可以查看版本信息。修改环境变量如图6:       查看交叉编译器版本信息如图7:      
  • 热度 23
    2012-7-16 09:49
    1198 次阅读|
    0 个评论
      在上三篇博文里我们介绍了W5300E01-ARM 交叉编译器(Cross Compiler)用户手册的前半部分,包括第一章简介和第二章的源代码下载以及第三四五六章,分别是LINUX内核安装,‘BINUTILS’安装,‘GCC’安装和’glibc’安装。   在这篇博文里我们将介绍用户手册的最后部分,包括第七章和第八章,分别是‘GCC’重新安装和测试。希望对大家有所帮助。 第一篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13051.HTM 第二篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13072.HTM 第三篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13081.HTM     7.‘gcc’重新安装   到这里,我们已经准备好了交叉编译器的开发环境。重新安装 ‘gcc’, 交叉编译器就完成了安装. 7.1删除以前使用过的 ‘gcc’代码 cd /cross_tools/ rm –rf gcc-3.4.3 7.2解压 ‘gcc’ 源代码. tar jxvf gcc-3.4.3.tar.bz2 7.3为了防止对程序库的依赖而做以下修改 cd /usr/local/arm/arm-linux/lib strings libc.so cp libc.so libc.so.org sed ‘/BUG/d’ libc.so libc.so.new mv –f libc.so.new libc.so strings libpthread.so cp libpthread.so libpthread.so.org sed ‘/BUG/d’ libpthread.so libpthread.so.new mv –f libpthread.so.new libpthread.so     7.4创建用于‘gcc’ 编译的目录 cd /cross_tools/gcc-3.4.3 mkdir build cd build 7.5配置编译环境 ../configure –taeget=arm-linux –prefix=/usr/local/arm –program-prefix=arm-linux- \ --with-headers=/usr/src/linux/include –with-cpu=arm9tdmi \ --with-softfloat-support=internal –enable-languages=c,c++ --nfp     7.6编译与安装 make Make install   8.测试 8.1我们以 ‘Hello WIZnet’为例来做测试. 输入 ‘/cross_tools/hello.c’   #include stdio.h   Int main(void) {   printf(“Hello WIZnet\n”);   return 0; }    8.2用新创建的交叉编译器编译 ‘hello.c’ 源代码. arm-linux-gcc –o hello hello.c file hello     8.3在连接‘W5300E01-ARM’ 板和PC以后, 执行 ‘minicom’。然后,接通‘W5300E01-ARM’ 板电源。 想更多了解关于‘minicom’ 配置的详细信息, 请参考 ‘W5300E01-ARM用户手册’, ‘4.1.2 Booting Check at the Linux’的部分.  Minicom     8.4系统启动之后,登入 ‘root’ 把‘hello’ 发送到W5300串口中 root ‘Ctrl’ + ‘a’,’s’ 选择 ‘Zmodem’ 移动到 ‘/cross_tools’ 用空格键选择‘hello’文件 点击回车键把文件从PC发送到‘W5300E01-ARM’     8.5在‘W5300E01-ARM’板中执行 ‘hello’ chmod 755 hello ./hello     如果您有任何疑问,请直接留言或登录WIZnet官方网站:http://www.wiznettechnology.cn/ 或者来电:86-10-84539974(转166),QQ:2377211388, 邮箱:wiznetbj@wiznettechnology.com  联系人:Jerry ,谢谢! 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.csdn.net/WIZnet2012  
  • 热度 24
    2012-7-13 10:06
    1264 次阅读|
    0 个评论
      在上两篇博文里我们介绍了W5300E01-ARM 交叉编译器(Cross Compiler)用户手册的前半部分,包括第一章简介和第二章的源代码下载以及第三四五章,分别是LINUX内核安装,‘BINUTILS’安装和‘GCC’安装。 在这篇博文里我们将介绍第六章’glibc’安装。希望对大家有所帮助。 第一篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13051.HTM 第二篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13072.HTM     6.‘glibc’ 安装 6.1移动到工作目录并解压 ‘glibc’压缩包 cd /cross_tools/ tar jxvf glibc-2.3.3.tar.bz2 6.2在 ‘glibc’ 目录下解压‘linuxhreads’ tar –C glibc-2.3.3 –jxvf glibc-linuxthreads-2.3.3.tar.bz2 cd glibc-2.3.3 6.3修改‘Makeconfig’ 文件. (第514行) 修改前       gnulib := -lgcc –lgcc_eh       修改后       gnulib := -lgcc         6.4修改‘csu/Makefile’文件(第107行) 修改前       CFLAGS-initfini.s = -g0 –fPIC –fno-inline-functions       修改后       CFLAGS-initfini.s = -O1 –g0 –fPIC –fno-inline-functions         6.5修改‘linuxthreads/Makefile’ 文件(第104行) 修改前       CFLAGS-pt-initfini.s = -g0 –fPIC –fno-inline-functions       修改后       CFLAGS-pt-initfini.s = -O1 –g0 –fPIC –fno-inline-functions         6.6修改‘sysdeps/generic/framestate.c’文件. (第44行) 修改前       frame_state_for = fallback_frame_state_for;         修改后       #ifndef __USING_SJLJ_EXCEPTIONS__ frame_state_for = fallback_frame_state_for; #else frame_state_for = abort; #endif                 6.7修改‘sysdeps/arm/machine-gmon.h’文件. (第 35 ~ 38行) 修改前       static void mcount_internal (u_long frompc, u_long selfpc);   #define _MCOUNT_DECL(frompc, selfpc) \ static void mcount_internal (u_long frompc, u_long selfpc)             修改后       #define _MCOUNT_DECL(frompc, selfpc) \ void mcount_internal (u_long frompc, u_long selfpc)           6.8修改‘sysdeps/unix/sysv/linux/arm/ioperm.c’文件(第 98 ~ 104行) 修改前       static int init_iosys (void) { char systype ; int I, n; static int iobase_name = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };                     修改后       #include static int init_iosys (void) { char systype ; int I, n; #if LINUX_VERSION_CODE 132119 static int iobase_name = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; #else static int iobase_name = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; #endif                               创建一个目录对 ‘glibc’进行编译 mkdir build cd build 6.9安装编译环境 CC=arm-linux-gcc ../configure –host=arm-linux –build=i686-pc-linux-gnu \ --prefix=/usr/local/arm/arm-linux –with-headers=/usr/src/linux/include \ --enable-add-ons=linuxthreads –enable-shared 6.10编译平台。 如果你在编译‘csu/version-info.h’文件时发生错误,打开 修正这个文件并且重新编译。 (第1~4行) make 修改前       “Compiled on a Linux 2.6.24-16-generic system on 2008-10-14 “ “Available extensions: “             修改后       “Compiled on a Linux 2.6.24-16-generic system on 2008-10-14“ “Available extensions:“         make 6.11安装编译的 ‘glibc’程序库. Make install 6.12检查安装的 ‘glibc’ 程序库 ls /usr/local/arm/arm-linux/lib     如果您有任何疑问,请直接留言或登录WIZnet官方网站:http://www.wiznettechnology.cn/ 或者来电:86-10-84539974(转166),QQ:2377211388, 邮箱:wiznetbj@wiznettechnology.com  联系人:Jerry ,谢谢! 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.csdn.net/WIZnet2012  
  • 热度 18
    2012-7-12 10:40
    927 次阅读|
    0 个评论
      在上一篇博文里我们介绍了W5300E01-ARM 交叉编译器(Cross Compiler)用户手册的第一部分,包括第一章简介和第二章的源代码下载。 在这篇博文里我们将介绍第三四五章,分别是LINUX内核安装,‘BINUTILS’安装和‘GCC’安装。   第一篇博文在这里: http://forum.eet-cn.com/BLOG_ARTICLE_13051.HTM   3.Linux 内核安装 为了使用Linux内核头文件,需要安装Linux内核。在开始安装之前,要安装 W5300E01-ARM提供的Linux核心代码,并生成 ‘linux/version.h’文件。   运行W5300E01-ARM包中的CD, 并且为W5300E01-ARM安装核心源代码. 如果CD-ROM是自动安装的,那么根据发行版本的不同,所显示的目录也不相同。  mount /dev/cdrom /media/cdrom 3.1复制核心源文件到 ‘/usr/src’ 目录下 cp /media/cdrom/Softare/LinuxKernel/linux-2.6.24.4-w5300e01.tar.gz /usr/src/ 3.2移动到 ‘/usr/src’ 目录下,解压Linux的核心源文件 cd /usr/src tar zxvf linux-2.6.24.4-w5300e01.tar.gz cd linux-2.6.24.4-w5300e01   3.3为编译器和符号链接创建头文件 make prepare 3.4进行符号链接可以简化目录名称,. cd .. ln –s linux-2.6.24.4-w5300e01 linux   4.‘binutils’ 的安装 4.1到工作目录下,并解压‘binutils’文件 cd /cross_tools/ tar jxvf binutils-2.15.tar.bz2 cd binutils-2.15 4.2为 ‘binutils’ 的编译创建目录 mkdir build cd build 4.3配置编译环境    为了避免覆盖已有的编译程序 指定‘/usr/local/arm’作为安装目录. ../configure –target=arm-linux –prefix=/usr/local/arm –program-prefix=arm-linux-   4.4编译和安装. make make install 4.5导出目录的路径. export PATH=/usr/local/arm/bin:$PATH   5.‘gcc’ 安装 安装 ‘gcc’ 来编译 ‘glibc’程序库和linux 内核。安装完 ‘glibc’之后,用于开发嵌入式软件的‘gcc’再次安装。 5.1移动到工作目录并解压‘gcc’压缩包 cd /cross_tools/ tar jxvf gcc-3.4.3.tar.bz2 cd gcc-3.4.3 5.2修改 ‘gcc/config/arm/t-linux’ 文件. (第3行) 修改前       TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC         修改后       TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer –fPIC –Dinhibit_libc –D__gthr_posix_h         5.3在 ‘gcc/config/arm/t-linux’增加一些内容 echo “T_CFLAGS = -Dinhibit_libc –D__gthr_posix_h” gcc/config/arm/t-linux 5.4为‘gcc’ 的编译创建一个目录. mkdir build cd build 5.5配置环境,以便编译 ../configure --target=arm-linux --prefix=/usr/local/arm \ --with-headers=/usr/src/linux/include --disable-shared --disable-threads \ --enable-languages="c" –nfp --with-cpu=arm9tdmi --without-fp \ --with-softfloat-support=internal   5.6编译和安装. make make install 5.7检查版本. arm-linux-gcc –v     如果您有任何疑问,请直接留言或登录WIZnet官方网站:http://www.wiznettechnology.cn/ 或者来电:86-10-84539974(转166),QQ:2377211388, 邮箱:wiznetbj@wiznettechnology.com  联系人:Jerry ,谢谢! 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.csdn.net/WIZnet2012  
相关资源