Showing posts with label ARM. Show all posts
Showing posts with label ARM. Show all posts

Wednesday, September 2, 2009

关于搭建ARM工具链 (ARM Toolchain)

以前写过一篇[怎样搭建ARM交叉编译环境?]的文章, 那时的我还以为arm-linux-gcc编译器是一个独立的软件, 可以直接获得. 但在Google搜索的结果里怎么也找不到一个独立的正式的页面, 只有些零散的下载点. 于是我有点怀疑自己的理解是否正确, 隐约记得有人通过编译的方式得到arm-linux-gcc, 这是不是和GCC有着某种联系呢? 接着又换了几个关键词进行查找, 发现原来平时使用的arm-linux-gcc就是由特定的编译参数编译GCC而得到的. 原来这一切没有现成的, 而是需要自己手动去编译呢. 不过这个编译过程实在是有点繁琐, 有兴趣的可以参考这两篇文章: Building a GNU/Linux ARM Toolchain, The GNU Toolchain for ARM targets HOWTO.

2010.5.26更新:
uClinux的网站上也发现了搭建ARM工具链的详细步骤 ("build-arm-linux-*"文件), 并且提供了搭建过程中所需的各种源码包, 算是比较齐全的吧, 推荐一下.

对于一般使用者来说, 实在是没有必要去自己编译, 我把3.4.14.3.2两个版本的ARM工具链放到了网上, 方便以后的使用.

Tuesday, September 1, 2009

ARM板烧写文件系统失败的总结

这几天一直被一个很恼火的问题纠结着, 需要给块板子烧写文件系统, 但使用我前段时间介绍过的Linux下的DNW试了很多次都失败了, 又试了一个老外写的s3c2410_boot_usb (这个传输速度比DNW慢很多) 还是不行, 在SHE电脑上的XP下用Win版的DNW依旧不行, 可用某师兄的电脑烧的时候又每次都可以, 囧. 另一个师兄笑说这是人品问题, 呵呵~ 不过我就是不相信有那么离奇, 没道理只能在别人的电脑上才能成功, 一定会有解决办法的. 终于让我发现了一个传输上的小细节: 地址, 这时我才想到每次烧的时候我都没有指定地址, 而是使用的程序内部的默认地址. 于是试着修改了一下dnw2的源码, 把地址替换了, 结果, 嘿嘿, 肯定是成功了三, 哇哈哈~~~ 不过困扰了几天的问题居然是这么一个小细节...

为了以后的使用方便, 我又进一步完善了dnw2的源码, 使得可以通过命令行参数来指定地址, 最新打包好的程序: dnw2_linux_fixed_20090901.tar.gz. 同时我的修改版也得到了原作者Fox的认可, 并放到了他的SVN仓库里. 最后需要特别感谢Fox的贡献.

Sunday, August 23, 2009

在Linux下使用DNW

2009.9.1更新: 请下载dnw2_linux_fixed_20090901.tar.gz, 详情请参见[ARM板烧写文件系统失败的总结].

DNW是通过USB烧写软件到ARM板的工具, 由三星公司开发, 可是这个软件只有Window$版本. 那天想把Linux内核烧进去, 就在网上找了很久看有没有Linux下的替代品. 最后在ARM9之家论坛上发现有人重写了个简单的命令行版本, 源代码可以从Google Code上下载: dnw2_linux_latest.tgz, 或者下载我的修正版本: dnw2_linux_fixed.tar.gz, 主要修正了一些编译警告. 编译的时候要依赖libusb-dev, Ubuntu用户可以直接安装:
$ sudo apt-get install libusb-dev

Saturday, July 18, 2009

怎样搭建ARM交叉编译环境?

2009.9.12 更新:
请转到[关于搭建ARM工具链 (ARM Toolchain)]查看.

今天师兄叫我再传一份当初我搭好的交叉编译环境时, 才发现以前都没记下来, 害的今天又去网上找了好久才找到原来的方法. 这里简记之.

我搭的这个ARM交叉编译环境很简单, 可以支持C和C++的编译. 先在这里下载以arm-linux-gcc开头的压缩包, 然后解压放到对应的目录就行了.

然后你可以选择修改PATH变量的方式把bin目录添加进去, 或者像我一样在现有的PATH里面放上符号链接. 这样就算搭建完毕了.