0

我正在使用因内存问题而被制造商“切片”的 Win Ce 5.0。它启动一个消耗一些内存的应用程序(使用 Platform Builder 制作 BIN 图像)。

当我想开始调试时,它会冻结第一个应用程序并启动我一直在开发的新应用程序(VS 2008 Pro)。我不清楚第一个应用程序是否消耗一些内存(因为我知道一些文件是静态的)并且一些数据点是 STUBBED。

主要问题是,Win Ce 只是一个启动第一个应用程序的引导加载程序。我无法禁用它、切换它或对其执行任何操作,因为它正在运行并启动 ActiveSync(这就是我与我的 PC / VS 2008 Pro 通信的方式)

请帮助我解决方案:1.如何找到第一个应用程序进程 ID(GetProcessById 不起作用,.Net Ce Framework 不提供 GetProcessByName) 2.如何处理第一个应用程序加载的所有内存 - i希望有尽可能多的可用内存) 3. 最好的选择是有一个看门狗类来测试第一个应用程序是否不做任何事情(不启动任何进程/方法)

愿意将我的积分和荣誉提供给可以帮助我的人:)


另一个问题是 USB 调试:设备的驱动程序错误(问题)

与设备的 USB 连接 - 重置后 - 不工作(检测为 AT9S81) - 用于刷新设备 - 设备后 - 不工作(检测为 AT9S81) - 用于闪烁设备 - 需要一些时间来检测为 Active Sync(原型--记得改idVendor)

这是操作系统问题/设备驱动程序/Windows 7 问题吗?

4

1 回答 1

1

您是说您正在尝试使用旧的、不受支持的 CE 设备吗?

  1. 使用 ToolHelp API 获取进程信息。您必须使用 CF P/Invoke 这些。SDF 具有完整的 ToolHelp 对象,您不想编写它们。
  2. 您不能在另一个进程中“处理”内存。另一个进程管理自己的内存。您可以终止该进程,这会将其所有内存释放给操作系统。
  3. 您如何建议知道其他进程是否“正在做任何事情”?如果它没有告诉你它什么时候在做某事,就很难知道它是否正在运行代码(可以通过使用 celog 拦截来查看 OS 调度程序来完成,但这是非常先进的东西,我不会推荐它作为第一个甚至第二个行动方案)。

如果您有权在设备上运行代码,我建议您修改操作系统以首先不运行它正在运行的任何应用程序。调整 HKLM\Init 注册表项或启动它的任何内容。

于 2013-04-05T15:57:43.133 回答