ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
文章介绍了微软的嵌入式操作系统产品线,分析了WinCE 6.0和.NET Micro framework技术特点。根据嵌入式系统的要求,还比较了微软和嵌入式Linux、 VxWorkss的差异和各自特色。
引言
在嵌入式操作系统领域,微软的Windows Mobile正在智能手机市场快速增长,“2007 Windows 硬件工程大会”及“2007 移动与嵌入式开发者大会”的资料显示,全球55个国家的110个运营商采用Windows Mobile,近50家设备制造商生产了100多款Windows Mobile手机和便携式设备。微软的其他嵌入式软件发展也非常快,51%的零售商考虑使用基于Windows Embedded的POS (销售点)系统,2005年有60%的瘦客户端运行着WinCE。微软最新发表的面向单片机的.NET Micro Framework在2006发布后,今年3月在美国的ESC(嵌入式系统大会)又发表了一个扩展版本。由此可见,微软的嵌入式操作系统正在成为商业嵌入式操作系统的重要选择。
但是比较起不少已经有20多年历史的老牌嵌入式操作系统公司,微软还是一个新兵,整个产品线还在发展和丰富之中。
微软嵌入式产品发展历史
在探讨微软的嵌入式操作系统技术细节之前,让我们先了解一下其名称、相互关系和发展历史。微软从96年发表WinCE第一个版本,到目前为止,可以看到有两个主要嵌入式操作系统品牌。其一是针对移动终端的操作系统Windows Mobile,在5.0 版本之前,Windows Mobile分为针对智能手机的版本Windows Mobile for SmartPhone,针对PDA 手机的版本Windows Mobile for Pocket PC Phone,针对PDA 的版本Windows Mobile for Pocket PC。
其二是微软的嵌入式操作系统平台Windows Embedded ,这个平台目前包括微软核心的嵌入式实时操作系统-Windows CE(简称WinCE), 它可以支持各种便携设备和广泛的嵌入式应用。嵌入式XP—Windows Embedded XP(简称XPE),是模块化的XP版本,支持各种嵌入式应用。嵌入式POS系统-Windows Embedded for POS(简称WEPOS),一个专门为零售终端定制的嵌入式XP版本。
微软这些嵌入式操作系统里面实际上只有两个内核,一个是WinCE 内核,包括Windows Mobile也是使用这个内核,目前Windows Mobile 5.0 和6.0版本使用的都是WinCE 5.x 版本的内核。该版本2004年推出,是目前广泛使用的一个产品。WinCE 目前的最新版本是6.0,2006年底正式发布。另外一个内核是XPE和WEPOS 使用的Windows XP的核心。
由此可见微软在嵌入式系统的策略,即WinCE 和Windows Mobile 是具有硬实时的嵌入式操系统,目标是移动和通用的嵌入式设备,如手机、导航、PMP、机顶盒、工业控制设备和医疗仪器等。Windows Embedded XP 是一个非实时的可以嵌入的操作系统,目标是瘦客户机、零售机器、工厂生产线控制和技术外设存储和显示设备。另外,微软最新推出的.NET Micro Framework是针对微型设备和单片机市场的一个新产品,它补偿WinCE不能支持的更小型的嵌入式应用。
微软嵌入式平台核心-WinCE 技术特色
WinCE 是一款典型的嵌入式操作系统,具有层次化和模块化的体系结构。WinCE分为硬件、OEM(委托制造)、操作系统和应用软件四个清晰的层次,硬件层即WinCE 可以支持不同的微处理器和外设,如x86、ARM、XScale 等,OEM层是指引导程序(boot loader)、设备驱动等,操作系统层是内核模块、图形模块、文件和存储模块、设备管理和加载系统的服务模块组成,应用软件层是WinCE自身的应用软件,如MS Office、Media Player、IE和第三方应用软件。应用软件层和操作系统层有一个Win32 本地API和基于.Net Compact Framework的被管理代码。
WinCE内核
WinCE 是微内核操作系统,这是目前嵌入式操作系统都在使用的先进的内核技术,例如,VxWorks、QNX和最新的L4内核都实现了微内核技术。微内核是指在内核里面只实现一些基本服务,如进程调度、进程间通信和中断处理等,其他的服务和功能都放在内核外。显然,微内核的好处是易于移植到不同的处理器和硬件平台,内核外的服务如设备驱动和文件管理模块是运行在不同的地址空间,这样相较于整个系统都是平板结构的实时内核(如uc/os-II、nucleus、threadx)要更加安全和可靠。微内核的核心也非常小巧,一般几K~几十K字节。当然事物永远是辨正的两个方面,微内核系统因为要经常在内核态和用户态之间转换,所以系统的某些性能和实时响应能力可能要比平板结构的实时内核要低(不同的性能指标取决于不同的微内核系统的设计)。
同Windows一样,WinCE每个运行程序都是一个进程,WinCE 5.0 版本支持32个进程,每个进程有32M的虚拟地址空间,WinCE 6.0 则可以支持3.2万个进程,每个进程有2G的虚拟地址空间。WinCE 是一个基于抢占的多线程操作系统。在线程这一级,WinCE 可以实现类似嵌入式操作系统任务的调度、通讯、同步功能。为了支持可以抢占的硬实时调度,WinCE 已经实现了优先级反转机制(priority inversion)。
6.0版本的WinCE内核相较以前的5.0有了很大的改进,重要的一点就是把一部分关键文件、图形管理和驱动程序放到内核里面,好处是减少了模块在用户态和内核态切换的开销,还减少了应用程序访问这些模块调用的开销。WinCE 6.0的内核结构见图1。
图1 WinCE 6.0的内核结构
WinCE 的BSP
嵌入式操作系统是运行在不同的微处理器上,如手机和移动设备大量使用的ARM体系结构的CPU,市场上有三星ARM2410/2430、TI OMAP730/1710/2430和Marvel XScale体系的PXA270等,除此之外,还有数字电视、IP机顶盒系统使用的MIPS体系结构,如东芝、博通、IDT等公司的芯片。当然,x86在各种通用嵌入式系统方面也有大量的应用。
微软的嵌入式操作系统也是使用BSP(Board Support Package)的概念支持各种CPU和硬件平台的移植工作,在WinCE 5.0里已经有包括三星2410、Marvel PXA270等许多流行的BSP,微软的OEM厂商如研华、飞思卡尔、NXP等也提供他们移植的OEM BSP。WinCE 6.0将会在CE5.0支持ARM V4基础上支持ARM V6,包括三星、飞思卡尔的ARM11核的SoC都将得到支持。在x86方面,微软依托在桌面系统的强势,得到了众多IPC(工业PC)和EPC(嵌入式PC)厂家的拥戴和支持。
在BSP结构方面,新的WinCE6.0的内核和OAL是完全独立的两个模块,好处是在修改BSP后,内核不需要重新构建了,减少了多次构建、测试和发布内核的过程,提高了系统的可靠性。这种结构还可以让微软发布针对OEM的内核,而OEM可以因为自身知识产权的考虑,以二进制方式向最终用户发布BSP(如图2)。WinCE自身包含OEM BSP 定制和发布工具,这样OEM可以很方便地发行自己的BSP SDK包。
图2 内核和BSP的结构
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号