资源描述
课程设计成果说明书题 目: linux环境下PDA模拟界面程序调试 学生姓名: 学 号: 学 院: 机电工程学院 班 级: A07电信 指导教师: 浙江海洋学院教务处2010年06月21日28浙江海洋学院课程设计成果说明书规范要求课程设计说明书是课程设计主要成果之一,一般在20003000字。1说明书基本格式版面要求:打印时正文采用5号宋体,A4纸,页边距上、下、左、右均为2cm,行间距采用固定值20磅,页码底部居中。文中标题采用4号宋体加粗。2说明书结构及要求(1)封面(2)课程设计成绩评定表(3)任务书(指导教师下发)(4)摘要摘要要求对内容进行简短的陈述,一般不超过300字。关键词应为反映主题内容的学术词汇,一般为3-5个,且应在摘要中出现。(5)目录要求层次清晰,给出标题及页次。最后一项为参考文献。(6)正文正文应按照目录所确定的顺序依次撰写,要求论述清楚、简练、通顺,插图清晰整洁。文中图、表及公式应规范地绘制和书写。(7)参考文献浙江海洋学院课程设计成绩评定表2009 2010 学年 第2 学期学院 机电工程学院 班级 A07电信 专业 电子信息工程 学生姓名(学号)陆飞/卢立硕侯宇龙/周玉峰课程名称嵌入式系统课程设计题 目linux环境下PDA模拟界面程序调试指导教师评语指导教师签名: 年 月 日答辩评语及成绩答辩小组教师签名: 年 月 日浙江海洋学院课程设计任务书2009 2010学年 第 2 学期学院 机电工程 班级 AC07电信 专业 电子信息工程 学生姓名(学号)/卢立硕侯宇龙/周玉峰课程名称嵌入式系统课程设计设计题目linux环境下PDA模拟界面程序调试完成期限自 2010 年 6 月 21 日至 2010 年 7 月 2 日 共 2 周设计依据本次设计所需知识1. S3C2410的基本知识2. Linux系统常用命令3. linux编辑器VI的使用方法4. MiniGUI的基本知识5. C语言编程技术6. MiniGUI编程技术设计要求及主要内容1 熟悉linux系统的常用操作命令2 熟悉VI(或GVIM)的操作方法3 完成虚拟机VM的安装4 完成虚拟机VM下的Linux(RedHat9.0)的安装5 完成交叉编译环境的建立6 完成PC机环境下minigui的安装与配置7 完成minigui的移植8 完成minigui环境下PDA模拟界面的测试,要求结果能分别在QVFB和实验箱的LCD上显示。9 录制设计结果演示和解说视频10 完成课程设计说明书的撰写。撰写格式要求按照机电工程学院毕业设计文本规范。参考资料1. ARM9嵌入式系统设计基于S3C2410与Linux.徐英德等.北京航空航天大学出版社.2007年.2. 嵌入式系统实验指导书.自编.3. 实验指导书EL-ARM-830型教学实验系统(ARM9).北京精仪达盛科技有限公司.4. Minigui实验指导书(for S3C2410).北京精仪达盛科技有限公司.5. Minigui编程指南.飞漫公司.6. FTP资源:172.16.51.104 端口:21 用户名:dx 密码:1234. 在/ARM目录下。指导教师签字赵秋亮、张华日期2010年6月电子与信息工程专业课程设计摘要PDA,即个人数字助理(Personal Digital Assistant),又叫掌上电脑,主要提供记事、通讯录、名片交换及行程安排等功能。其操作系统主要有Linux OS、Palm OS、Windows Mobile(Pocket PC)三大阵营。本次课程设计我们主要采用Linux系统完成PDA模拟界面的程序调试。在虚拟机上安装miniGUI用QVFB进行模拟显示,建立交叉编译环境,成功后挂载实验箱调试,最后将程序烧写到试验箱,并成功自启动运行。关键字:PDA linux 烧写 miniGUI 交叉编译目 录前 言11总体流程22环境搭建33模拟调试114调试175烧写236总结24参考文献25前 言PDA是Personal Digital Assistant的缩写,字面意思是“个人数字助理”。 这种手持设备集中了计算、电话、传真和网络等多种功能。它不仅可用来管理个人信息(如通讯录、计划等),更重要的是可以上网浏览、收发Email,可以发传真,甚至还可以当作手机来用。尤为重要的是,这些功能都可以通过无线方式实现。当然,并不是任何PDA都具备以上所有功能;即使具备,也可能由于缺乏相应的服务而不能实现。但可以预见,PDA发展的趋势和潮流就是计算、通信、网络、存储、娱乐、电子商务等多功能的融合。在此,我们仅使用Linux操作系统对PDA的模拟界面进行调试,对其中涉及到的功能部分,暂不做处理。该模拟界面最终可以实现界面显示,可移动选择框,并在右下角显示相应图标的文字。 1 总体流程主要叙述AM收音机的基本工作原理2 环境搭建1. 安装虚拟机首先解压VMware_Workstation_5.5.3_34685H和VMware-workstation-5.5.3-34685两个压缩文件,然后双击VMware-workstation-5.5.3-34685.exe出现界面,如图:一直单击next然后选择安装路径,最后,按照默认设置完成虚拟机的安装。2. 安装red hat 9首先新建虚拟机,在“home”里面,选择“new virtual machine ”,如图:接着,一直单击“下一步”,按照系统默认设置安装,直到出现如图所示:选择“custom”单击“下一步”继续安装。当出现如图界面时选择new-Workstation5单击下一步继续安装。 然后在如上图中选择linux,在下拉菜单中选择red hat liunx完成后单击下一步继续安装。在新界面中,单击“browse”选择安装路径,修改名称,之后,按照系统的默认设置,一直单击“下一步”,直到出现如下图:双击CD-ROM,装载镜像安装文件,然后单击“Start this virtual machine”开始安装RedHat按照默认设置一路安装下来。直到出现如下界面时,按Tab键,选择skip,回车,跳过。然后继续按照默认设置,直接点“下一步”,设置根口令为123456:当对话框提示选择软件包组时,选择全部,这里必须选择全部,否则一下很多操作将出现错误。如下图所示:接着按照默认设置,一直单击“下一步”中间选择“自动分区”,最后会出现两次提示更换换光盘按alt+ctrl键,释放鼠标,选择“VM/settings/hardware/browse”,选择光盘。最后,等待安装结束。这样reahat就安装完成了。3. 安装VMware Tools启动好RedHat后选择“VM/Install VMware Tools”进行安装。如图:选择Install,将VMwaretools-6.0.2-59824.tar.gz复制到根目录下的tmp文件夹下。在Linux系统中新建终端,键入如下命令:rootlocalhost root# cd /tmprootlocalhost tmp# tar zxvf VMwaretools-6.0.2-59824.tar.gzrootlocalhost tmp# cd vmware-tools-distribrootlocalhost vmware-tools-distrib# ./vmware-install.pl开始安装。如图然后一直按回车或者“yes”,按照系统默认设置,安装好VMware Tools。4. 共享文件夹安装好VMware Tools后就可以实现虚拟机中Linux文件和实际操作系统中文件的共享了。选择“VM/Settings”,选择Options选项卡,选择“Shared Folders”,点击Add,选择要共享的文件夹,点击下一步,完成,即可实现文件夹共享。5. 交叉编译环境搭建关掉Linux,添加串口。选择“VM/Settings”,在Hardware选项卡中点击Add,添加串口,选择Serial Port,下一步,直到完成。之后会在启动界面在根目录下,创建linuette文件夹,将交叉编译所需的安装文件rpms文件夹拷贝到/linuette目录下,然后新建终端,把目录切换到rpms文件夹下,并执行rpm Uvh *.Rpm命令,如图:此时提示解压发生错误,如图:原因是已经安装过了更新的版本(1.7.8),解决办法是强制安装老版本(1.7.3)压缩包,如图:虽然有警告提示,但安装成功,在/opt文件夹下有host文件夹生成,问题解决。6. qvfb安装把qvfb-1.0.tar.gz复制到/opt目录下,然后新建终端,输入如下命令:rootlocalhost root# cd /opt 把目录切换到/opt下rootlocalhost opt# tar zxvf qvfb-1.0.tar.gz 解压qvfb-1.0.tar.gz文件,生成qvfb-1.0文件夹rootlocalhost opt# cd qvfb-1.0 把目录切换到qvfb-1.0文件夹下rootlocalhost qvfb-1.0# ./configurerootlocalhost qvfb-1.0# makerootlocalhost qvfb-1.0# make install 安装安装成功后,在终端输入如下指令rootlocalhost qvfb-1.0# qvfb &,调出qvfb模拟界面,如图:点击菜单栏的File选择configure选项,可根据自己想要的分辨率,颜色深度,显示风格等来设置qvfb,在我们的实验是PDA界面,故选择240x320的大小,depth选择16 bit。7. miniGUI安装在Linux环境下,把minigui-res-1.3.3.tar.tar文件复制到/opt/em目录下(em目录为创建的目录),然后把终端中的目录切换到该目录下,如图:解压,如图:然后终端目录切换入解压出来的minigui-res-1.3.3文件夹,输入make install至此,Minigui资源文件安装完成。 把libminigui-1.3.3.tar.gz文件(注意,是2.1MB的那个)复制到/opt/em目录下,并把终端中的目录切换到该目录下,解压该文件,如图:终端目录切换到解压后生成的libminigui-1.3.3文件夹,输入make menuconfig进行配置,如图:启动图形界面的配置工具,如图:按MINIGUI实验指导书P6页进行配置,该配置是在PC上模拟的配置。配置完成后,选中Exit,回车。出现提示“Do you wish to save your new MINIGUI configuration?”的对话框,选中“Yes”后退出。系统会自动运行一段时间,用来改变到新的配置项和生成相关的Makefile文件,等系统停止输出后,查看文件/etc/ld.so.conf,修改该文件,在最后一行加入/usr/local/lib,保存。修改后该文件类似图:新建一个终端,输入ldconfig(因为刚刚修改了动态链接库),如图:继续在原来的终端中输入make,如图:等系统再次停止输出,并没有错误时,输入make install,如图:至此,Minigui的仿真环境安装完毕。3 模拟调试1. 文字-Hello World调试把mg-samples-1.3.0.tar.gz复制到/opt/em文件夹下,并解压,如图:进入生成的mg-samples-1.3.1文件夹,并输入./configure,等系统自动输出内容结束后,再输入make命令,如图:然后,在/usr/local/etc目录下找到MiniGUI.cfg文件,并作如图修改:新建一个终端,使用qvfb &启动qvfb,在configure选项中把分辨率改成640x480的大小,depth选择16 bit。在原来的终端中进入mg-samples-1.3.1文件夹下的src文件夹,并输入./helloworld,执行helloworld程序。在qvfb窗口中出现helloworld,如图:至此,对miniGUI的文字显示测试完成。2. 图片-扫雷及推箱子调试把mde-1.3.0.tar.tar文件复制到/opt/em文件夹内,并解压,如图:进入解压生成的mde-1.3.0文件夹,输入./configure,结束后输入make命令,生成可执行文件。新建一个终端,输入qvfb &启动qvfb,并在configure选项中把分辨率改成640x480的大小,depth选择16 bit。在原来的终端中,目录切换进入mde-1.3.0下的bomb文件夹,执行./bomb命令。在qvfb窗口中出现扫雷界面,并且可以玩,如图:把终端目录切换入mde-1.3.0下的housekeeper文件夹,执行./housekeeper命令,在qvfb中模拟推箱子游戏,如图:至此,对miniGUI的图片显示测试完成。3. PDA界面调试新建终端,输入qvfb &打开qvfb窗口,同时新建一个终端,把目录切换到pda文件夹内,执行make命令,生成可执行的desktop文件,然后执行./desktop,在qvfb窗口显示如下:此时并没有像程序说的那样,随着图片的选中而在最下面显示“开始”“我的电脑”“回收站”等字样。我们重新用linux的中文输入法输入一遍要显示的文字,并把“开始”改为“Start”。改变“我的电脑”等文字的显示位置,从下面改为中间,如图:原程序设置背景颜色为白色,现改为蓝色,如图:改为原字体设置是白色,跟背景色一样,现改为红色,如图:改为重新执行make以及./desktop命令后,效果是,能出现“我的电脑”和“Start”,但用键盘选中其他图标后,显示的文字仍然是“我的电脑”,同时“Start”消失。如图:再次修改程序,把选中图标后重新显示文字这部分程序提前,如图: 再次执行make,./desktop命令后,效果是用键盘选中其他图标后,显示的文字能随之改变,显示的文字的背景变成白色,并且文字会重叠在一起,同时下方的“Start”还是会消失,如图:为解决文字背景问题,把DPA的背景的颜色重新改回白色,为解决文字重叠问题,在短的英文后面填充空格键,经反复尝试键入如下空格恰好能解决文字重叠问题。如图:但是,“Start”任然没有再次显示。经过反复尝试,发现只要将最原始的程序中的显示部分其中的两句程序隐掉,就可正常显示。如图:模拟的效果如图:最后,在程序中把英文改回来。模拟调试完毕。4 实验系统调试1. miniGUI移植配置 新建终端,把目录切换到先前已经解压出来的libminigui-1.3.3文件夹,并且输入make menuconfig,如图:启动图形配置工具,出现如图界面:根据自己的进行配置,该配置是minigui移植的配置。配置完成后,选中Exit,回车。出现提示“Do you wish to save your new MINIGUI configuration?”的对话框,选中“Yes”后退出。系统会自动运行一段时间,用来改变到新的配置项和生成相关的Makefile文件,等系统停止输出后,找到/etc/bashrc文件,编辑该文件,在最后一行加入 export PATH=$PATH:/opt/host/armv4l/bin,然后在终端执行make和make install命令,将交叉编译的minigui库文件安装在/opt/host/armv4l/armv4l-unknown-linux/lib文件夹里了,分别是libminigui-1.3.so.3.0.0和libmgext-1.3.0.0两个文件。配置完毕。2. 交叉编译PDA程序编译Makefile文件,把CC=gcc改成CC=/opt/host/armv4l/armv4l-unknown-linux-gcc,如图: 改成把终端的目录切换到/opt/em/pda/下,执行make命令,产生如下错误:提示头文件找不到,解决办法是自己在Makefile文件中指定对应的minigui头文件的目录,如图:但是产生了新的问题,如图:在网上找了相关的资料,但都无法解决该问题,怀疑是Makefile文件出错,但是自动生成的Makefile文件gcc编译没有问题,能用qvfb模拟成功,交叉编译无法不成功。最后终于发现,原来是minigui没有配置成移植模式的配置。配置minigui以后,交叉编译又出现问题,很多函数没有定义,如图:在网上找了资料后,发现是TTF字库没有安装,因为minigui配置执行make menuconfig命令,配置好并选yes后,系统自动输出的内容里有一些信息,如图:按照网上的指示装好字库后,重新make,发现新的错误,很多jpeg的函数没有定义: 最后,在同学的帮助下,重新写了一个Makefile文件,具体内容如下:DEP = helloWorld.cSRC_FILE = helloWorld.cCC = /opt/EmbedSky/4.3.3/bin/arm-linux-gccLIB_MINIGUI = /opt/host/armv4l/armv4l-unknown-linux/lib(注:交叉编译的minigui库文件路径,)INCLUDE_MINIGUI = /opt/host/armv4l/armv4l-unknown-linux/include(注:交叉编译的minigui头文件路径)PROJECT_DIR = hello:$(DEP) $(CC) -o helloWorld $(SRC_FILE) -lpthread -lminigui -lsqlite3 -lm -lmgext -lpng -ljpeg -L$(LIB_MINIGUI) -I$(INCLUDE_MINIGUI) #.PHONY: install#install:# cp helloWorld $(PROJECT_DIR)/target/# echo moving the TARGET to ./target .PHONY: clean clean: rm helloWorld echo it is cleaning.交叉编译终于成功。3. 烧写小系统以下步骤均在Windows系统下完成。用Jflash线连接实验板及PC机。将sjf2410.exe和vivi放在同一目录(我们的是E:1)下,点击开始菜单,运行,输入cmd,打开命令提示符窗口,用DOS命令打开放vivi的目录,输入sjf2410.exe /f:vivi出现需要输入选项的时候都输入0,然后回车。三次输入后,正常情况下会出现Eppppppppp的界面,等待至烧写结束,输入2退出,即可完成vivi的烧写。连接串口线,打开超级终端,配置超级终端(115200,8位数据,1位停止位,无奇偶校验,无数据流控制)。给系统上电,同时一直住空格键进入vivi。输入下面命令进行NANDFlash分区:vivi bon part 0 128k 192k 2m 14m:m建立好分区后,按实验板上的复位键,输入下面命令重新下载vivi。vivi load flash vivi x 然后选择超级终端中菜单栏下“传送/发送文件”选择“vivi”文件(在实验程序中的small_sys文件夹中)及Xmoden,发送。完成后,输入下面命令下载内核:vivi load flash kernel x 然后选择超级终端中菜单栏下“传送/发送文件”选择“zImage”文件及Xmoden,发送。完成后,在终端中输入下面指令下载文件系统:vivi load flash root x 然后选择超级终端中菜单栏下“传送/发送文件”选择“root.cramfs”文件及Xmoden,发送。至此,就完成了vivi、内核及小系统的烧写。4. 交叉网线调试环境建立插上交叉网线,关闭XP系统下的防火墙。然后新建终端,输入命令setup,在弹出的菜单界面中选择firewall configuration ,关闭防火墙,如图:再选择System services,选中其中的nfs,如图:按F12退出,完成配置。利用vi编辑器打开etc/exports文件,加入如下内容:/ (rw) 按esc键切换到最后行模式,按 “:”再输入wq,保存退出。然后进入到etc/rc.d/init.d/目录下面,执行命令./nfs start 启动nfs第一次出现错误,如图:上网查找到解决办法是重启RedHat系统,重启后成功,如图:启动nfs成功。进入网上邻居,查看网络连接,设置本地连接中的属性中的Internet协议,属性,选择使用下面的IP地址,设置IP地址为172.16.51.80。然后用ifconfig eth0 172.16.51.5修改实验系统的IP地址。设置好windos主机的IP地址和实验系统的IP地址后,回到root目录下面,输入命令minicom s进入Minicom 的设置 ,选择第三项:serial port setup ,回车通过对应字母键选择,配置minicom的内容如图所示:注意,选择E进入后依次按I,L,V完成E Bps/Par/Bits的配置。完成后save setup as dfl保存退出。按下实验系统的复位按钮,进入实验系统和主机的ping测试。输入命令ifconfig eth0 172.16.51.4 修改Linux系统地址,然后输入命令:ping 172.16.51.5第一次没有成功,出现下面的错误:后来进入redhat系统设置,安全级别,修改redhat的安全级别为无防火墙。正常重启后最后一行开头为“”,而不是rootlocalhost root#,且可输入命令。重新ping172.16.51.5成功,如图所示:注意:ping不得新建终端操作。Ping windows主机的IP地址172.16.51.80也成功。到此,主机和实验系统的通信环境就完全搭建好了。5. 挂载实验箱调试在/home目录下新建文件夹nfs,点击鼠标右键,属性,选择“权限”选项卡,勾选所有的“可读”、“可写”、“可执行”,或者新建终端,输入命令chmod 777 /home/nfs改变nfs文件夹属性为可读写且可执行。以后放入该文件夹中的每一个文件都要做改变权限的操作,否则会出错。在ping通的终端下输入ifconfig eth0 172.16.51.4,改变Linux系统IP,输入mount -o nolock 172.16.51.5:/home/nfs /mnt/yaffs进行挂载。注意,此处必须使用ping通的终端,这个终端相当于windows操作系统下的超级终端。挂载后,进入yaffs目录下,如图:6. 烧写大系统及测试将vivi、zImage、bigroot.cramfs及imagewrite(在实验程序中都可找到)复制到nfs目录下,并修改权限。利用imagewrite软件进行烧写,在挂载后的终端下输入./imagewrite /dev/mtd/0 vivi:0,进行vivi烧写,再用同样方法烧写zImage及bigroot.cramfs,之后用./hello命令运行可执行文件,如图:出现最后一行的字样表示烧写成功,复位实验板后会在LCD屏上显示小企鹅。7. 挂载实验箱测试PDA界面MiniGUI配置,测试界面,测试键盘驱动5 烧写最终程序1. 制作可烧写文件放可执行文件,改自启动,制作2. 烧写由于之前已经在烧写大系统的时候烧写过vivi和zImage,所以这里我们只要少写制作好的可少写文件就可以了。把制作好的desk.cramfs文件复制到nfs文件夹下,并修改权限,在终端下利用imagewrite软件进行烧写,如图:烧写结束后,即可关闭实验箱电源,拔掉实验箱上除电源线以外的所有线,进行最后的测试。3. 测试给实验箱上电,LCD屏上先出现小企鹅,如图:过一会就出现PDA界面,如图:按动键盘上的6 总结本次课程设计一共持续了10天,在这10天里我们从拿到题目后的毫无头绪,到渐渐的熟悉linux系统,熟悉交叉编译,熟悉miniGUI的环境,到最后完成课程设计,从中学到了很多东西。在不断的发现错误和解决错误的过程中,我们学到了书本上学不到的知识,同时,我们的耐心和细心以及团队合作能力也得到了锻炼。通过这次自己的动手操作,我们发现很多看上去简单的东西其实都需要花费很大的精力。总体来说,这是一次非常成功的课程设计,全组人员都参与其中,各自都学到了不少东西。 参考文献1. ARM9嵌入式系统设计基于S3C2410与Linux.徐英德等.北京航空航天大学出版社.2007年.2. 嵌入式系统实验指导书.自编.3. 实验指导书EL-ARM-830型教学实验系统(ARM9).北京精仪达盛科技有限公司.4. Minigui实验指导书(for S3C2410).北京精仪达盛科技有限公司.5. Minigui编程指南.飞漫公司.6. FTP资源:172.16.51.104 端口:21 用户名:dx 密码:1234. 在/ARM目录下。7. 8. http:/www.minigui.org/cgi-bin/lb5000/topic.cgi?forum=6&topic=55489. 10. http:/www.linuxsir.org/bbs/archive/index.php/t-100363.html附录1:PDA界面程序源文件
展开阅读全文