嵌入式之路
来源:互联网 发布:网站搜索引擎优化教程 编辑:程序博客网 时间:2024/06/08 08:24
源文来自http://zhilong2382.blog.163.com/blog/static/748042212009610114180/ 又一个月,时间特快,每天都是很忙碌,试也考完了,现在在做一些实训,在这个月里我觉得是我的一个转折点,一下子懂了很多,但这个月也是我最累的,首先很庆幸的是我的计算机三级过了,呵呵,觉得蛮幸运的,我一直都是认为我过不了的,继续努力! 到今天为止,我学嵌入式linux刚好半年,我是从元旦开始买书自学的,过程曲折可谓一语难尽!在此期间我也失落过,也曾一度热情高涨,总的来说我对嵌入式LINUX有了浓厚的兴趣,在这个月一下子让我懂了很多,现在我对它充满了信心!可以说到现在,我只是爬到了嵌入式的大门,看到了里面的阶梯小路,要想入这个门还得要更加努力!下面我对这半年来所学的东西进行一个总结,方便以后可以找到回归的路,在网上搜集了很多资料,但都是不全的,或者那些只能针对他所说的环境,根本不适合自己,不过我还是要感谢他们,没有这些资料,我是学不了那么快的,还有梁老师和黄老师对我的指导,把资料整理成自己的东西,再学习原理,如果都是按步就班,那结果自然是很多莫名其妙的错误。 首先介绍一下我的开发环境:(这里只总结下minicom、NFS、交叉编译、Qt图形界面) PC系统: Ubuntu 8.04 开发板: 飞凌嵌入式公司的OK2440-III ,内核:2.6.12 网卡:我用两个网卡,一个集成,一个PCI的,都是10/100M自适应网卡,一个用来上网,一个用来挂载开发板 如果新安装linux ubuntu 8.04,安装后先配置一下网卡IP,可以用ifconfig查看IP,如果是双网卡,注意eth0、eth1对应的是那块网卡,可以用ifconfig eth0 192.168.0.10 netmask 255.255.255.0来设置IP和掩码,可以用ifconfig eth0 up/down开或关网卡,具体可以参照其它资料。如果提示无法连接,先关掉其中一块网卡,登录网络后再开网卡,先使用更新管理器更新一下校验软件包,否则后面用apt-get install都会提示无法找到软件包! -、minicom 安装软件包 sudo apt-get install minicom 输入 minicom -s 进行设置 选择 serial port setup 按A键,删除完,输入/dev/ttyS0 ,按enter,再按F,选择为NO,退出选择save setup as df1保存,以后每次使用输入minicom就得了,至于使用,资料很多,自行参考。 注意:/dev/ttyS0指串口1,ttyS1指串口2,你要确保你的目标板选用的串口与之相同,目标板共有两个,一个是启动Bootloader用来接收信息的,一个是linux控制台串口,建议把这两个都选择为串口1,可以在windows下通过DNW来更改设置,否则不能正常工作。 二、NFS配置 安装 sudo apt-get install nfs-kernel-server 配置共享文件: /etc/exports 在后面添加要共享的文件夹或目录如 /home/yy/share *(rw,sync,no_root_squash) 查看IP: 看一下pc端的IP和板上的IP是否同一个网段,如把PC改为192.168.0.10,板改为192.168.0.15,一定要设置好! 启动服务 sudo /etc/init.d/nfs-kernel-server start 目标板进行挂载:mount -t nfs 192.168.0.10:/home/yy/share /mnt -o nolock 可能会提示你的版本过低之类的信息,不要紧,不影响使用,现在切到/mnt可以看到pc端的share文件内容了,-t表示临时挂载,-o nolock表示不锁,默认是使用UDP协议,对一些小文件不要紧,如果文件较大,可以使用-o tcp来指定使用TCP协议,否则掉包很严重!可随时用df命令来查看是否有文件挂载。 三、安装交叉编译工具链 有三种方法: 1、分步编译安装所需的库和源代码,最终生成交叉编译工具链,最复杂。 2、通过Crosstool脚本工具来实现一次性生成,相对简单许多。 3、直接用已经制作好的交叉编译工具链,最简单省事,但局限性较大,毕竟是人家构建好的,也就是固定没灵活性,使用时可能出 现许多莫名的错误。下面介绍第三种方法,其它的另行参考资料。 把cross-3.4.1.tar.bz2拷到任一目录;解压: tar xjvf cross-3.4.1.tar.bz2 此时会生成一个文件,把3.4.1拷到/usr/local/arm,如果没有目录创建即可; 设置一下路径:比如/home/yy/.bashrc 在后面加入export PATH=$PATH:/usr/local/arm/3.4.1/bin 重新登录,输入arm-linux-gcc -v 看是否成功; 再安装这个必需包: sudo apt-get install build-essential,还有编译内核时可能用到这些包kernel-package,libncurses5-dev fakeroot 四、Qt图形界面 终于到Qt了,Qt是我花的时间最多的,我觉得学Qt不能象以往那样,把一个例程完整地写完,运行发现没问题了,再看看每一步的意思,我们要先懂每一步的意思,再把Qt移植到arm板上,移植常见的有这三种: 1、从一个硬件平台移植到另外一个硬件平台; 2、从一个操作系统移植到另一个操作系统; 3、从一种软件库环境移植到另一种软件环境; Qt移植属第三种,这里我选用Qt4.2.2的,因为我手头上刚好有Qt4.2的资料,编译器用3.4.1的,下面开始了: 下载qtopia的开源代码 www.qtch.org/download/qtopia-core-opensource-src-4.2.2.tar.gz 解压: tar xzvf qtopia-core-opensource-src-4.2.2.tar.gz 到任一目录, 重命名 mv qtopia-core-opensource-src-4.2.2 qtopia-core-opensource-src-4.2.2-arm 进入解压的文件 cd qtopia-core-opensource-src-4.2.2-arm 配置 ./configure -embedded arm -xplatform qws/linux-arm-g++ -depths all -no-qt3support -qt-mouse-linuxtp 更多选项可以输入./configure -help来查看,如果要支持Qvfb,可以加入-qvfb 没什么错误的话可以make了,这个过程较长,最后make install软件安装在/usr/local/Trolltech/QtopiaCore-4.2.2-arm下,这样就安装完了; 接下来要移植了,先准备好这些文件:libQtGui.so.4.2.2,libQtNetwork.so.4.2.2,libQtCore.so.4.2.2,fonts, libstdc++.so.6,libstdc++.so.6在/usr/local/arm/3.4.1/arm-linux/lib下,其它的都可以在/usr/local/Trolltech/QtopiaCore-4.2.2-arm下找到,再在demos找个例程,如mainwindow,把准备的这些文件放到/home/yy/share下(也可以放在其它目录,能通过NFS挂载即可)然后按照前面介绍的方法把这些文件挂到开发板, 把*.so.4.2.2的这几个文件拷到开发板的/usr/lib并全部命名为*.so.4,libstdc++.so.6也是拷到这里,但不用重命名, 然后把fonts放到 /usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib,这个目录自己创建;然后ps查看qpe的PID,把它给kill掉,如kill 399,然后再切到mainwindow执行./maindow -qws 哇画面出来了,此时可以插上usb鼠标,可以动了!!关于怎样用触摸屏还有待研究,至于怎样自行启动可以到/etc/init.d/rcS中修改,最后送上一句话: 每个人的文件系统不一样,你照着做了也不一定得,初学者最不喜欢看到这句话了,包括我, 但又必须面对,解决方法是从原理着手!这在ok2440-III上试验成功。这是我一个一个字打出来的,也蛮累的,转载注明出处!
- 嵌入式之路
- 嵌入式之路
- 嵌入式工程师之路
- 嵌入式之路--开张
- 嵌入式学习之路
- 嵌入式之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式之路
- 嵌入式学习之路
- 嵌入式学习之路
- 嵌入式高手之路
- 嵌入式开发之路
- 嵌入式工程师之路
- QT-4.5.1移植
- Web Application 项目中使用ASP.NET 2.0 Profile
- Linux Shell编程入门
- js 在IE6 和IE7 IE8对字符串操作的细微差别
- FFClickOnce
- 嵌入式之路
- 小心使用ajaxpro吧!
- 鼠标选择文本
- C# override overload overwrite
- 云计算概念大全
- lucene-使用CJKTokenizer分词
- JavaEE
- 求一个字符串中出现次数最多的字符的高效算法
- lucene入门-索引目录下的所有网页以及索引检索