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

2024-04-17 18:58

本文主要是介绍EVC入门之一: 实现远程调试的最佳硬件途径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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,可把这条命令的ip指定,假如指定为192.168.0.111,端口指定为5000,再建一个bat文 件,把这句放进去,拷到wince 目标板windows目录下中,以后连接时只要运行这个bat文件,就可以了。

实 际上这个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并存, 乖乖咙地咚, 皆大欢喜啊.

//********************************************************************************************************************
来源地址:http://blog.csdn.net/suncilang/archive/2007/05/03/1595724.aspx#583791

这篇关于EVC入门之一: 实现远程调试的最佳硬件途径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912578

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求