在Windows桌面开发中, 开发者有将平台(Platform, 下同)和操作系统(OS, 下同)模糊地混在一起的趋势。这将在嵌入式系统的开发上引起混淆。 为了强调Windows CE和其它的 Windows OS之间的差异,以及更好的理解产品的设计和工具的选择,有必要明白平台和操作系统的不同。
- 操作系统(OS)
最简单的定义是当计算机启动后控制计算机运行的主控程序,例如Windows 3.1, Windows XP, Windows CE。 | |
- 平台(Platform)
一系列特定的操作系统技术,并和一套指定的硬件相匹配。 在嵌入式的应用开发中,这些通常是由OEM (设备制造厂商,下同)来定义的。用户利用平台专有的 SDK(开发工具包)为特定平台开发应用程序。
微软定义了很多平台,例如Windows 3.1, Windows 98, Windows XP,Pocket PC, Pocket PC 2002, Palm-size PC, H/PC, SmartPhone。
Windows CE是一个开放的,可裁减的32位操作系统。可以利用其一系列组件构造各种平台,能灵活应用于各种硬件配置。 |
|
针对Windows CE而言,
| |
- 而平台是:
- 为一个特定的系统定义的一系列OS(操作系统)组件
- 向应用程序提供的一系列服务和功能
- 可能有另外的OEM提供的组件
- 是硬件和软件的结合
|
利用Windows CE, 可以构造你自己的平台,你可以灵活地选取你需要的组件,但是你需要提供OAL(OEM Abstration Layer, OEM抽象层)和驱动程序。如果在一个现存的平台上开发,应用程序级环境已经确定,你无法改变它。 这时,如果你所需要的组件不存在的话,你的工作将会受阻。
|
内核, 电源管理, 文件系统
- 硬件支持的实时抢占式多任务处理内核
- 进程间通讯 (IPC), 同步对象
- 内存映射文件(MMF), 消息队列
- 带有硬件访问保护的虚拟内存
- 可安装的 ISRs,(Interrupt Service Routing, 中断处理程序)多媒体定时器, DMA APIs
- 给统计和调试用的内核级 hooks(钩子程序)
- 功能强大而灵活的电源管理
- 多层结构的存储管理架构
- 文件系统过滤器
- 例如:添加 FS(File System, 文件系统) 加密
- 在Platform Builder 中还提供了文件系统驱动程序的源程序(Platform Builder是针对Windows CE平台的开发工具, 介绍见下
- FATFS, CDFS/UDFS, BinFS (闪存文件系统)
| | 网络和通讯
- 自适应TCP/IP 栈, 包括IPv6 支持
- NDIS 5.1 驱动程序架构; 支持RNDIS
- Winsock 2 和WinINet
- 无线网络
- 蓝牙
- 802.11, 自动配置和802.1x 安全协议
- 支持的服务: LDAP, DCOM, SOAP, MSMQ, UPnP, …
- 网关功能
- V4 NAT/ICS 和 v6 路由和 路由广播
- 防火墙, DNS 代理服务器, DHCP 分配
| 图形和多媒体
- Windowing
- 图形
- 音频
- DirectSound, WaveOut
- DirectMusic
- 媒体回放( Playback)
- DirectShow
- Windows 媒体技术
- Windows 媒体播放器和 ActiveX 控件
- 从媒体服务器,网络到本地文件的无缝连接
- 支持很多的媒体文件类型和格式
- WMA, WMV, MPEG-1, MPEG-4, Wav, MP3, ADPCM, G.711, GSM 6.10
| | 服务和应用程序
- Shell (桌面程序)
- 两个版本的浏览器
- Email 客户端
- Wordpad
- MSWord, Excel, PowerPoint 和 PDF的阅读器(Viewers)
- 实时消息客户端
- 终端服务客户端
- Windows 媒体播放器
- 组件对象模型(COM)/ ActiveX 控件基础设施(Control infrastructure)
- .NET Compact Framework
- 数据同步基础设施 (infrastructure)
- 设备管理
- HTTP 服务器
- FTP 服务器
- Telnet 服务器
| 集成主板支持软件包(BSP),用于
- 改进现成的 (out-of-the-box)体验
- 缩短原型开发的时间
- 基于整合的周边设备( integrated peripherals )的驱动程序样本
- 很多可得的源代码实例( source examples )
- 减少上层应用程序开发对硬件和驱动程序开发的依赖性
- 在PB(Platform Builder)中每个被支持的CPU内核至少有一个 BSP样本, 更多的在网上可得
- 在网上可获得更多的BSP ,并且包含在参考硬件产品中
在 4.2 中发售的BSP
Family | CPU | SDB 名 | BSP | 内核 | ARM | Intel SA1110 | Ship CSP for SA11x1 | N/A | ARMV4 | Samsung S3C2410 ARM920 | Samsung SMDK-2410 SDB ARM Integrator AP Dev Kit | Samsung_2410 ARMIntegrator | ARMV4I | Intel XScale | Intel Lubbock Platform (DBPXA250) | XSC1BD | ARMV4 ARMV4I | MIPS | MIPS II flavors | Alchemy DBAu1500 SDB (web release) NEC DDB-Vr4122 (Eagle) SDB | DBAu1500 Eagle | MIPSII | MIPS IV flavors (NEC Vr5432) | NEC Solution Gear Series | SG2_VR5500 | MIPSII MIPSII_FP MIPSIV MIPSIV_FP | SHx | SH4 | Hitachi US7750 HARP SDB (“Aspen”) | Aspen | SH4 | SH3 | Hitachi US7729 HARP SDB (“Keywest”) | Keywest | SH3 | x86 | X86 (Intel, AMD, Via, SiS…) | Generic CE/PC machine | CEPC | x86 | Geode GX1 series | National Pompano Platform Any Geode based platform | Geode | x86 | |
|
|
平台开发工具(Platform Builder)
PB开发的整个调试周期
-
PB自带的仿真器可以方便独立于硬件的软件开发 -
低层源代码调试器
-
包含对 h/w probes 的支持 -
微软提供的操作系统源代码 -
事件日志和跟踪工具 -
代码解析器和报告生成器 平台的配置和建立(使用PB)
嵌入式 Visual C++(应用程序开发)
-
需要平台专门的 SDK -
优点
-
给开发者带来了最大的灵活性 -
可以使用平台的所有功能 -
给应用程序带来了最高的性能 -
缺点
-
开发者需要考虑各个方面 -
针对不同平台必须重新编译 -
最高的维护需求 嵌入式 Visual C++ (4.0)
-
和 Windows CE .NET一起发售
-
新增的功能
-
对eVC 3.0的小型漏洞修补 嵌入式 Visual Basic 3.0
-
需要平台 专门的SDK -
需要平台的支持 -
优点
-
通用的二进制代码 (P-code) -
简单易学 -
快速开发, 进入市场 -
缺点
Visual Studio .NET
|