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

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、