WiFi遥控小车(三):搭建嵌入式Linux开发环境

我是在暑假前买的开发板,本来想这暑假就开始学,但是跟着和开发版配套的视频来一步一步搭建环境的时候遇到了好多问题,首先我的的操作系统是Win7 64位的,可是开发板的串口驱动不支持,用超级终端读不到开发板上的数据,在网上多方查找也没找出解决方案。第二个就是用虚拟机按照视频里面的步骤做的时候也遇到了些问题,就没搞了,暑假就按照蓝杰的教学进度把WEB学了,做了一个简单的微博小项目,我在小组里主要做前端页面、JS这样的工作,网站截图如下:

 

博文地址:http://jcs130.iteye.com/blog/1603307

下面说正题:

我不想用虚拟机,运行速度慢。但是又怕装双系统把硬盘分区分坏了,所以我选择了Ubuntu,因为它可以在Windows下面直接安装。一开始我装的是以前我下载的Ubuntu10,但是貌似它不支持我的笔记本(我的笔记本是AMD的APU处理器的),所以下载了最新的Ubuntu12.04。小提示,Ubuntu下面开启终端的方法是Ctrl+Alt+T。

Ubuntu12.04自带我的串口转USB的驱动,然后下载minicom作为串口调试工具,安装及配置教程:

http://hi.baidu.com/lv0xian/item/dd7e26321316b880c2cf29a5

然后就是下载安装交叉编译器arm-linux-gcc,教程在此:

http://www.2cto.com/os/201208/146387.html

arm-linux-gcc-4.4.3.tar.gz下载地址(金山快盘):

http://www.kuaipan.cn/file/id_32446674035134303.html

我之前写java程序用的是eclipse,十分好用,所以我也想用eclipse来写C程序,网上也有教程:

http://blog.csdn.net/cp1300/article/details/7903715

一开始按照步骤PC机上的可以运行,但是不能交叉编译,找了半天原因发现是因为我的Ubuntu是64位的,要下一个32位的库 终端下输入:sudo apt-get install ia32-libs这样就可以进行交叉编译了。(我查了半天才发现是这个问题)

编好程序后直接构建程序,然后在项目的debug目录下就会有已经编译好的程序了,这个时候用U盘或者SD卡放到开发板上直接运行就可以了。

然后就是关于如何编写内核驱动模块,我记得当时在网上查了很多资料,有很多是说要下源码,然后剪裁内核,没怎么看懂……我就直接用了友善的源码(Linux2.6.38内核)直接make,开发板上也是友善自带的Linux系统。

在make内核模块之前必须要make一下Linux的源代码,下面是一个我觉得比较好的教程:

http://wenku.baidu.com/view/79c4f1ed6294dd88d0d26b18.html

但是我们不可能每次写内核模块都重新编译一遍完整的内核,所以要写一个makefile文件来制定内核的目录,这样就可以单独编译内核模块了,教程如下:

http://www.linuxidc.com/Linux/2012-03/56733.htm

至此,前期的准备工作就做完了,由于我也是个初学者,遇到问题也没有老师问,都是自己去百度,有些地方可能也只是一知半解,以后还希望各位大修多多指教,希望这篇教程能让像我一样的初学者少走一些弯路,同时也十分感谢那些在网上写教程的好人们。

下一篇将会写我的电机驱动移植、测试程序编写、上位机与开发板的UDP通信的简单程序,这些也是我现在达到的水平了,之后还要去学PWM驱动、Linux的多线程编程、H.264编码、流媒体服务器搭建的一堆东西……会更加的难。。。加油吧~~~

你可能感兴趣的:(linux)