嵌入实验指导书.docx
《嵌入实验指导书.docx》由会员分享,可在线阅读,更多相关《嵌入实验指导书.docx(14页珍藏版)》请在冰豆网上搜索。
嵌入实验指导书
嵌入实验指导书
1实验1:
WindowsCE平台构建
1.1目标:
在这个实验中,您将学会使用PlatformBuilder的NewPlatformWizard创建一个新的平台。
然后根据需要对该平台进行裁减和自定义。
最后您将在模拟器上运行新建的平台。
●使用模板创建新平台
●添加和删除组件
●配置和运行平台
1.2预备知识:
●熟悉WindowsCE的帮助文档
1.3实验预计时间:
30——45分钟
1.4实验步骤:
1.4.1使用NewPlatformWizard创建平台
1.打开PlatformBuilder。
2.选择“File”菜单中的“NewPlatform…”,弹出“NewPlatformWizard”向导。
3.“NewPlatformWizard-Step1”:
选择“Next”。
4.“NewPlatformWizard-Step2”:
选择“EMULATOR:
X86”BSP,按“Next”按钮继续。
5.“NewPlatformWizard-Step3”:
在“Availableconfigurations”中选择“MobileHandheld”,在Location中输入“D:
\”,在“Platformname”中输入工程名,比如“MyPlatform”,按“Next”继续。
6.“NewPlatformWizard-Step4”:
在“Availablefeatures”中选择希望加入的应用程序,按“Next”继续。
7.“NewPlatformWizard-Step5”:
在“Availablefeatures”中选择感兴趣的网络协议,按“Next”继续。
8.“NewPlatformWizard–Step6”:
按“Next”继续。
9.“NewPlatformWizard–Step7”:
按“Finish”结束平台创建。
提示:
PlatformBuilder会为您的平台生成必要的文件,这个过程大概需要花费几秒钟,PlatformBuilder会在状态栏的左下角显示这一过程的进度。
结束之后,PlatformBuilder会显示主界面。
默认情况下,左面显示的是Workspace窗口,这里是与我们新创建的平台相关的信息,包括FeatureView,ParameterView和FileView。
其中FeatureView是新平台中已经选择的WindowsCE组件,ParamterView是与最后运行时映像相关的一些配置信息,FileView是用户添加的项目文件。
主界面右边是Catalog窗口,这里有我们可以选择的所有WindowsCE的组件。
1.4.2添加和删除组件
1.展开右边的CatalogView,定位到“Catalog\CoreOS\Displaybaseddevice\Applications–EndUser\FileViewers\MicrosoftWordViewer”。
2.在“MicrosoftWordViewer”上点鼠标右键,选择“AddtoPlatform”,Word查看器被添加到平台中。
3.展开左边的FeatureView,定位到“MobileHandheld\Applications-EndUser\Help”。
4.在“Help”上点鼠标右键,选择“Delete”,帮助被从平台中删除。
1.4.3配置和编译平台
1.选择“Build”菜单的“SetActiveConfiguration…”项。
2.在弹出的对话框中选择“MYPLATFORM-EMULATOR:
X86Win32(WCEEmulator)Debug”。
提示:
PlatformBuilder提供了Debug和Release两种配置,两种配置都支持调试,但是Debug版本增加了更多的调试信息和更灵活的跟踪机制,包括操作系统内核和驱动程序。
3.选择“Build”菜单的“BuildPlatform”开始构建平台。
提示:
根据机器硬件和选择的组件不同,构建平台大约需要10到30分钟。
我们可以通过“Build”窗口来查看构建平台的进度。
也可以利用这个时间来浏览一下WindowsCE的帮助文件(从“Help”->“Contents”菜单)。
构建过程分为四个阶段:
首先Sysgen阶段用来生成一些二进制组件,然后会把BSP和用户代码编译成二进制。
第三步会把前两步得到的二进制文件复制到同一个目录,最后根据配置信息生成运行时映像NK.Bin。
构建结束后,您有可能看到类似的信息:
Done!
makeimg:
CheckforD:
\MyPlatform\RelDir\EMULAT~2\PostRomImage.battorun.
makeimg:
CheckforD:
\MyPlatform\RelDir\EMULAT~2\PostMakeImg.battorun.
MYPLATFORM-0error(s),1warning(s)
Warning并不影响平台的运行,确保没有Error就可以了。
提示:
如果Build的过程中出现Error,一般可以从如下几个地方获得出错信息:
PlatformBuilder的Output窗口,%WINCEROOT%/Build.log和%WINCEROOT%/Build.err文件。
1.4.4连接,下载和运行平台
1.选择“Target”菜单下的“ConfigureRemoteConnection…”菜单项。
2.在新的对话框中,把“Download”和“Kernel”两项都选择为“Emulator–4.20”,然后确定。
我们也可以点击“Download”下拉菜单边上的“Configure…”按钮进行详细配置。
3.选择“Target”菜单下的“Download/Initialize”菜单项,开始下载。
注意:
当下载成功结束后,模拟器应该自动启动,这个时候会在PlatformBuilder的“Debug”窗口中打出大量调试信息。
然后,我们可以在模拟器中看到WindowsCE的桌面。
如果下载失败,请检查远程连接的配置是否正确。
4.选择“Target”菜单下的“Disconnect”菜单项,断开连接。
5.关闭模拟器,关闭PlatformBuilder。
2实验2:
应用程序开发
2.1目标:
在这个实验中,您将学会使用PlatformBuilder,eMbeddedVisualC++和VisualStudio.NET进行WindowsCE上的应用程序的开发,调试。
PlatformBuilder和eMbeddedVisualC++都可以用来编写WindowsCE下的本机代码,使用C/C++语言。
VisualStudio.NET2003只能用C#和VB.NET编写基于.NETCompactFramework的托管代码。
●使用PlatformBuilder开发应用程序
●使用eMbeddedVisualC++开发,调试应用程序
●使用VisualStudio.NET开发基于.NETCompactFramework的应用程序
2.2预备知识:
●已经完成实验1
●熟悉WindowsCE的基本概念
●了解应用程序开发的基础知识
●了解.NET的基础知识
2.3实验预计时间:
30——45分钟
2.4实验步骤:
2.4.1使用PlatformBuilder开发应用程序
1.打开PlatformBuilder。
2.选择“File”菜单下的“OpenWorkspace…”,然后打开实验1中创建的平台。
3.选择“File”菜单下的“NewProjectorFile…”,打开“NewProjectorFile”对话框。
4.在“Projects”选项页中选择“WCEApplication”;在“ProjectName”中输入项目的名字,例如“MyApp”。
5.在“NewProjectWizard–step1of1”中选择“AtypicalHelloWorldApplication”,点击“Finish”按钮。
提示:
向导会自动帮助我们生成一个典型的WindowsCE下的HelloWorld代码框架。
我们可以选择左面Workspace窗口的FileView来查看新生成的文件。
如果您熟悉Windows下的应用程序开发,可以尝试比较WindowsCE下的HelloWorld与Windows下的HelloWorld的异同。
6.选择“Build”菜单中的“BuildMyApp.exe”来编译应用程序。
如果没有错误,PlatformBuilder会显示如下信息:
MyApp.exe-0error(s),0warning(s)
7.选择“Build”菜单中的“MakeImage”来重新生成NK.Bin。
提示:
每当向映像中添加,删除文件或者改变配置后,都需要重新生成NK.Bin。
在这里我们只进行了平台配置的第四步。
如果给平台新添加或删除了组件,则必须从第一步Sysgen开始。
8.选择“Target”菜单下的“Download/Initialize”菜单项,重新运行映像。
9.当WindowsCE的桌面显示之后,选择“Target”菜单下的“RunPrograms…”,然后从弹出的对话框中选择“MyApp.exe”,点“Run”按钮。
在模拟器上,我们此时可以看到MyApp.exe已经成功地运行了。
10.选择“Target”菜单下的“Disconnect”菜单项,断开连接。
11.关闭模拟器,关闭PlatformBuilder。
3实验3:
在开发板上运行WindowsCE
3.1目标:
在这个实验中,您将使用PlatformBuilder创建一个新的平台。
在华恒公司的HHARM9-EDU教学实验平台上运行WindowsCE
●使用模板创建新平台
●使用超级终端控制硬件
●使WindowsCE映运行在HHARM9-EDU上
3.2预备知识:
●熟悉WindowsCE的基础支持
●熟悉基本的硬件操作,例如串口,网口
3.3实验预计时间:
30——45分钟
3.4实验步骤:
3.4.1使用向导创建平台
提示:
该实验的全部代码和所需要的工具已经放在Lab目录下面
10.打开PlatformBuilder
11.选择“File”菜单中的“NewPlatform”,弹出“NewPlatformWizard”向导
12.“NewPlatformWizard-Step1”:
选择“Next”
13.“NewPlatformWizard-Step2”:
选择“SAMSUNGSMDK2410:
ARMV4”BSP,按“Next”按钮继续
14.“NewPlatformWizard-Step3”:
在“Availableconfigurations”中选择“MobileHandheld”,在“Platformname”中输入工程名,比如“MyPlatform”,Location中输入“D:
\”。
按“Next”继续
15.“NewPlatformWizard-Step4”:
在“Availablefeatures”中选择希望加入的应用程序,按“Next”继续
16.“NewPlatformWizard-Step5”:
在“Availablefeatures”中选择感兴趣的网络协议,按“Next”继续
17.“NewPlatformWizard–Step6”:
按“Next”继续
18.“NewPlatformWizard–Step7”:
按“Finish”结束平台创建
3.4.2构建生成平台
1.在菜单“Platform”中选择“Setting…”,弹出“PlatformSettings”对话框
2.对话框左边的“SettingsFor”选择根目录“MYPLATFORM”,右边的页签板中选择“BuildOptions”,然后去掉下面两项:
a)[EnableCETargetControlSupport]
b)[EnableKITL]
3.点“Build”菜单中的“BuildPlatform”。
开始编译,编译大概要进行10~20分钟。
4.编译完成后将在“D:
\MyPlatform\RelDir\SAMSUNG_SMDK2410_ARMV4Release”下生成内核镜像NK.nb0
3.4.3下载和运行内核
1.运行tftp服务器软件tftpd32.exe,按“Setting”,弹出Setting对话框,在BaseDirectory输入框中把tftp服务器的根路径修改为:
“D:
\MyPlatform\RelDir\SAMSUNG_SMDK2410_ARMV4Release”。
即当前平台编译的内核镜像的目录,以便编译完成后直接下载。
2.把开发板和PC机用串口线和对接网线相连,运行超级终端,(超级终端配置:
COM1,每秒位数:
115200;数据位:
8;奇偶校验:
无;停止位:
1;数据流控制:
无)开发板上电。
3.在开发板启动到ppcboot时按回车键中止启动,进入到ppcboot的命令提示符。
如图
4.假设PC机ip为192.168.2.132,在超级终端中ppcboot命令提示符下输入一下命令:
SMDK2410#setenvserverip192.168.2.132;tftp30200000nk.nb0;go30200000
提示:
该组命令表示将从ip为192.168.2.132的tftp服务器下载文件nk.nb0到地址0x30200000;然后从地址0x30200000开始执行指令。
一定要把PC机的IP地址设定为192.168.2.xx,这样才可以收到TFTP广播。
5.下载完成后,WindowsCE直接运行,在超级终端中打印一些调试信息;并在LCD屏上显示wince的桌面。
6.关闭PlatformBuilder。
提示:
本实验中没有使用到WindowsCE推荐的EthernetBootloader(eboot)下载操作系统映像。
因为本实验不需要进行内核调试或者查看输出信息。
如果需要进行KernelDebug,则需要使用微软推荐的Eboot来下载OSImage。
4实验4:
进行WindowsCE内核调试
4.1目标:
在这个实验中,您将理解到:
●WindowsCE下的内核调试工具
●WindowsCE下的常用调试手段
4.2预备知识:
在进行这个实验之前,您应该首先:
●在您的机器上安装了PlatformBuilder
●学会使用PlatformBuilder构建平台
4.3实验预计时间
30分钟
4.4实验步骤
19.打开PlatformBuilder。
20.选择“File”菜单中的“NewPlatform…”,弹出“NewPlatformWizard”向导。
21.“NewPlatformWizard-Step1”:
选择“Next”。
22.“NewPlatformWizard-Step2”:
选择“EMULATOR:
X86”BSP,按“Next”按钮继续。
23.“NewPlatformWizard-Step3”:
在“Availableconfigurations”中选择“MobileHandheld”,在Location中输入“D:
\”,在“Platformname”中输入工程名,比如“MyPlatform”,按“Next”继续。
24.“NewPlatformWizard-Step4”:
在“Availablefeatures”中选择希望加入的应用程序,按“Next”继续。
25.“NewPlatformWizard-Step5”:
在“Availablefeatures”中选择感兴趣的网络协议,按“Next”继续。
26.“NewPlatformWizard–Step6”:
按“Next”继续。
27.“NewPlatformWizard–Step7”:
按“Finish”结束平台创建。
提示:
PlatformBuilder会为您的平台生成必要的文件,这个过程大概需要花费几秒钟,PlatformBuilder会在状态栏的左下角显示这一过程的进度。
28.“Build”菜单->“SetActiveConfiguration”中选择Debug选项,确保平台以debug模式编译。
29.打开“Platform”->“Settings”菜单,选择“BuildOptions”选项卡,确保下面几项选中:
EnableCETargetControlSupport
EnableFullKernelMode
EnableKernelDebugger
EnableKITL
提示:
这样PlatformBuilder将打开我们调试用的必要工具,KITL,以及基于KITL的TargetControl和KernelDebugger支持。
30.编译平台,大约需要15-30分钟
31.确保平台没有错误。
32.选择“File”中的“Open”菜单,在弹出的对话框中%__WINCEROOT%\PRIVATE\WINCEOS\COREOS\NK\KERNEL\virtmem.c,然后在916行DoVirtualAlloc函数种按F9设置断点,如下:
if(dwSlot0Addr==dwAddr)
提示:
DoVirtualAlloc函数的作用是申请虚拟内存空间。
API函数VirtualAlloc内部就是通过DoVirtualAlloc函数实现的。
33.PlatformBuilder里面选择“Target”->“Download/Initialize”下载并运行映像。
然后,我们可以看到系统的执行停在了我们设置的断点上,此时我们可以对程序进行单步跟踪调试,也可以查看系统中的变量。
如图:
提示:
左下角是CallStack窗口,右下角是Debugoutput窗口。
这两项都是我们查看程序运行的重要线索。
34.按F9取消断电,然后按F5让系统继续运行。
等待系统启动完毕,模拟器中出现WindowsCE界面。
35.确保“Target”菜单下的“CETargetControl”被选中。
然后在CETargetControl窗口中输入如下命令:
giproc
提示:
此命令的作用是显示当前系统中所有的进程。
要知道TargetControl的完整操作,请输入?
命令。
提示:
CETargetControl是自从WindowsCE早期版本就开始使用的调试和观测工具。
我们可以通过CETargetControl观看系统中的进程,线程,内存,窗口句柄等等的信息。
4.5作业
通过PlatformBuilder,掌握“Tools”菜单下的各种Remote工具。
了解各种Remote工具的功能和作用,学会使用这些工具。