分类: 嵌入式
2011-04-15 10:54:37
label:
ARM Cygwin GNU ARM toolchain arm-linux-gcc arm-linux-ld arm-linux-*
笔者刚开始用arm-linux tool chain开发arm程序的时候是在虚拟机的linux环境中进行的。前段时间试用了一下Cygwin,发现这个真是个好东西。相对于虚拟机中的linux,它有以下好处:
①虚拟的linux环境,不会占用太多的主机资源,不用安装虚拟机,程序开启速度很快,打开就可以用
②Cygwin的源中有很多优秀的工具,它们本来是在linux下使用的,现在移植好到windows下了,而且可以根据自己的需要来安装,再者,使用Cygwin可以调用windows下的字符界面的程序,方便的共享windows下的硬盘空间
③最重要的,是在windows下有很多GNU arm的开发工具,它们跟linux上的tool-chain没什么区别,在Cygwin中一样好使
下面简述一下我的安装过程。我自己的环境:笔记本T60,windows7 旗舰版。所需要的软件:Cygwin的安装工具,YAGARTO - another GNU ARM toolchain(用于windows下开发arm的GNU ARM工具链)。
Cygwin的安装过程就不再详细说明了,网上的教程非常多。我的网络性能还比较好,我选择的在线安装,使用的是台湾一所大学的源,速度还是很赞的。一开始所安装的工具都是默认的(不要选择全部安装,那样安装会非常慢,因为要下载大量资源,占用大量空间,而且里面的工具很多都用不到),随后我自己又升级安装了vim、gcc、inetutils、ssh工具.inetutils这个是个整合的网络工具包,里面包含了ftp、telnet、tftp、ftpd等工具,很实用。最后我还选择安装了mintty这个终端工具(在源里有),可以任意更改字体,有右键菜单,很好使。
GNU ARM toolchain在源中是没有的,要自己去下载。目前的toolchain有以下几种:(via http://embdev.net/topic/129986#new)
(Thumb-2 supported)
DevKitPro (Thumb-2 supported)
Toolchain for Linux & Mac OS X – similar to WinARM
我选择了YAGATO. (CodeSourcery的toolchain我试过,中间出了错,不知是不是兼容性不好的原因)YAGATO的工具链并不是只适用在Cygwin中的,windows下的cmd命令界面或者eclipse也是应该一样使用的(未验证cmd)。
①首先去下载 ,这个是主要的开发工具包,安装上后它的命令类似于“arm-none-eabi-gcc”这样的,可以自己alias一下符合自己的使用习惯(但是在Makefile中要使用原本的程序名!否则提示找不到工具链!);
②下载 ,这个包含了一些基本工具如make、rm、touch等,是为了在非linux虚拟环境中使用的,当然Cygwin是linux虚拟环境,这些应该都有的(make貌似原本没有?),为防万一,我还是下载了。
然后就是安装了。最好先去这个网站去看一下有没有最新的版本供下载,还有看一下安装注意事项。在官网页面上有这么一段文字:Do not install the tools or the toolchain in a directory which contain spaces like "C:/Program Files/". In this case the programs will not work! 也就是说安装路径中不允许有空格(当然也不应该有中文),否则工具链会工作不正常。这两个工具安装好后就是配置了。
下面是配置过程。我把Cygwin、YAGATO都安装在了D盘下。
我习惯使用mintty,这个界面更友好,首先是使用mintty.在D:\cygwin\bin目录下找到mintty.exe,右键拖到桌面上建立快捷方式;然后右击快捷方式--属性,在目标文本框最后添加一个空格,后面加入以下文字 “-e /bin/bash.exe --login -i” (不包含引号,下同),起始位置改为"D:\cygwin" ,确定。然后双击打开mintty,这时候路径是在自己的家目录,首先建立一个mintty的配置文件,否则在配置完后提示找不到文件:"touch .minttyrc"便可。然后右击minty界面--options...,按自己的喜好配置mintty(在Text选项卡下,我选择的是Inconsolate 12磅字体,感觉这个比较好看,这个字体要自己去下载;字符集选择的是zh_CN UTF-8)。
然后配置Cygwin.Cygwin会默认把windows下的环境变量拷贝给自己,但是我们不需要这么多路径,所以我在自己的家目录下重新配置了一下.bashrc,我得配置文件如下:
alias ll="ls -l"
alias vi="vim"
alias arm-linux-gcc="arm-none-eabi-gcc"
alias arm-linux-ld="arm-none-eabi-ld"
alias arm-linux-objcopy="arm-none-eabi-objcopy"
alias arm-linux-objdump="arm-none-eabi-objdump"
PATH="/bin:/usr/local/bin:/usr/bin:~/bin:/cygdrive/d/Program_Files/yagarto/bin:/cygdrive/d/Program_Files/yagarto-tools/bin:/cygdrive/c/Program Files/ARM/ADSv1_2/bin:/cygdrive/c/Windows/system32"
可以看到PATH中包含了yagarto和yagarto-tools的工具目录,还添加了ADS的开发工具路径ARM/ADSv1_2/bin,最后才包含windows的路径。注意路径中盘符的写法。
然后我还配置了vim,在家目录下"touch .vimrc",里面的内容是这样的:
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc
set nu
syntax on
第一行是文件编码顺序选择,首选utf-8;最后两行是打开行号和打开语法高亮。
这样整个Cygwin with GNU ARM toolchain的环境就搭建好了。