一个月来学习ARM+LINUX+QT开发获得的心得,共享一下!

来源:互联网 发布:武汉网页美工培训 编辑:程序博客网 时间:2024/05/17 06:27

一个月来,从一点也不懂嵌入式的知道,到现在了解了一些,写一些自己的心得,以及一些在网上找不到的东西,希望对新手有点帮助!

我使用的是ARM s3c2410做为硬件平台,LINUX内核使用的是2.6.24。QT使用的是4。3。2版本。

 

首先说一下对于嵌入式开发的理解:

我感觉对于嵌入式开发,就是在板子上弄一个自己需要的系统,上面跑着自己的程序。说起来也就是这么简单。

首先要对内核进行移植,内核就是LINUX的根本,也就是一些类似文件管理,进程管理等等这些之类的吧?其次就是移植文件系统,文件系统可以理解为/dev,/usr等等的文件,LINUX是以文件的形式来管理系统的,移植文件系统就是建立你所需要的文件,以方便你的程序的开发。最后就是做自己所要的程序,我使用的是QT的程序开发。

 

如何移植内核,这里以linux 2.6.24为例,首先下载一个现成的内核的压缩包以及一个交叉编译器(arm-linux-gcc之类),这些网上有很多,对于交叉编译器,我使用的arm-linux-gcc 3.4.1。tar -xjvf  arm-linux-gcc 3.4.1.tar.bz2 -C /即可。交叉编译环境的建立还要修改/etc/bash.bashrc ,加入:PATH=/usr/local/arm/3.4.1/bin:$PATH   export PATH。这样交叉编译环境就建立起来了。以下就可以编译内核了。至于如何移植内核我是参考的http://blog.chinaunix.net/u2/63560/article_80371.html这篇文章上写的十分详细。我就是参考这个文章来做的内核的移植。修改完之后,make zImage   即可得到想要的内核。

 

内核得到之后,就要做自己的文件系统,我是使用busy box制作的CRAMFS文件系统,至于使用什么样的文件系统,当然要看你的需要了,这个网上有很多相关的介绍。具体如何制作cramfs,可以看http://blog.csdn.net/denlee/archive/2008/04/06/2254192.aspx这个文章写的比较详细。

 

内核,文件系统弄好之后,启动看看,可以看到自己的系统了。以下就是在自己的LINUX PC机上安装QTE,来建立交叉编译环境,方便编程。对于QT的安装方法,网上有了很多的文章,但是大都是对于QT2的介绍,而且比较麻烦,要是使用QT4,安装比较简单,要安装qtopia-core以及qt-x11两个,因为前者对后者的UIC等有依赖。具体的安装过程看QT的文档就好,写的十分详细呢!

 

安装好QT之后,(这个时间会比较长,MAKE的可能比较浪费时间)。注意在安装QTOPIA的时候有个./configure 后面的参数要写 -embedded x86。因为你的平台是X86(PC机类型)。

在安装好QT之后,就可以使用qmake make编译程序了,这里要注意安装QT的时候一定要 ./configure 后面加 -qvfb。因为你要使用这个模拟运行板子的程序。

 

在PC机上模拟的没有问题了,就可以交叉编译QT程序了,(参看文档里的如何建立交叉编译环境)。注意:

第二步,应该是./configure -xplatform qws/linux-arm-g++

     在第5步,./configure -embedded arm -qt-kbd-tty -qt-mouse-pc  -qt-gfx-linuxfb

。要看自己交叉编译的是否成功,可以使用file来看文件是不是arm的!

然后就是发布自己做的应用程序了,也就是在板子的系统的/usr/lib里面放上自己需要的。so文件。这个使用ldd就可以看到自己的程序以来的库文件了。注意:一定要使用file看看是不是arm 下的,否则肯定出错的!

 

基本的流程就是这样的,具体的细节没有写的太详细,因为已经有了很多现成的文章了,我也是按照他们的做的,没有创新,就不敢COPY别人的东西,呵呵!

希望这个文章能对新手对于嵌入式的理解有一定帮助,有了一个大致的流程,再一点一点的做就方便了许多。

 

 

不过我现在对于LCD还没有搞定,启动的时候显示
io scheduler cfq registered                           
Console: switching to colour frame buffer device 80x30                                                      
fb0: s3c2410fb frame buffer device      
就是显示不出来传说中的小企鹅,郁闷死了!