第三组Linux大作业设计报告.docx
- 文档编号:6082825
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:14
- 大小:708.35KB
第三组Linux大作业设计报告.docx
《第三组Linux大作业设计报告.docx》由会员分享,可在线阅读,更多相关《第三组Linux大作业设计报告.docx(14页珍藏版)》请在冰点文库上搜索。
第三组Linux大作业设计报告
软件学院大作业设计报告
课程名称:
嵌入式Linux应用程序开发
题目:
基于UP-CUP2440平台的驱动程序开发和QT程序开发
专业:
计算机软件
班级:
111
姓名学号:
裴超8000611026QT设计与设计报告
王国健8000611119LED驱动
孙风涛8000611005LED驱动与报告设计
苏慧静8000611033QT设计
刘玲玲8000611105设计报告
完成人数:
5
任课教师:
李岚职称:
副教授
完成时间:
2014年6月11日
目录
目录1
摘要2
Abstract3
任务A(QT)4
1、在Linux下使用QtDesigner设计QT程序界面(计算器)4
1.1打开Qt-designer,进行GUI界面设计4
1.2退出界面保存为mainwindow.ui4
2、编译程序,生成可执行代码5
2.1编写mainwindow.cpp、mainwindow.h、main.cpp5
2.2用qmake-project命令生成文件.pro,用qmake命令生成Makefile文件6
2.3使用make编译生成可执行文件6
3、编写test.sh配置环境并使计算器可以在液晶屏上显示、操作7
4、打开超级终端,挂载nfs,执行test.sh文件得到计算器界面。
8
任务B(LED驱动)10
1、实验原理(LED灯控制原理)10
2、实现过程与结果10
2.1、编写基于UP-CUP2440硬件平台的GPIO驱动程序10
2.2、NFS挂载及运行结果11
C总结与感悟13
1、不足和感悟13
2、结语14
D参考文献15
摘要
随着现代化的发展,嵌入式的应用越来越广泛,本次设计我们是在Linux环境下的设计,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
此次期末设计,本着合作开发设计的原则,我们小组选按照任务书要求进行设计,共分为两部分,一部分是对驱动的涉及,一部分是对QT的设计。
本次设计是基于开发板的设计,运用了虚拟机和超级终端,利用交叉编译,实现电脑模拟与开发板运行双重效果,总体来说有一定的现实意义。
关键字:
Linux,驱动设计,QT
Abstract
Withthedevelopmentofmodernization,moreandmoreextensiveapplicationofembedded,thisdesignisdesignedinLinuxenvironment,LinuxisaUnixoperatingsystemwhichisfreetouseandfreecommunication,isbasedonamulti-user,multitask,thePOSIXandUNIXoperatingsystemsupportformultiplethreadsandmultipleCPU.ItcanruntheUNIXtoolsoftware,applicationsandnetworkprotocols.Itsupports32bitand64bithardware.LinuxinheritsthedesignideaofUnixnetworkasthecore,isamulti-usernetworkoperatingsystemstability.
Thefinaldesign,thespiritofcooperationinthedevelopmentofdesignprinciples,ourgroupchoseisdesignedaccordingtothetaskbookrequirements,isdividedintotwoparts,onepartistodriveto,onepartisthedesignofQT.
Thisdesignisbasedonthedesigndevelopmentboard,usingthevirtualmachineandsuperterminal,usingthecrosscompiler,thecomputersimulationandthedevelopmentboardtorunadoubleeffect,overallthereisacertainpracticalsignificance.
Keywords:
Linux,driverdesign,QT
任务A(QT)
1、在Linux下使用QtDesigner设计QT程序界面(计算器)
1.1打开Qt-designer,进行GUI界面设计
/usr/local/Trolltech/Qt-x11-4.4.0/bin/designer
1.2退出界面保存为mainwindow.ui
2、编译程序,生成可执行代码
2.1编写mainwindow.cpp、mainwindow.h、main.cpp
2.2用qmake-project命令生成文件.pro,用qmake命令生成Makefile文件
2.3使用make编译生成可执行文件
3、编写test.sh配置环境并使计算器可以在液晶屏上显示、操作
4、打开超级终端,挂载nfs,执行test.sh文件得到计算器界面。
任务B(LED驱动)
1、实验原理(LED灯控制原理)
UP-CUP2440开发平台设置了 3 个 GPIO控制的 LED,和 1 个可直接产生外部硬件中断的按键。
LED分别使用 S3C2410/S3C2440的 GPC5,GPC6,GPC7(PXA270 的 GPIO0,GPIO1,GPIO52)三个 GPIO,按键接到 INT5 中断(PXA270的 GPIO97)
2、实现过程与结果
2.1、编写基于UP-CUP2440硬件平台的GPIO驱动程序
本次LED灯的控制是在实验八的基础上实现的,程序代码原型也为09_int中的代码。
首先需要对源程序进行编写以及编译,修改添加的部分代码如下:
intflag=-1;
irqreturn_ts3c2440_IRQ3_fun(intirq,void*dev_id,structpt_regs*reg)
{
flag++;
if(flag==1){
printk("%d\n",flag);
led01_enable();
mdelay(200);
led01_disable();
mdelay(200);
led02_enable();
mdelay(200);
led02_disable();
mdelay(200);
led03_enable();
mdelay(200);
led03_disable();
}
if(flag==3){
printk("%d\n",flag);
led01_enable();
mdelay(200);
led01_disable();
mdelay(200);
led03_enable();
mdelay(200);
led03_disable();
mdelay(200);
led02_enable();
mdelay(200);
led02_disable();
mdelay(200);
}
if(flag==5){
printk("%d\n",flag);
led01_enable();
led03_enable();
led02_enable();
mdelay(600);
}
if(flag==7){
printk("%d\n",flag);
led01_disable();
led03_disable();
led02_disable();
mdelay(600);
flag=-1;
}
}
清除其中间代码:
makeclean;然后对其重新编译:
make。
2.2、NFS挂载及运行结果
1)ARM端挂载NFS 共享目录:
up-tech:
~ # mount -t nfs 192.168.0.6:
/UP-CUP2440 /mnt/nfs/ -o nolock,rsize=4096,wsize=4096 。
2)进入串口终端的NFS共享试验目录
up-tech:
/mnt/nfs/SRC/exp/basic/09_int # insmod s3c2440-int.ko
执行编译成功的程序结果如下:
C总结与感悟
1、不足和感悟
经过两个多星期的设计和开发,系统基本开发完毕。
当然,在本次期末设计中也遇到不少的困难,比如代码挂载编辑过程中,一直无法编辑,是由于编辑的功能没有安装,执行了安装命令之后就可以编辑成功。
另外,在按中断按键过程中,最后一次跳转总是和第一次跳转合并,经检测,代码返回值出现了问题,所以设置了初始值和最后一次按键返回值都为为-1,从而避免了此类问题的出现。
在这次课程设计的过程中,我们不仅体会到了团结合作的重要性,而且重要的是对本学期所学的知识进行了系统的复习、扩展和运用。
做一个系统,首先要的是对系统进行需求分析,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系。
通过此次的实践,我们小组体会到学以致用额乐趣,同时,也增长了我们课堂外多方面的知识。
在设计实现过程中,还出现过许多小问题问题,包括代码编写过程中断的问题,挂载实现的过程等,但最后都得到了解决。
在解决过程中,我们的合作能力与分析解决问题得到了长足发展。
2、结语
首先感谢陈老师给我们这次大作业的机会,在本次试验中,我们充分认识到了团队合作的重要性,队友们之间相互竞争,合作互助,大大提高了我们的实验效率。
本次我们团队是做的LED等驱动控制和QT计算机,利用虚拟机模拟,终端交叉编译和开发板上的运行。
虽然我们的设计作品还不是很成熟,即使借鉴了很多前人的资料仍然还有很多不成熟的地方。
但我们仍然有莫大的成就感,我们走过了一个过程,这次经历,我们终生受益。
从这次试验中,我摆脱了以前遇见代码不敢面对的现象,真正明白了“问题是用来解决的”这句话的道理。
要敢于动手,哪里不会学哪里,只有在真正的实验过程中,我们才能发现自己技术方面的短板,从而去解决它。
再次感谢李老师和我的好队友。
D参考文献
从实践中学嵌入式Linux应用程序开发华清远见嵌入式学院温尚书陈刚冯利美编著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 Linux 作业 设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)