嵌入式实验报告.docx
《嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告.docx(17页珍藏版)》请在冰点文库上搜索。
嵌入式实验报告
嵌入式技术
实验报告
系别:
计算机与科学技术系
班级:
计12-1班
姓名:
刘杰
学号:
12101020128
总成绩:
评语:
日期:
《嵌入式技术》实验报告
实验题目
PlatformBuilder5.0下操作系统定制等实验
总序号
一
实验日期
2014\10\18
总耗时
2小时
实验1.1:
Ø简要实验步骤:
1.1.1使用NewPlatformWizard创建平台
1.打开PlatformBuilder。
1.选择“File”菜单中的“NewPlatform…”,弹出“NewPlatformWizard”向导,选择“Next”。
2.选择“EMULATOR:
X86”BSP,按“Next”按钮继续。
3.在“Availableconfigurations”中选择“internetappliance”,在Location中输入“D:
\”,在“Platformname”中输入工程名,比如“MyPlatform”,按“Next”继续。
4.在“Availablefeatures”中选择希望加入的应用程序,按“Next”继续。
5.在“Availablefeatures”中选择感兴趣的网络协议,按“Next”继续。
6.按“Next”继续。
7.按“Finish”结束平台创建。
1.1.2添加和删除组件
1.展开右边的CatalogView,定位到“Catalog\CoreOS\Displaybaseddevice\Applications–EndUser\\MicrosoftWordViewer”。
2.在“MicrosoftWordViewer”上点鼠标右键,选择“AddtoPlatform”,Word查看器被添加到平台中。
3.展开左边的FeatureView,定位到“MobileHandheld\Applications-EndUser\Help”。
4.在“Help”上点鼠标右键,选择“Delete”,帮助被从平台中删除。
1.1.3配置和编译平台
1.选择“target”菜单的“connectivityoption…”项。
2.在弹出的对话框中依次选择“cedeviceemulatoremulatorkdstub”。
3.选择“BuildOS”菜单的“sysgen”开始构建平台。
1.1.4连接,下载和运行平台
1.选择“Target”菜单下的“Connectionoption”菜单项。
2.在新的对话框中,配置连接关系
3.选择“Target”菜单下的“attach”菜单项,开始下载。
Ø实验结果
操作系统定制成功,能正常运行。
Ø结果截图
Ø问题总结
由于对实验平台了解不够,致使操作过程中添加和删除组件时不知道该如何下手,影响整个实验进度。
实验1.2:
1.打开PlatformBuilder,并且打开实验1的工程,在实验1的工程基础上做本实验。
2.由于要跟踪调试,需要打开跟踪调试选项,在platform菜单下的setting选项里面的buildoption里面需要enablekerneldebugger勾选才能进行跟踪调试。
3.选择“File”中的“Open”菜单,在弹出的对话框中:
C:
\WINCE500\PRIVATE\WINCEOS\COREOS\NK\KERNEL\virtmem.c,然后在916行DoVirtualAlloc函数中随便找一个语句按F9设置断点。
4.PlatformBuilder里面选择“Target”->“attach”下载并运行映像。
然后,我们可以看到系统的执行停在了我们设置的断点上,此时我们可以对程序进行单步跟踪调试,也可以查看系统中的变量。
5.按F9取消断点,然后按F5让系统继续运行。
等待系统启动完毕,模拟器中出现WindowsCE界面。
6.确保“Target”菜单下的“CETargetControl”被选中。
然后在CETargetControl窗口中输入如下命令:
giproc
27.打开tool菜单下的remoteprocessviewer,查看任务信息,将模拟器里面的wince的ie启动起来,再次查看任务信息。
28.打开tool菜单下的remoteperformancemonitor,选择上面的报告图标加入一个icmp的报文监测项目(如下图),然后打开cmd,ping,然后观察remoteperformancemonitor下的报文个数。
结果截图:
调试界面
进程显示
IE信息查看
报文监测
实验1.3使用PlatformBuilder开发应用程序
简单实验步骤
1.打开PlatformBuilder。
2.选择“File”菜单下的“OpenWorkspace…”,然后打开实验1中创建的平台,本实验要基于上面的实验的基础上做。
3.选择“File”菜单下的“NewProjectorFile…”,打开“NewProjectorFile”对话框。
4.在“Projects”选项页中选择“WCEApplication”;在“ProjectName”中输入项目的名字,例如“MyApp”。
5.在“NewProjectWizard–step1of1”中选择“AtypicalHelloWorldApplication”,点击“Finish”按钮。
6.选择“Build”菜单中的“BuildMyApp.exe”来编译应用程序。
7.选择“Target”菜单下的“attach”菜单项,重新运行映像。
8.当WindowsCE的桌面显示之后,选择“Target”菜单下的“RunPrograms…”,然后从弹出的对话框中选择“MyApp.exe”,点“Run”按钮。
在模拟器上,我们此时可以看到MyApp.exe已经成功地运行了。
9.选择“Target”菜单下的“Disconnect”菜单项,断开连接。
10.关闭模拟器,关闭PlatformBuilder。
实验结果
能成功运行HelloWorld.exe程序
结果截图
问题总结
该实验较简单,无问题。
实验1.4:
sdk导出实验
简单实验步骤:
1.打开PlatformBuilder。
2.选择“File”菜单下的“OpenWorkspace…”,然后打开实验1中创建的平台,本实验要基于上面的实验的基础上做。
3.选择“platform”菜单下的“sdk”,选择newsdk。
4.按照向导将相关信息等填好,随便填即可。
5.选择“platform”菜单下的“sdk”,选择buildsdk,编译完成后,将生成的.msi文件放到桌面上
结果截图:
编译成功
桌面msi
问题总结:
该问题比较简单,无问题
《嵌入式技术》实验报告
实验题目
Wince驱动程序开发实验
序号
二
实验日期
2014\11\10
总耗时
2小时
实验2.1:
Ø简要实验步骤
1.1开发驱动程序
1.按上次实验1.1的步骤先定制一个OS;
2.首先要确保当前pb的状态是上文的做成功并看到wince界面。
此外,当前是在这个工程里面。
3.选择菜单的projectorfile,打开向导。
4.选择WCEDynamic-LinkLibrary类型的,即DLL类型的程序,这也是驱动程序类型,工程名字可随意命名,本文以drv为例,向导的最后一步选择第三项“Adllthatexportssomesymbols”。
5.在pb左侧工程窗口里面可以看到这个dll工程挂在了系统镜像工程下。
(这种工程有归属关系,是归属在镜像的大工程里面的)如下图:
6.点击展开上图的drv,里面仅有一个扩展名为cpp的文件,将多模式教学网上的例子解压后,将simpledriver目录下的simpledriver.cpp文件内容全面覆盖drv下面的cpp文件内容。
并且把simpledriver目录下的SimpleDriver.def文件的内容粘贴覆盖到drv里面的parameterfiles里面的def文件中。
7.将例子中的simpledriver目录下的drv.def文件里面的内容完全拷贝并覆盖到pb5里面的驱动工程下的def文件中,如下图所示:
8.点击buildproject里面的buildcurrentproject,应该显示没有错误,编译成功。
1.2开发用于触发驱动动作的应用程序
1.首先要确保当前pb的状态是上文已经成功看到wince界面,并且编译好驱动程序的工程。
2.选择菜单的projectorfile,打开向导。
3.选择第二项WCEconsoleapplication类型的,即只有命令提示符类型的应用程序,这个应用程序就是准备用来控制驱动程序的,给这个工程随意取个名字即可,本文取名为ccc,向导的最后选择atypical“helloworld”application类型即可。
4.在pb左侧工程窗口里面可以看到这个应用程序工程挂在了系统镜像工程下。
(这种工程有归属关系,是归属在镜像的大工程里面的)如下图:
5.点击展开上图的应用程序工程,里面继续展开sourcefiles,里面有一个ccc.cpp文件,将多模式教学网上的例子解压后,将simpledriver/test目录下的test.cpp文件全部粘贴并覆盖ccc.cpp文件中。
6.注意本cpp文件的第13行szDLL变量的值要改成与1.5编译成的dll名字一致。
7.点击buildproject里面的buildcurrentproject,应该显示没有错误,编译成功。
1.3运行测试
提示:
需要将驱动程序以dll加载进系统中,并且触发应用程序调用各种文件操作的接口函数,使得驱动有所动作,打印出相关信息。
1.点击pb5的菜单target,点击attachdevice将模拟器运行起来。
2.将D:
\WINCE500\PBWorkspaces\test3\drv\obj\x86\retail下的刚刚编译好的dll拷贝到d盘根目录或其他目录。
3.点击模拟器的共享部分-foldersharing,如下图,选择共享的目录为上一条的d盘根目录或其他目录。
4.在wince里面打开我的设备,可以看到storagecard,即刚刚共享的目录,将其中的dll拷贝到wince模拟器里面的windows目录下,至此驱动就位,但还未安装。
5.下面运行应用程序,点击pb5的菜单target,选择runprogram,找到刚刚编译的应用程序ccc或自己指定的其他名字,运行起来。
可看到如下图所示界面。
根据提示,首先选择I进行安装,此后即可以用o等选项出发驱动进入相关函数,看到的弹出窗口和打印信息都是驱动程序所为,至此大家都应该真正理解和掌握了驱动程序-操作系统-应用程序的三者联动机制。
Ø实验结果:
驱动程序开发成功,能正常运行。
Ø结果截图
Ø问题总结
该实验比较简单,做起来也比较顺畅,没有什么问题。
实验题目
Windowsmobile应用程序开发实验
序号
三
实验日期
2014\12\8
总耗时
8小时
实验3.1:
Ø简要实验步骤
一、打开VS2005,新建Wince项目工程
二、新建数据库:
1.选择c#语言的智能设备工程,平台选择pocketpc2003,程序类型选择应用程序。
2.选择菜单中的数据-》添加新数据源-》下一步-》新建连接-》创建-》起名,即可建立新的数据库文件。
3.点击测试连接,应该成功。
此后回到数据连接向导继续点击下一步,会提示是否将该数据库文件引入本工程中,选择是,再点完成即可。
至此,空的数据库建立完毕,下面添加数据表以及表内的项目。
4.在屏幕左侧点击标签“服务器资源管理器”(如果没有此框,可在视图菜单中选定即可),可见刚刚添加的数据库文件扩展名为.sdf,此时点击展开此项,可看到table栏目,在table栏目上点击右键拉出菜单可选择创建表。
此后弹出创建表向导,首先给此表起名,随后直接在列描述的框里输入表中所有的列和列中的数据类型即可完成表列的定义。
5.此后,还是在“服务器资源管理器”中,可以看到table展开以后里面有刚刚建立的表,在表上右键拉出菜单选择打开。
此时可以向表中添加数据,至此数据库建立以及数据添加方法完成。
3、添加三个form窗体和相应的控件如图:
4、为相应的form配置数据源,添加相应的实现代码
1.form1实现代码:
privatevoidmenuItem2_Click(objectsender,EventArgse)
{
Form2f=newForm2();
f.Show();
}
privatevoidmenuItem4_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidmenuItem1_Click(objectsender,EventArgse)
{
stringname=textBox1.Text;
stringphone=textBox2.Text;
stringqq=textBox3.Text;
stringaddress=textBox4.Text;
SqlCeConnectioncon=newSqlCeConnection("DAtasource=ProgramFiles\\DeviceApplication1\\MyDatabase#1.sdf");
try
{
con.Open();
SqlCeCommandcmd=newSqlCeCommand();
cmd.Connection=con;
cmd.CommandText="insertintoperson(name,phone,QQ,address)values('"+name+"','"+phone+"','"+qq+"','"+address+"')";
cmd.ExecuteNonQuery();
MessageBox.Show("添加成功!
");
}
catch(Exceptionex)
{
MessageBox.Show("添加失败!
");
}
finally{con.Close();}
}
privatevoidmenuItem3_Click(objectsender,EventArgse)
{
stringname=textBox1.Text;
stringphone=textBox2.Text;
stringqq=textBox3.Text;
stringaddress=textBox4.Text;
SqlCeConnectioncon=newSqlCeConnection("DAtasource=ProgramFiles\\DeviceApplication1\\MyDatabase#1.sdf");
try
{
con.Open();
SqlCeCommandcmd=newSqlCeCommand();
cmd.Connection=con;
cmd.CommandText="deletfrompersonwherename='"+name+"'";
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功!
");
}
catch(Exceptionex)
{
MessageBox.Show("删除失败!
");
}
finally{con.Close();}
}
2.为form2配置数据源,添加实现代码:
1.从菜单中选择数据-》显示数据源,可以看到数据源的dataset项
2.右键选择该dataset项,拉出菜单选择“使用向导配置数据集”,此后在向导里面将希望展示的表勾选即可。
3.在vs2005右侧的“解决方案资源管理器”中选择form2.cs,即可看到手机用户界面,此时将数据集的下拉选项选为datagrid或者或者详细信息,然后整个拖拽到用户界面上即可看到数据集对应的用户界面,可以对位置和大小做简单调整。
至此,数据已经能够显示在用户界面上。
privatevoidmenuItem1_Click(objectsender,EventArgse)
{
Form1f=newForm1();
f.Show();
}
privatevoidmenuItem2_Click(objectsender,EventArgse)
{
Form3f=newForm3();
f.Show();
}
3.为form3添加实现代码:
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form2f=newForm2();
f.Show();
}
Ø实验结果
该实验制作了一个简单的wince项目,实现了数据库的访问,实现了对数据的增,删、浏览等,项目能正常运行。
Ø结果截图
Ø问题总结
遇到问题:
实验前缺少手机终端的数据库项目开发经验,对数据库的创建、连接等存在问题。
解决办法:
实验课上询问老师,图书馆、网上查阅资料。
《嵌入式技术》实验总结报告