分享

使用GNU ARM建立arm的编译环境

 elovely 2013-04-10
使用GNU ARM建立arm的编译环境
lgl88911 发表于 2008-11-8 20:08:00

  为了能在windows下使用gcc的编译器,一直想在cygwin先编译arm-elf-gcc,但是搞了一个多月最后还是失败了,不会linux啊。想去改编译错误都不知道从那里下手。为了主要的事情能够快点开始,还是用GNU ARM现成的工具链吧。
  介绍几个网站:
         www.    下载GNU ARM的工具链,里面有newlib,可以直接使用标准C库
         www.    下载windows下面的make
         unxutils. 下载bash,以前的脚本都是在cygwin下写的,所以需要一个bash,否则cp,rm等等都用不了。其实steve也提供bash,但是他的cp的参数和cygwin下的不一样,为了不改脚本就找了这个。
    1.download install tools link:
GNU ARM: http://www./bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.exe
Make: http://www./Software/make/make.zip
Bash: http://unxutils./UnxUtils.zip
    2.install tool
GNU ARM:直接安装,我的安装路径为C:/GNUARM
Make:将make.zip中的make.exe解压缩到C:\GNUARM\bin
Bash:将UnxUtils.zip\usr\local\wbin中的所有文件解压缩到C:\GNUARM\bin
    3.note
为了防止以后编译不出以外,安装路径最好不要有空格。
暂时不要使用GCC-4.1 toolchain,没有cygwin的情况下会gcc提示缺少dll
暂时不要使用GCC-4.0 toolchain,测试的时候不认-mapcs-32,但又不知道默认的到底是多少
GNU ARM下面有用newlib编译好的用于arm的libc可以直接使用,但是编译时候的用到里面的一些和内存有关的函数,必须要在ld文件中为其留出参考。

我在使用printf的时候直接就报错c:/GNUARM/arm-elf/lib/libc.a(syscalls.o)(.text+0x69c): In `_sbrk':../../../../../../newlib-1.12.0/newlib/libc/sys/arm/syscalls.c:508: undefined reference to `end'

在ld脚本中做如下改动就ok了
.bss :
 {
  __bss_start = .;
  *(.bss) *(COMMON);
  PROVIDE (end = .);
  __bs

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多