本文参考了互联网上的众多教程,尤其感谢移动天使E680论坛。
a780是ARM+LINUX架构的
ARM是英特尔的Xscale PXA270 主频312MHhz,Xscale产品线目前已经卖给Marvell.
LINUX内核版本2.4.26
构建编程环境步骤:
一. 你需要一个LINUX主机,可以是虚拟机,事实上我用的就是虚拟机。LINUX要安装有开发环境,如GCC,还要有Bison,如果没有的话,你需要安装。你还需要用一个非root帐户来执行这些操作,这是必须的。
二. 下载ezx-crosstool,这是高手做出来的制作环境的脚本集合,下载地址http://lsb.blogdns.com/ezx-crosstool,目前的最新版本是0.6。网上教程里,这个地址基本都是错的,我想是作者更改了域名指向提供商。下载后解压,生成ezx-crosstool-0.6目录。
三. 从
ftp://ftp.gnu.org/pub/gnu里下载以下四个文件,虽然ezx-crosstool脚本可以自动下载,但是自己下载要更主动一些。
binutils-2.15.tar.bz2
gcc-3.3.6.tar.bz2
glibc-2.3.2.tar.bz2
glibc-linuxthreads-2.3.2.tar.bz2
无需解压,直接放到ezx-crosstool-0.6/downloads
四.从
http://www.kernel.org/pub/linux/kernel/v2.4/里下载
linux-2.4.26.tar.bz2
无需解压,直接放到ezx-crosstool-0.6/downloads
五.执行ezx-crosstool-0.6/build.sh
可以修改build.sh里的RESULT_TOP,它表示编译完成后的结果目录。我觉得保持默认就不错。
build过程将持续一个小时左右,我使用的机器配置主流偏上。
六.Build完成后,可以在ezx-crosstool-0.6/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin下,看到编译出来的交叉编译器,尤其是arm-linux-gcc,是c交叉编译器。你可以把这个路径加入PATH
七.现在可以编写一个简单的helloworld
/*filename:hello.c*/
#include <stdio.h>
int main()
{
float my_float=11.88;
printf("\n%f\n",my_float);
printf("\nhello,a780\n");
return 0;
}
编译:
arm-linux-gcc -O hello_a780 hello.c
八. 连接手机,将hello_a780拷到手机上,也可以是存储卡上。
九. 两种方式可以执行hello_a780程序,我用的是Oonsole,如果你的手机上没有,请安装。还有一种方法是Telnet,我感觉第一种方法要简单。