EVC入门之一: 实现远程调试的最佳硬件途径

简介:

EVC里TOOLS->Config Platform Manager里, 对某个DEVICE点PROPERTIES, 这个对话框里可以选择EVC调试程序时所用的硬件途径, 其实就少少的这几个选项, 但由于本人的不思进取, 从开始接触到现在完全搞明白, 前后也将近半年时间才全部理解完.

方法一: KITL + CESH SERVER

在去年最早开发应用程序的时候,整组人都用的这个设置:
Transport: KITL Transport for Windows CE
Startup:  CESH Server for Windows CE.  
在MS的文档里强调了"To connect to a target device with the CESH startup server, you must enable KITL on the target device"  (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcepb40/html/pbconceshstartupserver.asp)  从PB里实现KITL的三种硬件途径来看, 在EVC里使用这第一种方法来调试程序的代价就是三者选一
(1) 用了ETHERNET KITL, 那么EVC调试中就牺牲掉网卡,这样就无法调试需要访问网络资源的程序. ETHERNET KITL一起来后就把ETHER DRIVER给DISABEL掉了, 传说中有ETHER KITL和ETHERNET DRIVER同时使用的,可惜偶没见到过, 期待大虾把它改出来.
(2) 用了RNDIS KITL, 那么EVC调式中就牺牲掉USB口, 不能接键盘鼠标U盘等等. 这样搞的话其他开发人员就要跟我拼了.
(3) 用了SERIAL KITL, 牺牲掉调试速度, 调程序的时候旁边泡杯茶, 放一份报纸~


方法二: ActiveSync + ActiveSync

这是我接手PLAYER项目后力推的方案, 好处是可以把操作系统在FLASH里烧好, 这样应用程序开发者就可以无视操作系统, 并且EVC里调程序的时候不需要开PB了. (PB和EVC同时开, 256M内存的PC会搞得非常慢). 并且一旦调试中目标板上跑死机了,简单重启一下就行了,可以省去PB重新连接时间. 最重要的是可以空出ETHERNET资源,来调试PLAYER里那些HTTP, RTSP等需要用到网络的模块了.

但问题是同样地要损失掉USB PORT, 不能接键盘鼠标,当时我还特意写了个应用程序, 在PC端模仿遥控器操作,通过SERIAL给目标板上发遥控器动作的代码过去, 猥琐得一塌糊涂.


方法三: TCP/IP + MANUAL SERVER   闪亮登场

嗷傲, 灯光音效, 近乎完美的方法. 其实也很简单,只不过满足于前面两种方法的时间太长了, 一直没有深究下去.

具体设置是在Device Properties里面选择
Transport: TCP/IP Transport for Windows CE
Startup: Manual Server
如下图所示

这时候去点TEST, EVC这边会弹出这个对话框.

如果不是特意在BIB文件里加入这三个文件的话,一般IMAGE里是不包含他们的. 这三个文件可以在 WINCE500\OTHERS\PLATMAN\TARGET\ 下对应CPU类型的子目录里找到. 拿个U盘COPY到目标板的\WINDOWS\目录下.

然后目标板上 开始->运行->cmd,  在命令行窗口里敲入上图对话框里的那行命令,  这时候目标板上的命令行窗口会处于等待状态,而不是出现下一个提示符, 此时在PC端的EVC按下OK, 那么连接就成功了. 在调试的时候同样地, 先在目标板上敲命令行,处于等待状态时, EVC这边点GO就行了.

然后我们注意看这条命令:    CEMGRC.EXE /S /T:TCPIPC.DLL /Q /D:10.100.148.124:2777

实际上这个EVC调试就是一个CS结构, 目标板上是CLIENT, PC上是SERVER, 连接由CLIENT发起. CESH用的DEBUG SHELL, ACTIVESYNC在IMAGE里加入的ACTIESYNC组件, 还有这个CEMGRC, 都是干的同样的事情。扯远了, 我们退回到Device Properties窗口, 对Transport点Configure, 出现如下窗口

该窗口的配置说明在http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedebug5/html/wce50contcpiptransport.asp

我只写一下窗口里影响到CEMGRC参数的设置, 关于CEMGRC的参数在MSDN上只字不提,只能靠推测.
(1) 首先是Host IP, 在Use fixed address的下拉列表里, 你有几个网卡(包括虚拟网卡),就有几个当前网卡配置的IP地址可选, 选择后确定下来的IP地址就体现到 /D 参数里了, 这个推论要是错了我就去找块豆腐撞死.
(2) 然后是端口, 如果不勾选 fixed port 的话,每次连接都会随机选个端口, 然后在/D参数的:2777这个地方体现出每次端口的不同. 这样在目标板上敲命令行就稍微麻烦些, 如果我们勾了FIXED PORT, 并且指定一个PORT NUMBER, 那么CEMGRC的参数里除了/D后面的端口号被固定下来外,  还多了个/S ,估计是表示static port的意思. 在实际操作时我把这个/S省掉,也是连得上的,没什么影响

用这种方法在EVC里调试, 真是落霞与孤骛齐飞, 控制信息与网络访问共享, ETHERNET和USB HOST并存, 乖乖咙地咚, 皆大欢喜啊.


本文转自Walzer博客园博客,原文链接:http://www.cnblogs.com/walzer/archive/2006/06/21/431271.html,如需转载请自行联系原作者

相关文章
|
19天前
|
Rust 监控 网络协议
运用Rust编写高效的远程监控多台电脑屏幕工具
使用Rust编程语言开发远程监控多台电脑屏幕的工具,通过安装客户端实时传输屏幕截图至监控端。示例代码展示如何利用Rust的网络编程和图像处理库捕获、发送及接收屏幕截图。监控端接收到数据后可进行保存或上传等处理,实现高效可靠的远程监控解决方案。
59 2
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
199 2
|
4月前
|
监控 数据管理 数据挖掘
使用Fortran构建科学计算导向的局域网控制桌面软件
在科学研究和工程领域,构建高效的科学计算工具对于实现准确的模拟和分析至关重要。为了更好地管理和监控实验室中的设备,以及实时收集数据,我们可以开发一款基于Fortran语言的科学计算导向的局域网控制桌面软件。下面将通过一些简单的代码示例来说明如何实现这一目标。
210 0
|
6月前
|
开发工具 虚拟化 Windows
1.1 Windows驱动开发:配置驱动开发环境
在进行驱动开发之前,您需要先安装适当的开发环境和工具。首先,您需要安装`Windows`驱动开发工具包(WDK),这是一组驱动开发所需的工具、库、示例和文档。然后,您需要安装`Visual Studio`开发环境,以便编写和调试驱动程序。在安装WDK和`Visual Studio`之后,您还需要配置适当的项目设置,以便能够正确编译和构建驱动程序。首先我们需要安装`Visual Studio 2013`这款功能强大的程序开发工具,在课件内请双击`ISO`文件并运行内部的`vs_ultimate.exe`安装包,`Visual Studio`的安装非常的简单,您只需要按照提示全部选择默认参数即可,
142 1
1.1 Windows驱动开发:配置驱动开发环境
|
7月前
|
存储 网络协议 数据库
一步步实现SDDC-嵌入式PSC的VC部署
实验摘要: 1>嵌入式PSC的VC部署第一阶段 [难度★复杂度★] 2>嵌入式PSC的VC部署第二阶段 [难度★复杂度★]
一步步实现SDDC-嵌入式PSC的VC部署
|
10月前
|
芯片 开发者
硬件工程师实用工具网站
目录 1、采购元器件 2、原理图库和PCB封装库 3、PCB打样、贴片和焊接 4、元器件手册在线查询 5、查找替代芯片 6、元器件3D封装 7、电路开源社区 8、电路仿真 9、电路图演示
|
Ubuntu 网络安全 计算机视觉
树莓派开发笔记(四):更方便的开发,qt远程运行(主机qt开发一键远程运行到目标机上)
树莓派开发笔记(四):更方便的开发,qt远程运行(主机qt开发一键远程运行到目标机上)
树莓派开发笔记(四):更方便的开发,qt远程运行(主机qt开发一键远程运行到目标机上)