zoukankan      html  css  js  c++  java
  • 基于PB的Windows CE模拟环境的配置及调试

     
           嵌入式系统被用于越来越多的场合,不仅仅是PDA和手持式电脑,许多手机、游戏机、数字播放器、数码相机和车载电脑也开始使用标准的CE嵌入式系统,甚至连保守的传统AV设备--DVD和MPEG-4 Player也不例外。例如,多普达的手机,装有WindowsCE系统,不仅能打手机、管理联系人和收发电子邮件,还能运行Windows软件,上网ICQ、玩游戏和播放数字音乐。不难想象,那种粗大的单色液晶屏幕,显示丑陋的锯齿形汉字的商X通和电子词典很快就会从柜台上消失,取而代之的色彩艳丽,珠圆玉润,装备有CE或Palm等标准操作系统的InforWare。

      但是由于WindowsCE的设备种类繁多,给软件的编写和测试带了极大的不便,任何一个软件公司也不可能拥有所有类型的CE设备。这个问题在CE 2.0和3.0开发中尤为突出,例如,一个CE软件制作人在一台手持电脑上开发了一个应用软件,但是发行后很快就发现软件在CE的PDA上几乎不能使用,因为手持电脑的屏幕为640X240像素,而PDA的确是240X320,这样,程序菜单根本无法全部显示。

      为了解决这个问题Microsoft Windows CE .NET 提供了一个全能的、廉价的仿真环境。他能在PC上仿真各种CE设备,为不同的环境定制CE软件,还共享绝大多数源代码,可以从网上直接下载。软件公司不需要拥有所有类型的CE设备也可以在不同平台上调试CE软件,甚至为了需要还可自行改写CE内核,完全开放代码的CE.NET,不仅有Windows的简单易用,还有Linux的高度可塑性,使开发CE时得心应手。

      和其他的仿真器相比,Windows CE .NET 对计算机的要求不算太高:推荐配置550Mhz以上的CPU,192M内存,多达2.3G的硬盘空间。但是笔者在实际开发时发现,推荐配置远远不够,尤其是创建Rom时奇慢无比,仿真终端居然可以轻易把1G内存吃光。笔者感觉,1Ghz的CPU ,1G内存,5-10G的硬盘空间可以满足要求。相信大多是朋友还是有这个条件的。

      一、配置仿真平台(以Windows CE.NET  4.2为例,下同)

      利用Windows CE .NET 我们可以"制造"出各种CE设备。步骤如下:

      1. 启动Windows CE.NET Platform Builder (简称PB),打开 File 菜单, 选择 New Platform(新平台), 这时会出现New Platform Wizards(创建向导),选择 Next。

       2. 选择仿真处理器,默认为EMULATOR: X86 ,即x86兼容型,利用你的x86处理器仿真CE处理器,选好后,点击 Next。

     

      3. 选者要仿真的设备类型,CE可以在很多设备上运行,仿真器可以仿真这些设备,在这里就选择Mobile Handheld。然后给你的平台起一个名字,如EmulatorDemo,点Next。


      4. 配置要集成的软件环境,根据自己的需要,如是否需要网络浏览器和收件箱或者其他什么的,选好后, 点击。 Next。

      5. 添加所需的网络协议, 然后点击Next。

      6. 后面的窗口有一些注意事项, 阅读后,点击Next。

      7. 点击Done开始创建环境。

      二、生成CE的操作系统ROM

      众所周知,使用Windows CE等系统的设备一般都把CE存储在ROM里,CE .NET中的Platform Builder 也是会将生成的CE放在一个ROM的映像文件里,默认文件名为(nb.bin),创建步骤如下:

      1. 在 Build菜单中, 选择Set Active Configuration。

      2. 在仿真平台列表中, 选择EmulatorDemo - EMULATOR: X86 Win32 (WCE emulator) Debug, 点击OK确定。

      3. 在Platform菜单中选择Settings。

      4. 在 Settings的Build Options 标签中, 确保选中Enable Full Kernel Mode选项和其他的一些选项。这对调试程序非常重要。

      5.可以根据自己的需要在Catalog中选择一些选项(如对MFC的支持或者USB鼠标之类的)添加到自己定制的平台。



            6. 在 Build 菜单中, 选择Build Platform。

         7. 在创建过程中会出现一些Warning点击OK即可。

      创建ROM会很花掉一些时间,一个32M的ROM可能需要十几分钟或者几十分钟,完成后,在Output窗口会出现0 error(s), XX warning(s)的信息。

      三、使用仿真器运行CE的操作系统ROM

      创建ROM后,就可以建立与仿真器的连接,将ROM调入仿真器运行:

      首先必须配置仿真器

      1. 在Target菜单中, 选择Configure Remote Connection。

      2. 选择Services 标签。在Services for active named connection的Download 选项框中, 选择Emulator。点击Configure。

      3. 设定你想要的终端分辨率Screen Size (WxHxD): 如一个典型的PDA大小 320x240x16。或者干脆定制个自己舒服的比如800x600x16。

      4. 在使用内存大小Memory (MB) 中, 输入 64。

      5. 在 Kernel Transport 选项框中, 选择Emulator。

      6. 选择Settings 标签。 点击Download / Initialize Device, 确保Download Image, Initialize (Jump to Image)和Connect to Device被选中, 点击OK继续。
      
      现在已经配置完仿真器,可以调入ROM运行了

      7. 在 Target 菜单中, 点击 Download / Initialize。

      8. 会出现KITL Security Warning 对话框和一些提示, 全部选择 Yes。

      9. 等待一段时间后,名为EmulatorDemo- Emulator for Windows CE 的仿真器终端出现了。

      仿真器上的WindowsCE完全和真正的WindwosCE设备一样,可以运行软件,听音乐,上网ICQ、看网页、收发邮件。

          同时出现的Debug工具箱还可以,对CE进行Debug 。


      四、使用Debug程序

      仿真器终端有两种运行模式,Release和Debug模式。Release是用来测试准备发布的ROM,而在Debug模式下则可以用kernel debugger 对CE的核心进行调试。例如对鼠标事件的Debug:

      1. 在 Debug 菜单中, 选择 Break。

      2. 在 File 菜单中, 选择 Open。在 %_WINCEROOT%\Platform\Emulator\Drivers\ Kbdmouse\Emulkbms路径下, 找到 ps2mouse。cpp, 选择 Open。 这是关于鼠标驱动的源代码。

      3. 在 Edit 菜单中, 选择 Find,在Find what中, 输入_move, 选择 Find Next。
    现在就可以修改关于Move事件的代码。

      4. 按 F9键插入如一个断点代码的一侧会显示一个红点。

      5. 在 Debug 菜单中, 选择 Go。

      6. 在任务栏上,选择 EmulatorDemo-Emulator for Windows CE 显示EmulatorDemo- Emulator for Windows CE 窗口。

      7. 将鼠标指针放在EmulatorDemo- Emulator for Windows CE 窗口上。这时,你会发现仿真器的运行暂停在刚才设定的断点处,这样你就可实时的修改、编写代码。

     *笔者强烈建议:在改写源代码前备份,不然如果改坏了就不好了

      8. 在 Edit 菜单中, 选择 Breakpoints。

      9. 去掉所有的断点, 选择 Remove All,选择 OK。

      10. 在 Debug 菜单中, 选择 Stop Debugging结束Debug。

      在 Debug 菜单中, 选择 Go。对其他部分,如键盘,串口的Debug与此相仿。

      五、为仿真终端环境定制不同的语言

      Windows CE .NET 可以生成不同语言的界面的CE,就像WindowsXP下的区域设置,不仅是界面语言,货币符号,使用习惯也随之改变。例如生成一个日文的ROM

      1. 在 Target 菜单中, 选择 Disconnect, 点击OK确定。

      2. 在仿真器终端的Emulator菜单中, 选择 Shut Down。

      3. 出现Shut Down 对话框, 选择Turn off Emulator, 选择 OK完全关闭仿真器终端。

      4. 在 Platform 菜单中, 选择 Settings。 确保Settings For 下的 EMULATOR-X86 Win32 (WCE emulator) Debug 被选定。

      5. 选择Locale 标签。 Default Language 列表中, 选择Japanese。 关闭 Platform Settings ,选择 OK。

      6. 在 Build 菜单中, 选择 Rebuild Platform。在创建过程中会出现一些Warning点击OK即可。(图13)

      7. 重新创建CE的ROM后,在 Target 菜单中, 选择 Download/Initialize。打开仿真器,你就会看到日文版CE.net 4.1

      *注:CE.net支持多语言,日文界面的CE也可以显示简体和繁体中文

      六、创建简单的"Hello World" 程序

      下面,我们来创建一个测试用的简单的CE程序,并放在仿真器上运行。

      1. 在 Target 菜单中 in the IDE, 选择 Disconnect,点击OK确定。

      2. 在显示的Warning中,点击确定回到集成开发环境。

      3. 在仿真器终端的Emulator菜单中, 选择 Shut Down。

      4. 出现Shut Down 对话框, 选择Turn off Emulator, 选择 OK完全关闭仿真器终端。

      5. 在 File 菜单中, 选择 New Project or File。

      6. 选择Projects 标签, 选者 WCE Application。

      7. 在 Project name文本框中, 输入 Hello, 选择 OK 确定。

      8. 选择 A typical "Hello World!" application, 选择 Finish。

      9. 在 Build 菜单中, 选择 Build Hello.exe 建立程序。

      当建立完成时你会看到: Hello.exe - 0 error(s), 0 warning(s)。 的消息,代表建立成功了。


      七、在仿真环境中运行程序

      运行用户建立的程序,可以不需重新建立CE ROM。

      1. 在 Target 菜单中 in the IDE, 选择 Download/Initialize,打开仿真终端。在出现的KITL Security Warning 上点击OK确定。

      2. 在 Target 菜单中, 选择 Run Programs。

      3. 在 Available Programs 列表中, 选择刚才建立的Hello.exe, 并选择 Run。

      4. Hello.exe会被下载到终端上运行。

      5. 在任务栏上, 选择 EmulatorDemo - Emulator for Windows CE 你会看到"Hello World"已经在终端上出现。

      八、创建eMbedded Visual C++的SDK

      知道了如何创建配置仿真平台,生成CE的操作系统ROM,使用Debug程序和在仿真环境中运行程序,我们就可以创建用于开发的eMbedded Visual C++的SDK

      1. 在 Target 菜单中, 选择 Disconnect, 点击OK确定。

      2. 在仿真器终端的Emulator菜单中, 选择 Shut Down。

      3. 出现Shut Down 对话框, 选择Turn off Emulator, 选择 OK完全关闭仿真器终端。

      4. 在 Platform 菜单中, 选择 Configure SDK。

      5. 出现Export SDK Wizard 向导, 点击Next继续。

      6. 在Product name for MSI installation 文本框中, 输入EmulatorDemo_SDK。

      *注意:不能在ROM、源代码、程序、对象设备的名字中使用空格。

      7. 在 Manufacturer name 文本框中, 填入EmulatorDemoCompa。

      8. 选择eMbedded Visual C++ 4.0 support , 点击Next继续。

      9. 在Congratulations页面中点击Customized SDK , 选择Modify the SDK configuration settings。

      10. 选择License File 标签, 并选择Append End User License Agreement 。

      11. 在End User License Agreement Path 文本框中, 输入你想作为《最终用户协议书》(End User License Agreement (EULA))的文文件名。-

      12. 选择 OK 关闭窗口。

      13. 在 Platform 菜单中, 选择 Build SDK。

      14. 后面的窗口有一些注意事项, 阅读后,点击Next,最后点击 Done开始创建SDK。

      生成的SDK开发包EmulatorDemo_sdk.msi将放在%_WINCEROOT%\Public\MyPlatform\SDK 文件夹里。

      

  • 相关阅读:
    C++ calculate the time cost in 100 nanoseconds precision
    C++ append file via ofstream
    WCF Server Error in '/' Application.
    Webclient "The operation has timed out" and override webclient with customized timeout
    WPF implement SelectedCommand in MVVM via Interaction.Triggers
    将EDGE浏览器首页中的hao123删除的方法--干净的界面
    PHP 获取当前时间的下一个整点时间
    微信小程序添加空格
    为什么upload下的图片不存在,会报模块不存在的错误
    lnmp环境搭建
  • 原文地址:https://www.cnblogs.com/karlchen/p/521717.html
Copyright © 2011-2022 走看看