《嵌入式系统》课程设计_第1页
《嵌入式系统》课程设计_第2页
《嵌入式系统》课程设计_第3页
《嵌入式系统》课程设计_第4页
《嵌入式系统》课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、福建工程学院 通信工程(闽台) 嵌入式TQ2440移植 课程设计 课程设计 题 目: 嵌入式TQ2440移植 班 级: 通信工程1202 学 号: 3128602205 姓 名: 黄钊 指导老师: 张平均/陈婧 2016年 01 月 17 日21By Jaus_Hwang 黄钊目录一、实验课题1二、课程目标1三、任务要求1四、课程内容14.1 Linux初识14.1.1 CentOS简介(教室虚拟机用)24.1.2 MintLinux简介(自用)24.2 准备34.3 安装交叉编译工具34.4 安装nfs服务54.5 安装minicom串口通信工具74.6 TQ2440与Linux的文件共享8

2、4.6.1 在TQ2440挂载Linux文件系统84.6.2 TQ2440利用nfs服务启动远端QT文件系统94.7 TQ2440开发版烧写104.8 QT编程环境搭建104.8.1 编译QT的x86及arm双平台环境104.8.2 安装QTCreator软件114.8.3 MintLinux下QT环境遇到的问题124.9 完善QT文件系统的QT-4.7库124.9.1 Tslib触屏检测124.9.2 移植QT-4.7库到nfs文件系统134.9.3 在nfs文件系统中添加文泉驿中文正黑体字库134.9.4 设置环境变量及指令软连接134.10 利用QtCreator创建测试程序144.10

3、.1 新建项目“FloatTest”144.10.2 界面ui设计154.10.3 添加代码154.10.4 编译测试164.10.5 QT项目文件结构的认识174.11 LED编程测试174.11.1 动态加载LED驱动程序174.11.2 新建文件夹“Qt4_LED”作项目文件夹174.11.3 touch 出QT项目4个基础文件174.11.4 界面ui设计174.11.5 利用vim编写代码184.11.6 利用终端编译20五、课程总结21一、实验课题Linux平台下基于TQ2440嵌入式开发板的QT编程及移植二、课程目标进一步巩固嵌入式系统的基本知识;掌握嵌入式应用系统的基本结构;掌

4、握嵌入式系统开发环境搭建与试用;掌握嵌入式系统基本驱动、应用程序的设计和移植调试;三、任务要求安装交叉编译工具;安装nfs服务与minicom软件;搭建QT环境(编译QT源码方式)及安装QtCreator软件;学习QT编程语言;四、课程内容4.1 Linux初识Linux,用最简单的术语来说,它也就是个操作系统。通过系统,让应用程序和管理人员能够访问计算机上的设备来执行所需的功能。详细了说,Linux也是和Windows、Mac OS等非常相似的操作系统。Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由linus在1991年10月5日首次发布。只要遵循GNU通用公用许可

5、证(GPL)任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和二次发布。大多数Linux发行版还包括像提供GUI的X-Window之类的界面框架。严格来说,Linux只表示操作系统内核本身,但现况基本指代所有采用Linux内核的操作系统,包括GUI组件和许多其他工具。这些支持用户空间的系统工具和库主要由Richard于1983年发起的GNU计划提供,但Linux不属于GNU计划。4.1.1 CentOS简介(教室虚拟机用)CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于RHEL(Red Hat

6、 Enterprise Linux)依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的RHEL使用。两者的区别在于,CentOS并不包含封闭源代码软件,对上游代码的主要修改是为了移除不能自由使用的商标。2014年,CentOS宣布与Red Hat合作,但CentOS将会在新的委员会下继续运作,并不受RHEL的影响。4.1.2 MintLinux简介(自用)Linux Mint是一种基于Ubuntu和Debian开发出的Linux操作系统。由Linux Mint Team团队于2006年开始发行。Linux Mint的目标是为

7、家庭用户和企业客户提供一个免费、高效、易用、高雅的桌面操作系统。Linux Mint是目前DistroWatch排行榜上第一名的Linux发行版。他继承了Ubuntu的众多优点,同时也在Ubuntu的基础上加入很多自己优秀的特性。Linux Mint致力于提供一种更开箱即刻可用的用户体验,免去用户要安装系统后还要自己安装一系列满足基本使用需求的软件。它包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件。它也增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于web的软件包安装界面。因为基于Ubuntu,Linux Mint与Ubuntu软件仓库完全兼容,采用a

8、pt管理和.deb软件包。从5.0开始,Mint遵循每六个月发布一次新版本的制度,并且采用简化的版本计划。从17.0开始,Mint基于Ubuntu长期支持版,并会在下一个长期支持版发布之前持续向后移植一些重要的应用程序,下一个长期支持版本发布后,则转为只有安全更新的模式直到支持结束。此外有不基于Ubuntu而基于Debian稳定版的版本,称之为LMDE (Linux Mint Debian Edition),目前最新版本为2(Besty)。4.2 准备4.3 安装交叉编译工具解压缩EABI工具包:tar jxvf /mnt/hgfs/hz/EABI-4.3.3_EmbedSky_2009121

9、0.tar.bz2 C /添加路径至全局变量PATHvim /etc/bash.bashrc添加上:extport PATH=$PATH:/opt/EmbedSky/4.3.3/bin使用source /etc/bash.bashrc使bash.bashrc重新生效查看全局变量PATH:echo $PATH使用arm-linux-gcc v查看该交叉编译器版本,间接确定了该交叉编译工具在全局可用4.4 安装nfs服务使用sudo apt-get install nfs-kernel-server来安装nfs服务同时,还需关闭防火墙ufw以及卸载iptables服务并在/etc/exports添

10、加nfs共享路径及权限:重启nfs服务:简单测试nfs服务挂载功能:可以看到,成功把自己的根目录挂载到/mnt下了使用:umount /mnt来卸载:4.5 安装minicom串口通信工具使用指令:sudo apt-get install minicom来安装minicom软件我们还需要进行一些设置,才能使minicom识别到串口minicom -s:完后保存为默认dfl,Exit退出4.6 TQ2440与Linux的文件共享4.6.1 在TQ2440挂载Linux文件系统4.6.2 TQ2440利用nfs服务启动远端QT文件系统解压缩root_qt_4.5__20100601

11、.tar.bz2:tar jxvf root_qt_4.5__20100601.tar.bz2 -C /改名为rootnfs:修改nfs文件系统的rcS配置:使用串口线和网线,使TQ2440与PC机连接,终端开启minicom,TQ2440开机,终端敲空格,进入定义启动方式:先选0 set boot parameters;再选1 set NFS parameters;然后输入PC机IP:;TQ2440开发板IP:;子网掩码:;nfs文件系统路径:/opt/EmbedSky/rootnfs;s 保存当前设置;q

12、 退回上层菜单;8 重新启动。4.7 TQ2440开发版烧写使用DNW软件(Windows平台)用USB线连接TQ2440开发板按照如下顺序烧写(传送文件):u-boot_TFT70.bin (u-boot)zImage__A70_256MB.bin (内核)root_qtopia_2.2.0__256MB.bin (文件系统)4.8 QT编程环境搭建4.8.1 编译QT的x86及arm双平台环境解压缩qt-everywhere-opensource-src-4.7.0.tar.gz到/opt/EmbedSky/qt-4.7/下复制执行脚本到/opt/Embed

13、Sky/qt-4.7/下当前qt-4.7路径下分别执行./x86_qt4.7_build和./arm_qt4.7_build来编译x86和arm的双平台Qt库环境4.8.2 安装QTCreator软件执行chmod 777 qt-creator-linux-x86-opensource-2.0.0.bin赋予可执行权限然后执行./qt-creator-linux-x86-opensource-2.0.0.bin进行安装4.8.3 MintLinux下QT环境遇到的问题编译完成后,x86的qmake手动添加到QtCreator后是可以rebuild成功的,但是arm的却不行,于是上网开始找答案,

14、解决方法如下:4.9 完善QT文件系统的QT-4.7库4.9.1 Tslib触屏检测解压缩tslib-1.4.1.tar.bz2到根目录创建一个tslib的安装目录进入源码目录进行编译、安装:将tslib_install/lib/下的文件拷贝到文件系统的lib/下将tslib提供的触摸屏校准程序ts_calibrate拷贝到nfs文件系统下4.9.2 移植QT-4.7库到nfs文件系统在nfs文件系统中创建/opt/qt-4.7,用来存放qt4.7的库文件4.9.3 在nfs文件系统中添加文泉驿中文正黑体字库将wqy-zenhei中文字体库拷贝到nfs文件系统下:4.9.4 设置环境变量及指令

15、软连接修改nfs文件系统的etc/profile:修改nfs文件系统的bin/qt4:创建双平台的qmake软连接4.10 利用QtCreator创建测试程序4.10.1 新建项目“FloatTest”新建Qt Gui Application模板项目:4.10.2 界面ui设计4.10.3 添加代码floatcal.h添加如下代码:floatcal.cpp添加如下代码:4.10.4 编译测试用qmake-arm命令生成arm编译的makefile然后再执行make,就生成了arm平台可执行的二进制文件,复制到nfs文件系统下:在minicom使用./FloatTest qws fn HHH,执

16、行该二进制可执行文件,就可看到TQ2440开发板上运行了我们设计的这个浮点计算器程序。4.10.5 QT项目文件结构的认识Qt项目仅需要4个的初始文件就可以使用命令,创建一个项目文件夹:XXX.cpp、XXX.h、XXX.ui、main.cpp。main.cpp基本上就是一个模板,可以固定不变,只要修改ui和其他cpp文件,就可以实现其他不同的功能了。4.11 LED编程测试4.11.1 动态加载LED驱动程序复制EmbedSky_LED.ko到nfs文件系统目录下,使用insmod指令,动态加载驱动:# insmod EmbedSky_LED.ko查看是否加载成功:#ls /dev/看到dz

17、led设备,即表示驱动加载成功。4.11.2 新建文件夹“Qt4_LED”作项目文件夹新建Qt4_LED文件夹:4.11.3 touch 出QT项目4个基础文件4.11.4 界面ui设计利用QtCreator打开Qt4_LED.ui文件进行UI设计4.11.5 利用vim编写代码Qt4_LED.h:Qt4_LED.cpp:4.11.6 利用终端编译利用qmake-arm project生成qt4_工程文件:利用qmake-arm makefile Qt_LED.pro生成Makefile文件,然后make编译出arm平台的二进制可执行文件Qt4_LED,复制到nfs文件系统目录下

18、minicom终端执行./Qt4_LED qws fn HHH,就可以看到TQ2440开发板的显示屏上显示了设计的UI界面,并且当选中LED1时,开发板上第4个LED灯熄灭;选中LED2时,开发板上第3个LED灯熄灭;选中LED3时,开发板上第2个LED灯熄灭;选中LED4时,开发板上第1个LED灯熄灭。五、课程总结经过了这两周在实验室的学习,对嵌入式开发有了一定的了解,不过与此相比,我感觉我学到的Linux知识更多,Linux的效率真不是Windows所能比的。虽然UI可能。并不,现在的Linux桌面环境(DE),诸如:gnome、KDE、xfce4、LXDE等等的设计,真不比Win差,或许现在很多人不能接受Linux当做日常使用和工作的主要原因,还是迫于软件的局限,毕竟太多软件只有Win系的版本。虽然能找到些许替代软件,但还是有很大区别,且大部分人熟悉了一款软件,接收了一款软件,真的很难再去习惯另外一款软件,操作系统也就更不用说了。而对于我而言,我是个喜欢各种尝鲜的人,经过这两周,真真切切地把我培养成了L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论