首先是搭建开发环境,由于目标机是ARM2410,需要用到GCC,在Windows平台虽然有cygwin等工具可以模拟Linux环境,但是据说问题比较多,出了问题也不好解决,干脆还是直接转到Linux平台吧。
本来一直是用的Vmware装了Redhat9.0,来搭建的交叉编译环境,后来还是感觉是在太慢了,光是编译交叉工具链就要5个小时以上。正好同事中有用了5年linux的高手,在他的帮助下,一狠心把vmvare卸载了,直接装Linux,用Linux作为主机工作站。
Linux的发行版选用的Fedora 9,因为界面比较眩,装系统还是挺容易的,只要明白了Linux需要的文件系统,一个2g的swap空间,另外的用ext3格式格好就行了,装好大概40分钟左右。安装完成后还需要升级一些软件,将Winxp的盘映射过来,最后在装上很眩的窗口管理工具和3D特效。
然后就开始搭建交叉编译工具链了,因为之前在虚拟机上搭建过,所以还是采用一样的方法,通过crosstool这个工具来自动编译,这样就只需要选择好要编译的版本,下载好相应版本的glibc,gcc等等,再修改几个配置文件,然后运行demo_arm9tdmi.sh,就可以泡杯茶,等编译完成了。正常情况下大概要1个小时,前提是下载好相应的库,否则crosstool会自动用wget下载,速度相当慢。但是这次的编译就没有以前在虚拟机上那么顺利了,中途遇到好几次问题,比如环境变量设置有问题,目标目录没有创建的权限等等,还好这些问题根据错误提示来都很好解决,唯一的一个很奇怪的错误是关于gcc版本的,这个我在以前虚拟机上编译的时候从来没有遇到过。后来google了一下,终于发现是我装的fedora 9用的gcc版本太新了,于是在网上下载了一个gcc3.4.6来安装,重新编译。结果还是出错,根据程序的调试信息,发现在运行脚本的时候又自动改为选用本机原来的gcc了。最后找到出错的地方,将crosstool.sh里面CC=gcc改为CC=gcc34才解决问题。
接下来该学习写makefile和编译移植内核了,毕竟现在才刚起步,要学习的东西还非常多。争取把遇到的问题和解决办法都写下来,一是怕自己忘记,二也可以帮助其他新手走弯路。Linux博大精深,需要大家共同学习才能进步的更快。
xihu_wy 于 2010-11-16 09:07:04发表:
多谢
cernllyy 于 2009-09-11 13:07:32发表:
楼主加油啦。。。。。
xiazhouquan 于 2009-09-03 15:51:51发表:
一起加油
clotfish 于 2009-09-01 09:17:40发表:
恭喜,恭喜。
是不是回帖就可以加分???
hspwan 于 2009-08-25 09:06:44发表:
好好,谢谢
wu2j2jj 于 2009-08-23 12:02:45发表:
谢谢楼主,收下了///////////
wu2j2jj 于 2009-08-23 12:02:41发表:
谢谢楼主,收下了///////////
js001sdx 于 2009-08-13 14:12:12发表:
深奥!!能详细点就好了