﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-milkyway的窝-随笔分类-Wince学习小结</title><link>http://www.cppblog.com/milkyway/category/3223.html</link><description>最初想法的诞生地</description><language>zh-cn</language><lastBuildDate>Fri, 26 Dec 2008 19:57:30 GMT</lastBuildDate><pubDate>Fri, 26 Dec 2008 19:57:30 GMT</pubDate><ttl>60</ttl><item><title>基于Windows CE的数据采集与控制系统设计与实现</title><link>http://www.cppblog.com/milkyway/archive/2008/12/27/70478.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Fri, 26 Dec 2008 16:21:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/12/27/70478.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/70478.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/12/27/70478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/70478.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/70478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 提出了一种基于Windows CE的数据采集与控制系统解决方案。介绍了系统的硬件设计与软件开发流程，并对其关键技术进行了深入研究。包括Windows CE下外设驱动的开发与移植，注册表的掉电保存技术，专用操作系统镜像的定制要点以及引导加载程序Bootloader的实现。最终成功构建了一个具有良好应用前景的嵌入式数据采集与控制系统.&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/12/27/70478.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/70478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-12-27 00:21 <a href="http://www.cppblog.com/milkyway/archive/2008/12/27/70478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Windows CE的嵌入式系统开发流程</title><link>http://www.cppblog.com/milkyway/archive/2008/10/28/65397.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 28 Oct 2008 13:25:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/10/28/65397.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/65397.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/10/28/65397.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/65397.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/65397.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 简单介绍了基于Windows CE的嵌入式系统开发主要内容和步骤&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/10/28/65397.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/65397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-10-28 21:25 <a href="http://www.cppblog.com/milkyway/archive/2008/10/28/65397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入式操作系统Windows CE之架构概述</title><link>http://www.cppblog.com/milkyway/archive/2008/09/06/61080.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Fri, 05 Sep 2008 18:47:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/09/06/61080.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/61080.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/09/06/61080.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/61080.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/61080.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows CE是微软推出的嵌入式操作系统，目前智能手机市场上著名的Windows Mobile就是基于CE定制的。那么它和其他嵌入式操作系统相比优势在哪，它的架构是甚么样的？谨以此文与大家一起探讨。&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/09/06/61080.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/61080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-06 02:47 <a href="http://www.cppblog.com/milkyway/archive/2008/09/06/61080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iMX21 ADS上如何烧写WinCE</title><link>http://www.cppblog.com/milkyway/archive/2008/09/06/61075.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Fri, 05 Sep 2008 16:42:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/09/06/61075.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/61075.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/09/06/61075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/61075.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/61075.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用HAB Toolkit把Windows CE烧到Freescale iMX21开发板Nor Flash的步骤&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/09/06/61075.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/61075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-06 00:42 <a href="http://www.cppblog.com/milkyway/archive/2008/09/06/61075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SamArmDvk9II 开发板上跑WinCE</title><link>http://www.cppblog.com/milkyway/archive/2008/09/04/60959.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 04 Sep 2008 14:04:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/09/04/60959.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/60959.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/09/04/60959.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/60959.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/60959.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 把Windows CE烧到SamArmDvk9II 型开发板上Nand Flash的步骤总结和对其中用到的文件功能说明&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/09/04/60959.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/60959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-04 22:04 <a href="http://www.cppblog.com/milkyway/archive/2008/09/04/60959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE在i.MX21平台上的虚实地址映射技术</title><link>http://www.cppblog.com/milkyway/archive/2008/09/02/60647.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 01 Sep 2008 16:09:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/09/02/60647.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/60647.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/09/02/60647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/60647.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/60647.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 比较了Windows CE在不同架构CPU的嵌入式系统中建立虚实地址映射的过程&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/09/02/60647.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/60647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-02 00:09 <a href="http://www.cppblog.com/milkyway/archive/2008/09/02/60647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE在 SBC-2410X Nand Flash上的烧写</title><link>http://www.cppblog.com/milkyway/archive/2008/08/20/59402.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 19 Aug 2008 17:35:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/08/20/59402.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/59402.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/08/20/59402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/59402.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/59402.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对将Windows CE烧到SBC-2410X板上Nand Flash的步骤作出修正与小结&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/08/20/59402.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/59402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-08-20 01:35 <a href="http://www.cppblog.com/milkyway/archive/2008/08/20/59402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>i.MX21平台之 剖析Windows CE 5.0 Eboot </title><link>http://www.cppblog.com/milkyway/archive/2008/08/13/58786.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Wed, 13 Aug 2008 15:58:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/08/13/58786.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/58786.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/08/13/58786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/58786.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/58786.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文通过跟踪i.MX21平台上Windows CE 5.0 Eboot的流程来说明从板子上电到WinCE OS跑起来的全过程。&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/08/13/58786.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/58786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-08-13 23:58 <a href="http://www.cppblog.com/milkyway/archive/2008/08/13/58786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>i.MX21平台上Startup.s代码的分析</title><link>http://www.cppblog.com/milkyway/archive/2008/08/06/58115.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Wed, 06 Aug 2008 02:23:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/08/06/58115.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/58115.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/08/06/58115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/58115.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/58115.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Startup.s是嵌入式系统上电后启动的第一段代码。本文以i.MX21平台上Windows CE的三个Startup.s代码为例，分析嵌入式系统Boot Loader的引导启动过程最初的工作。&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/08/06/58115.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/58115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-08-06 10:23 <a href="http://www.cppblog.com/milkyway/archive/2008/08/06/58115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE  Boot Loader的流程分析</title><link>http://www.cppblog.com/milkyway/archive/2008/07/23/56918.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Wed, 23 Jul 2008 02:06:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2008/07/23/56918.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/56918.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2008/07/23/56918.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/56918.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/56918.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 概述Windows CE  Boot Loader的流程，给出其中关键函数调用的顺序和功能，总结了Eboot所涉及的文件及下载过程&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2008/07/23/56918.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/56918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-07-23 10:06 <a href="http://www.cppblog.com/milkyway/archive/2008/07/23/56918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OEMAddressTable，config.bib详解</title><link>http://www.cppblog.com/milkyway/archive/2007/04/19/22289.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 19 Apr 2007 03:24:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/04/19/22289.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/22289.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/04/19/22289.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/22289.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/22289.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 介绍windows CE5.0下两个存储配置的重要机制&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/04/19/22289.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/22289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-04-19 11:24 <a href="http://www.cppblog.com/milkyway/archive/2007/04/19/22289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE内存管理机制</title><link>http://www.cppblog.com/milkyway/archive/2007/04/15/21987.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 15 Apr 2007 15:07:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/04/15/21987.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/21987.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/04/15/21987.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/21987.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/21987.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 分析OEMAddressTable和config.bib在windows CE内存管理中的不同作用.&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/04/15/21987.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/21987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-04-15 23:07 <a href="http://www.cppblog.com/milkyway/archive/2007/04/15/21987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>x86 CPU PC/104总线挂载数据采集卡寄存器操作实验</title><link>http://www.cppblog.com/milkyway/archive/2007/04/13/21809.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Fri, 13 Apr 2007 08:46:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/04/13/21809.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/21809.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/04/13/21809.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/21809.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/21809.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows CE5.0操作系统, 硬件平台：x86架构的CPU板卡及挂载在PC/104总线的多功能数据采集卡，软件开发工具EVC4,采用MFC程序测试外设寄存器读写功能。&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/04/13/21809.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/21809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-04-13 16:46 <a href="http://www.cppblog.com/milkyway/archive/2007/04/13/21809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浅谈wince应用程序的可移植性</title><link>http://www.cppblog.com/milkyway/archive/2007/04/08/21481.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 08 Apr 2007 01:19:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/04/08/21481.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/21481.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/04/08/21481.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/21481.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/21481.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 以在wince系统下访问物理地址为例，来看看如何编写在不同架构CPU上可移植性较好的应用程序。&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/04/08/21481.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/21481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-04-08 09:19 <a href="http://www.cppblog.com/milkyway/archive/2007/04/08/21481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VirtualAlloc和VirtualCopy的蕴含知识点</title><link>http://www.cppblog.com/milkyway/archive/2007/03/27/20738.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 27 Mar 2007 14:51:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/03/27/20738.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/20738.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/03/27/20738.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/20738.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/20738.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: windows CE下重要的两个地址映射函数使用注意点和知识点&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/03/27/20738.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/20738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-03-27 22:51 <a href="http://www.cppblog.com/milkyway/archive/2007/03/27/20738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince下的地址映射知识点滴</title><link>http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 27 Mar 2007 14:39:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/20737.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/20737.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/20737.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: wince下进行地址映射的几点体会和注意点&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/20737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-03-27 22:39 <a href="http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince5.0  I/O操作基础(2)</title><link>http://www.cppblog.com/milkyway/archive/2007/03/19/20144.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 19 Mar 2007 08:10:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/03/19/20144.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/20144.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/03/19/20144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/20144.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/20144.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在X86和ARM架构的CPU中,wince访问系统存储空间的方法,原理以及一个小例子.&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/03/19/20144.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/20144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-03-19 16:10 <a href="http://www.cppblog.com/milkyway/archive/2007/03/19/20144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE 下I/O操作基础</title><link>http://www.cppblog.com/milkyway/archive/2007/03/08/19451.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 08 Mar 2007 10:47:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/03/08/19451.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/19451.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/03/08/19451.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/19451.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/19451.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">对外设进行</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">I/O</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">操作实际上也就是读写外设的寄存器,而我们通常使用的X86或者ARM处理器在硬件上决定了wince系统启动后,无法直接访问物理地址,因此需要做一些工作来实现I/O操作.</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先要理解</span>
				<span lang="EN-US">windows CE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的地址映射机制。</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">wince有两种地址：物理地址和虚拟地址．不同架构的</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">CPU</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">硬件上的区别导致地址映射也不同。ＭＩＰＳ和ＳＨ</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">x</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">处理器，不采用ＭＭＵ，直接在ＣＰＵ和内核里定义</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">1G</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">的物理地址；而Ｘ８６和ＡＲＭ带有</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">MMU</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">单元，在</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">OEMAddressTable</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">中定义物理地址到虚拟地址间的映射关系或者是ＯＳ启动后调用</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">CreateStaticMapping</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">和</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">NKCreateStaticMapping</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">来实现从虚拟地址到物理地址的静态映射．经过静态映射的地址，可以由操作系统内核用于</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">ISR</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">访问设备。如果我们要在应用程序中访问外设，必须在物理地址和虚拟地址间建立动态映射关系，我们可以使用</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">VirtualAlloc</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">和</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">VirtualCopy</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">（或者直接调用</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">MmmapIoSpace</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">函数）来实现。</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">其次，如果是操作通过总线挂接的</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">I/O</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">或者存储器，必须先把总线地址转化成</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">CPU</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">上的系统地址，再做物理地址到虚拟地址的映射。这里需要查</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">CPU</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">的</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">Datasheet</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">，找出所要操作的I/O地址.先调用</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">HALTranslateBusAddress( )<font face="宋体">把总线地址转化成</font><span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">CPU</span><span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">上的系统地址,</span></span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">再调用</span>
				<span lang="EN-US" style="FONT-FAMILY: 'MS Shell Dlg'; mso-bidi-font-size: 10.5pt">MmmapIoSpace</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'">函数实现虚实映射；也可以使用</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">TransBusAddrToVirtual</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold">（）直接把总线上的地址转化成系统的虚拟地址。</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold">第三，在一般的应用程序中访问</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">I/O</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold">是访问它的缓存段虚拟地址，而驱动中必须访问无缓存段虚拟地址。简单来说无缓存段虚拟地址</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">=</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold">缓存段虚拟地址</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">+0x20000000</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold">。</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">
						<o:p>
						</o:p>
				</span>
		</p>
		<font size="3">
				<span style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">    总结起来，如果是</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">wince</span>
				<span style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">内核(如HAL)访问外部</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">I/O</span>
				<span style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，只需要在</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">OEMAddressTable</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">中定义物理地址到虚拟地址间的映射关系就可以了；如果是应用程序或者驱动要访问</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">I/O</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，要做的工作包括：</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。在</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">CPU</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">物理地址和虚拟地址间做一个动态映射，</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
						<span lang="EN-US">2</span>
				</span>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso-hansi-font-family: 'MS Shell Dlg'; mso-bidi-font-family: 'MS Shell Dlg'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。对虚拟地址进行操作。</span>
		</font>
		<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'MS Shell Dlg'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
		</span>
<img src ="http://www.cppblog.com/milkyway/aggbug/19451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-03-08 18:47 <a href="http://www.cppblog.com/milkyway/archive/2007/03/08/19451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于GEODE的NK启动问题和KITL的含义(待补充)</title><link>http://www.cppblog.com/milkyway/archive/2007/01/28/18118.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 28 Jan 2007 10:53:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/01/28/18118.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/18118.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/01/28/18118.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/18118.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/18118.html</trackback:ping><description><![CDATA[
		<p>   前段时间遇到一个问题:在使用GEODE和CEPC的BSP定制系统时,CEPC的可以跳转,GEODE的停留在jumping to ..上,两种情况下的CATALOG配置相同.下面是GEODE下的串口信息<br />Debug Serial Init<br /><br />SysInit: GDTBase=80ad70e8 IDTBase=80b28ec0 KData=80b49800<br />Windows CE Kernel for i486 Built on Jun 24 2004 at 18:23:42<br />g_pPageDir = 80b4a000<br />InitKitlNIC: Searching for PCI Ethernet NIC (dwIrq = 0, dwI<br />oBase = 0, dwDfltType = 0) ...<br />RTC - Status Reg B - 0x02<br /><br />Double Fault -- backlink=0048<br />TSS=80b296c0 EIP=802398be Flags=00210086<br />Eax=00000000 Ebx=80b49a84 Ecx=03bb0045 Edx=80b49b50<br />Esi=a4000000 Edi=80b49780 Ebp=80b49a78 Esp=80b49a14<br />CS=0019 DS=0040 ES=0040 SS=0021 FS=0000 GS=0000 <br /><br /></p>
		<dt id="c5590433527507880116">
				<a onclick="" href="http://www.blogger.com/profile/16346505095502200923" rel="nofollow">
						<font color="#002c99">Blog by Braden</font>
				</a> 说... 
</dt>
		<dd>
				<p>好像你启用了KITL,把KITL去掉看看<br /><br />我把KITL去掉了，还是停留在jumping to ox00224FB8<br />调试信息如下：<br />Debug Serial Init<br /><br />SysInit: GDTBase=80ac20e8 IDTBase=80ae3860 KData=80ae9800<br />Windows CE Kernel for i486 Built on Jun 24 2004 at 18:23:42<br />g_pPageDir = 80aea000<br />RTC - Status Reg B - 0x02<br /><br />Double Fault -- backlink=0048<br />TSS=80ae4060 EIP=802353f3 Flags=00210086<br />Eax=00000000 Ebx=80ae9a84 Ecx=03bb0045 Edx=80ae9b50<br />Esi=a4000000 Edi=80ae9780 Ebp=80ae9a78 Esp=80ae9a14<br />CS=0019 DS=0040 ES=0040 SS=0021 FS=0000 GS=0000<br />我看着像是在初始化CPU寄存器时停了.后来发现是我扩大物理内存时,在config.bib里没有把原来的 28MB 段给屏蔽掉造成的.<br />不过对KITL关注了一下.<br />KITL全称为Kernel Independent TransportLayer。它的主要用途是提供更方便的调试手段。KITL出现在Windows CE．net之后，把软件传输协议与硬件传输层隔离开。KITL使得开发者不必了解硬件传输层如何与软件协议层接口。 <br />    以下是应该在OEMInit函数中加入的KITL初始化代码。 <br />    ①初始化所有PCI桥和设备，枚举它们并且给它们分配资源，然后使能，使他们能正常工作。注：此条适于有KITL<a class="inlink" href="http://www.51base.com/electron/adhibition/communicate/" target="_blank">网络</a>接口卡(NIC)和NIC桥的情况。 <br />    ② 对相关总线进行初始化，使得CPU能够正确识别NIC。 <br />    ③通过调用KitlInit函数来初始化KITL。这部分代码可参照其它平台，代码文件为Halkitl.c。 <br />    ④执行0EMKitlInit函数，进行相关的硬件初始化工作。搜索是否存在KITL 网口、串口或并口连接。 <br />    ⑤执行完OEMKitlInit后，把Kitl.1ib和Kitleth.1ib包含入平台资源文件\&lt;Platform&gt;\Kernel\Buildexe\Kernkitl，以便把KITL打包进内核。</p>
		</dd>
<img src ="http://www.cppblog.com/milkyway/aggbug/18118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-28 18:53 <a href="http://www.cppblog.com/milkyway/archive/2007/01/28/18118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince在CF卡上实现冷启动自动保存注册表(Windows CE5.0)</title><link>http://www.cppblog.com/milkyway/archive/2007/01/23/17935.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 23 Jan 2007 11:45:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/01/23/17935.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/17935.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/01/23/17935.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/17935.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/17935.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 给出了在Windows CE5.0上通过Hive-based registry实现CF卡断电保存注册表的步骤和原理说明．&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/01/23/17935.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/17935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-23 19:45 <a href="http://www.cppblog.com/milkyway/archive/2007/01/23/17935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WINCE下保存注册表疑问和网络测试注意事项</title><link>http://www.cppblog.com/milkyway/archive/2007/01/21/17877.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 21 Jan 2007 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/01/21/17877.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/17877.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/01/21/17877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/17877.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/17877.html</trackback:ping><description><![CDATA[
		<p>(一)想在WINCE下实现冷启动保存注册表,参照帮助用hive-based registry实现,可是存在疑问.<br />在CF卡上实现断电保存注册表,使用的是CE5.0,定制时加入了HIVE项,在platform.reg里加入了以下字段:</p>
		<p>; HIVE BOOT SECTION                   (系统启动时的识别关键字)<br /> [HKEY_LOCAL_MACHINE\init\BootVars]<br />  "SystemHive"="Documents and Settings\\system.hv"<br />  "Startup DevMgr"=dword:1<br />"Registryflags"=dword:1                         (修改后关闭时自动刷新从而保存)</p>
		<p>[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]        (文件系统)<br />    "FriendlyName"="FAT FileSystem"<br />    "Dll"="fatfsd.dll"<br />    "Flags"=dword:00000064<br />    "Paging"=dword:1<br />    "EnableCache"=dword:1<br />    "CacheSize"=dword:0<br />    "Util"="fatutil.dll"<br />    "CacheDll"="diskcache.dll"<br />    "Flags"=dword:1000                                (只加载一次文件驱动)</p>
		<p>[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]    (存储驱动)</p>
		<p>"MountAsBootable"=dword:1                        (帮助里说CE5.0忽略了Mountflags关键字)</p>
		<p>; END HIVE BOOT SECTION</p>
		<p>还是没有实现HIVE功能,哪里没有做到位?<br /><br />而我尝试了这样修改platform.reg<br />;registry<br />  ; HIVE BOOT SECTION<br />    [HKEY_LOCAL_MACHINE\init\BootVars]<br />       "SYSTEMHIVE"="Documents and Settings\\system.hv"<br />       "PROFILEDIR"="Documents and Settings"<br />       "Start DevMgr"=dword:0<br />    IF BSP_ENABLE_FSREGHIVE   <br />       "Start DevMgr"=dword:1<br />    ENDIF   <br />    [HKEY_LOCAL_MACHINE\init\BootVars]<br />        "DefaultUser"="default"<br />    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]<br />        "MountFlags"=dword:2<br />    ; END HIVE BOOT SECTION</p>
		<p>修改project.reg<br />;registry<br />  [HKEY_LOCAL_MACHINE\init\BootVars]<br />  "SystemHive"="Documents and Settings\\system.hv"<br />  "Startup DevMgr"=dword:1</p>
		<p>  ; HIVE BOOT SECTION<br />[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]<br />    "FriendlyName"="FAT FileSystem"<br />    "Dll"="fatfsd.dll"<br />    "Flags"=dword:00000064<br />    "Paging"=dword:1<br />    "EnableCache"=dword:1<br />    "CacheSize"=dword:0<br />    "Util"="fatutil.dll"<br />    "CacheDll"="diskcache.dll"</p>
		<p>[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]<br />   </p>
		<p>"Mountflags"=dword:2</p>
		<p>; END HIVE BOOT SECTION<br /><br />实现了冷启动的注册表保存.问题待分析...<br /><br />(二)加入以太网项和驱动后用ping命令发现返回 error 1100,后来找到是防火墙要关掉才能ping通<br /></p>
<img src ="http://www.cppblog.com/milkyway/aggbug/17877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-21 22:43 <a href="http://www.cppblog.com/milkyway/archive/2007/01/21/17877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ＷＩＮＣＥ编译源代码的问题</title><link>http://www.cppblog.com/milkyway/archive/2007/01/20/17848.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 20 Jan 2007 14:30:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/01/20/17848.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/17848.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/01/20/17848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/17848.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/17848.html</trackback:ping><description><![CDATA[
		<font size="4">　　以前作启动盘时不管用哪个nk.bin都不能用.怀疑过所用ＰＢ版本问题．现在看来是荒谬的．<br />　　　我新建的platform每次点击开始build and sysgen时,总会出现一个对话框提示:The Microsoft EULA permits building private code for debugging purposes only. Before releasing the product, the platform must be rebuilt with the libraries that Microsoft provides. Because the build process overwrites the libraries, be sure to back up the libraries before continuing the build process．这个提示其实是因为我重新编译了微软源代码，所以系统提示要备份．根本和版本没有关系．<br />       如果没有修改源代码或者是改动配置文件，在编译菜单中只需要选择sysgen就可以了，速度也快了将近一倍．</font> 如果改动了Catalog或者是配置文件,要选中clean before building项. 如果修改了配置文件或者是public下的代码,则要选择build and sysgen.<img src ="http://www.cppblog.com/milkyway/aggbug/17848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-20 22:30 <a href="http://www.cppblog.com/milkyway/archive/2007/01/20/17848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE的存储与地址映射技术学习</title><link>http://www.cppblog.com/milkyway/archive/2007/01/20/17835.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 20 Jan 2007 12:18:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2007/01/20/17835.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/17835.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2007/01/20/17835.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/17835.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/17835.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 简要介绍了Windows CE采用的四层内存管理结构以及物理地址和虚拟地址间的映射技术&nbsp;&nbsp;<a href='http://www.cppblog.com/milkyway/archive/2007/01/20/17835.html'>阅读全文</a><img src ="http://www.cppblog.com/milkyway/aggbug/17835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-20 20:18 <a href="http://www.cppblog.com/milkyway/archive/2007/01/20/17835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince驱动开发学习笔记</title><link>http://www.cppblog.com/milkyway/archive/2006/12/18/16594.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 18 Dec 2006 13:59:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/18/16594.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16594.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/18/16594.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16594.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16594.html</trackback:ping><description><![CDATA[        因为课题前期调研没做好，用的CPU板卡和数据采集卡来自两个部门。加上买的是裸板，自己定制的OS，技术支持不爱搭理。所以给的AI板卡的驱动一直装不上，自己在郁闷中寻找答案，就扎进了wince驱动的知识库里了。不管驱动装不上是不是这个原因，学点东西总没有坏处。做点记录备查：）<br />         首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点，把这两种分类法分开了。在这里引用一下：<br />“单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PDD与MDD,一般的微软已经实现了MDD，可能也实现了PDD，我们只需要对PDD做些修改就能使用，比如音频的驱动，显示的驱动。单层驱动是把PDD与MDD写在一起，没有做严格的区分，通常这种驱动比较简单，比如：ATADISK。<br />至于本地驱动和流式驱动是从驱动与系统其它模块(调用者)的接口形式上做的分类.其实,本地驱动这个名称不大恰当,可能叫专用驱动或其它名字更为合适.它是指调用它的模块给它有特定的接口，比如电源驱动和通用LED驱动。而串口，网卡等就是流接口驱动程序.<br />所以,一个驱动程序可以是单体的流式驱动,例如:ATADISK.也可以是分层的流式: 如OHCI ”<br />        按照我的理解，单体和分层是驱动实现方式上的分类，而本地和流式则是驱动模型上的分类，所谓本地驱动就是操作系统有保留专门的接口，所谓流式是指编写的DLL文件里可以导出各种流式接口函数。<br />         第二点：驱动的功能属性。<font face="宋体">设备驱动程序是操作系统内核和硬件的接口，操作系统定义了一组标准的接口，编写驱动的过程也就是实现这些接口。从应用程序到具体硬件间有如下这些环节起作用：应用程序-调用OS函数-操作系统-驱动接口-驱动程序-硬件操作函数-硬件。在wince里驱动都以用户态的DLL存在，需要通过进程加载到slot里。共有三类系统进程用来加载：Device.exe,GWES.exe,FileSys.exe.绝大多数设备驱动都是通过Device.exe加载的。需要注意的是，不同的OS保留的设备驱动接口是不一样的，如桌面windows和wince就不同。<br />     第三点：wince下设备的初始化分为两个阶段：Device.exe的初始化；外设的枚举和加载。其流程是：上电-启动bootloader-启动NK-启动注册表init键（Device.exe启动）-初始化数据结构，I/O，电源管理等-加载BusEnum.dll(总线枚举器）-枚举注册表下Driver/buildin的所有子键。这里的枚举过程就是循环调用ActivateDeviceEx()函数加载驱动的过程。在OS启动完毕后，我们可以用PB的Remote Registry Tool查看H_L_M/drivers/active包含的子键，看哪些驱动随启动而加载 。<br />     第四点：流接口驱动的概念。暴露流式接口函数的驱动即是流驱动，它把外设抽象成一个文件。过程是：应用程序使用文件API对设备进行访问，OS接受API调用FileSys.exe，转到device.exe，调用流接口，与硬件交互。所谓流接口函数有十个，包括<span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Init</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Deinit</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Open</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Close</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Read</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Write</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_PowerUp</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_PowerDown</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_Seek</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">XXX_IOControl</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在wince5.0中增加le了XXX_PreClose,XXX_PreDeinit.而我们在应用程序里对应的文件API有<span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">CreateFile</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman">DeviceIoControl</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman"> ReadFile</font></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="FONT-SIZE: 12pt"><font face="Times New Roman"> WriteFile，CloseHandle,SetFilePointer.</font></span></span>  <br />     第五点：编写流驱动的步骤。有两种实现途径：1。写DLL，做成Project，加入到OS里。2。改BSP，把驱动写在BSP里,再选择那个BSP做OS。第一种方法步骤是在PB中新建一个DLL项目，编写一些输入函数，寄存器，外设的声明，写DLLENTRY函数；实现流接口函数；编写DLL的导出函数文件.DEF;为驱动程序写入注册表项，还需要修改bib文件。 第二种方法就是在platform/BSP/drivers下新建一个目录，然后在drivers目录中的dirs文件中加入新建的目录名。在新建的目录下，新建你的源代码文件，在其中实现DLL函数。新建名称分别为sources, makefile, ***.def的文件；<span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black"><font face="Times New Roman">platform.reg</font></span><span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black"><font face="Times New Roman">platform.bib</font></span><span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件。</span></font><br />         <br /><img src ="http://www.cppblog.com/milkyway/aggbug/16594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-18 21:59 <a href="http://www.cppblog.com/milkyway/archive/2006/12/18/16594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince下使用activesync</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16201.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 15:00:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16201.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16201.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16201.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16201.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16201.html</trackback:ping><description><![CDATA[如果用串口线，首先要保证为完整７线连接的．１，６连４；２－３；３－２；５－５；４－１和６；７－８；８－７．<br />连接步骤：<br />１．安装activesync3.7(4.0以上不支持以太网同步了）<br />２．交叉线连接板子和ＰＣ<br />３．下载ＮＫ<br />４．在目标机上运行repllog.exe（定制ＯＳ时加入activesync组件）<br />5. 选择连接方式（串口，ＵＳＢ或者以太网）<br /><br />我的疑问在于：不能通过以太网建立连接．ＭＳＤＮ中说要保证以太网和activesync在不同子网下．这句话不理解．<br />还有我不用在ＣＥ端运行repllog.exe就可以建立连接了．不知道何解？<img src ="http://www.cppblog.com/milkyway/aggbug/16201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 23:00 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EVC建立连接实验</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16197.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 14:41:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16197.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16197.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16197.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16197.html</trackback:ping><description><![CDATA[EVC里建立开发机与目标板的通讯是交叉编译的前提，可以通过configurationg platform菜单项进入你所要配置的开发平台，点击properties项，在Transpor和Startup项设置。建立连接的前提是在板子启动后windows 目录下有三个文件:tcpipc.dll,cemgrc.exe,cetlstub.dll.它们位于开发机的%winceroot\others\platman\target目录下，可以拷贝到windows 目录下。不过更为简单的办法是在定制系统时添加platform manager组件。<br /><br />注意：在利用tcp/ip建立连接时(1)用fixed address要关闭防火墙或者指定端口号绕过；(2)如果通过串口配置地址，需要activesync或者ＲＡＳ可用．<br /><br />可以简单点不用每次连接都打一堆字符：指定端口号，建立一个*.bat文件，在板子的cmd里敲文件名即可。<br /><br />如果Transpor是通过activesync，之前要注意先建立连接，否则将失败。<br />这样比起TCP/IP在CE的command下要敲的字符会比较长.比较如下：<br />选择tcp/ip键入命令行：CEMGRC.EXE /S /T:TCPIPC.DLL /Q /D:****<br />activesync命令行：CEMGRC.EXE /T:TLCESRV.DLL /D:**********<br /><br />如果你使用activesync在开发机和目标机器建立了同步，那么配置选项时，可以把Transpor和Startup项都设置成activesync，这样你每次只要直接buid就可以下载程序到目标机上而不用在cmd里敲命令了。<img src ="http://www.cppblog.com/milkyway/aggbug/16197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 22:41 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PCM3350的串口wince实验心得</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16195.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 14:33:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16195.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16195.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16195.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16195.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16195.html</trackback:ping><description><![CDATA[是否默认com1为调试口,com2为程序通讯用?<br /><br />(一)原来的串口BIOS设置为: com1; 3F8;IRQ4<br />                                           com2,2F8,IRQ3<br />wince启动OS时使用超级终端设置串口参数:COM1,38400bps,8位数据位,一位停止位,无流控制,无校验<br /><br />但是不能通过SBOOT下载NK,参数设置参考MSDN:COM2,115200,8,1,无,无<br /><br />使用CE下串口调试工具,com2可以通讯,com1不行,<br />用activesync可在com2中建立连接,com1则不行.<br /><br />(二)参照PB源代码drivers\builtin\serial下的串口设置,修改BIOS为:com1,02F8/IRQ3;  com2,03E8/IRQ4<br />实验结果比照:<br />超级终端com1,com2都不出现调试信息了.<br />串口助手com1通.com2不通.<br />用activesync,com1可以建立连接,com2不行.<br /><br /><br />可以用CE下的注册表工具或者是通过evc的Remote Regstry Editor查看串口加载情况.<br />在drivers/active/04下为com1<br /><br /><br /><br /><img src ="http://www.cppblog.com/milkyway/aggbug/16195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 22:33 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wince5.0基于GEODE的OS使能128M内存</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16188.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 13:07:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16188.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16188.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16188.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16188.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16188.html</trackback:ping><description><![CDATA[
		<font size="4">针对我的硬件所采用的128M内存,选用的GEODE的BSP,Windows CE并没有默认支持,需要做以下改动才能识别:<br />1.修改源文件oeminit.asm中的AddressTable.位于public\common\oak\csp\x86\oal目录下,将addressTable下的 04000000h改成08000000h. (就是从64M改成128M).进一步如果采用的内存更大,类似的改.<br />2.修改平台配置文件config.bib.加入128M的字段: <br />#else defined IMGRAM128<br />       ; 128 MB of RAM (default) (note: AUTOSIZE will adjust boundary)<br />       ; This value will cause the RAM auto-detect feature to trigger<br />       NK       80220000  009E00000  RAMIMAGE    <br />       RAM      80C00000  07000000  RAM<br />       UMABUF   87C00000  00400000  RESERVED <br />       ......<br />3.在PB中设置环境变量IMGRAM128=1,使配置文件生效.<br />4.修改头文件pc.h的ExtraRAMSIZE设置.从0x02400000改成0x06400000.因为CEPC_EXTRA_RAM_SIZE这个宏为总内存数减去Config.bib中详细列出的内存数,在我的情况下就是128M-28M=100M了.<br />5.选择Sysgen&amp;Build重新编译源代码和配置文件<br /><br />更正：在第４步中修改pc.h文件的CEPC_EXTRA_RAM_SIZE ，从0x02400000改成0x06400000．这个size宏的大小应该是总内存减去CEPC_EXTRA_RAM_START这个宏．<br />　　　　另外，第５步中也可以执行以下ＤＯＳ命令实现(WINCE5.0)：<br />  进入%_WINCEROOT%\Public\Common\OAK\CSP\i86\Oal目录下，执行build 和sysgen i486oal<br /><br />务必注意: 把config.bib里默认的#else 28MB字段去掉,我这两天重新定制NK时,光顾添加128MB的字段,忘了去掉,结果系统就执行到#else 28MB字段就停了,设置IMGRAM128变量根本没有起作用.真是汗颜...</font>
<img src ="http://www.cppblog.com/milkyway/aggbug/16188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 21:07 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个简单的问题:wince5.0下CF卡驱动的加载</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16186.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 12:44:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16186.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16186.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16186.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16186.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16186.html</trackback:ping><description><![CDATA[在PB的Catalog下依次添加CF卡相关组件:<br /> 1. FAT文件系统<br /> 2.ATAPI PCI/IDE<br /> 3.CF Card Storage (ATADISK)<br /><br /><img src ="http://www.cppblog.com/milkyway/aggbug/16186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 20:44 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于PC/104的wince启动盘制作(存储介质:CF卡)</title><link>http://www.cppblog.com/milkyway/archive/2006/12/09/16182.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 09 Dec 2006 12:31:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/archive/2006/12/09/16182.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/16182.html</wfw:comment><comments>http://www.cppblog.com/milkyway/archive/2006/12/09/16182.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/16182.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/16182.html</trackback:ping><description><![CDATA[ 国庆以后的很长一段时间的工作就是干这个,实际上很简单的.不过自己摸索了太长时间,写下来也算是慰藉一下自己.<br /><div class="O" v:shape="_x0000_s1026"><div style="mso-line-spacing: '100 20 0'; mso-margin-left-alt: 216; mso-char-wrap: 1; mso-kinsoku-overflow: 1">平台使用台湾研华的PC/104 CPU模块:PCM3350,GEODE 586系列<br /><br />在X86平台下,有三种boot loader: x86 ROM Boot Loader,x86 BIOS Boot Loader和MSDOS＋Loadcepc.<br />我作的工作是将PCM-3350从CF卡启动,加载操作系统内核,采用MSDOS+loadcepc的方式.<br />简单的制作过程:<br />   1.做一个DOS系统启动软盘(用PB中的工具做).具体位置在programfile\wndows ce PB\500\cepb\utilities下,名为websetup.exe以及cepcboot.144.先后运行这两个程序即可.<br />   2.用DOS下fdisk工具为CF卡建立FAT16格式的主分区<br />   3.将CF卡格式化, 创建系统引导文件,拷贝软盘下所有文件,用PB定制得到的OS文件NK.bin以及loadcepc.exe至CF卡中.<br />   4.根据需要修改文件,如autoexec.bat(开机自动运行的命令行),config.sys(可以设置启动DOS后默认的选择项)等.<br /><br />回想起来很可气的一点是我不知道PB下有个做启动盘的工具.还耗费了很久从网上到处下DOS系统,尝试过用winImage展开到软盘里.结果还不能用.因为wince的启动盘包含的文件与通常的DOS盘根本不同.<br />如果一定要用这种笨办法,那么步骤如下:<br />(1)先做个dos6.22的软盘,(2)要在config.sys中加入device=himem.sys,以支持高端内存,(3)当然也要把himem.sys拷贝到CF卡里,(4)如果要支持网络下载,必须拷贝eboot.bin;还要在autoexec.bat里设置网络地址与开发机为同一子网内;(5)要支持串口下载,拷贝sboot.bin.(6)拷贝public\common\oak\csp\x86\dos\bootdisk目录下的文件.(7)拷贝NK.bin和loadcepc.exe<br /><br /></div><div style="TEXT-ALIGN: center; mso-line-spacing: '100 50 0'; mso-margin-left-alt: 216"></div></div><img src ="http://www.cppblog.com/milkyway/aggbug/16182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2006-12-09 20:31 <a href="http://www.cppblog.com/milkyway/archive/2006/12/09/16182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>