Win CE移植心得

合集下载

基于Windows CE的嵌入式系统镜像文件移植的研究

基于Windows CE的嵌入式系统镜像文件移植的研究
程 是 基本 相 同 的 , n o Wid ws CEn t的 平 台 定 制 工 具 . e Pafr B i e 是 一 个 集 If m ul r o d
新建 P a fr u e l to mB id r工程 t
Pafr ule 定制 操作 系 统 及 移 植 到 硬 件 的方 法 , I 0m B i r t d 包括 自定
本 项 目应 用 研 华 MI 2 0 C一 0 0工 业 控 制 计 算 机 作 为 硬 件 , 采 用 Wid w .e . 为 实 时 操 作 系统 ,开 发 出工 业 控 制 n o s CEn t42作
低了系统移植 的复杂度 , 满足了嵌入式系统存储空间有限 、 应用
针对 性 强 的特 点 。
t h U Ca d f r te P b s d Mo lr MI 2 0 n u t a c mp t r s l s o t e CP r o h C- a e du C- 0 0 Id s r l o ue e‘ . a i i e Ke wo d : n o .e .mb d e y t m。C— a e d lr Id sr lc mp t r y r sWid ws CE n t e e d d s se P b s d Mo ua n u ta o u e i
e e d d o eai ytm.sa x m l. w i u sh w t rnp ni p r i yt m g o u n (KBN mb d e p r n ss A n ea p tg e e e d c s o ot s l t g o ea n ss m ia ed cmet N .I) s a a n tg e
义操作系统镜像 ,将 生成 的镜像 文件 ( .I NKBN)移植 到 MI C一

Windows程序向Windows CE平台的移植

Windows程序向Windows CE平台的移植

多在 台式 计 算 机 上 或 者 在 嵌 入 式操 作 系 统上 运 行
的测量 应用 程 序 ,有 必要 移 植 到Wid w E . n o s 下 这 C
样 会 给人 们 的工作 带 来 极大 的 方便 , 大 大提 高 工 并
改 或者 寻求 可替 代 的 丽数 。概 括起 来 , n o sC Widw 考虑的主要 问 no s 需 C 题 包 括 : cootWi3 Mi sf n 2应 用 程 序 编 程 接 口 A I r P
( p l ai rga mig n r c )和Widw E A pi t nPorm n t f e c o Iea n o s 应 C
些 不 支 持 的 函数 就 必 须 通 过 调 用 其 它 函数 间接 实 现 它们 的 功能 。 如C 行时 间 库 中不 存 在 内存 分 配 运 函数cl C 可 以通过 调 用mal , 示 初 始化 内存 al , O l c 并 o
来 实现 。再 如 , 以用P l ie 现 M vT 和Ln T 可 o Ln 宴 y o e o ie o 函数 的功 能 。 ( )有些 Wi3 函数在 Wid w E 2 n2 n o s 中虽 然 支持 C 但 多 一些 限制 , 如减 少 了参 数 个数 或 缩 小 了参 数 的 可选 范 围 。例 如 ,创 建 窗 口函数 C etWid w和 ra e no Ce tWidw x Wid w E中是 支持 的 .但 可供 ra e n o E 在 n o sC 选择 的 窗 口类 型 有所 减少 。 ( )Wid w E 3 n o sC 程序 也 可 以用 MF 开 发 . 是 C 但 程 序 消息 定 义 有 所 不 同 。它 不 完 全 支持 以WM 和

S3C2410下的Windows CE.net的移植及应用程序开发

S3C2410下的Windows CE.net的移植及应用程序开发

0 引言
的硬件一体化 , 具有软件代码小 、 高度 自动化、 响
应速度快 的特点 , 是一个具 有广阔发展前景的信
嵌入式 系统是指 以应用为中心 、 以计算 机技 息技术领域. 随着硬件的发展 , 当提 供的应用功能越来越 术为基础 、 软件硬 件可裁减 、 适应应用 系统对 功 能、 可靠性 、 成本、 体积 、 功耗等严格要求的专用计
Ab ta t hsp p rito u e o o p r te e e d d o e a n ytm id ws sr c :T i a e rd c sh w t o t h mb d e p rt g sse o W n o n i f C n ae n te mirpo es ro ¥ C 4 0, n e d sg to p l a o E. e b s d o co rc so t h f 3 2 1 a d t ein me d o a pi t n h h f ci s t r . e k ys p h b v rc saeds u sd a d terltd c n e t r x f o wa T e t si tea o epo e r ic se h eae o c psaee - e h e n s n
维普资讯
第 2 卷第 4 0 期
t ̄
, c4o s z1 下的 Wi os E nt 3 n w .e的移植及应用程序开发 d C
2 7
能和利用率. 由于应用的需要和硬件条件的限制,
是相对于操作系统而言的, 不同的操作 系统对应
S, S 一定要按照 嵌入式操作系统都注重占用空间小和效率高的性 于不同定义形式的 B P 所以写 B P S 这样才能与上层 o s 能特点. 用户可以根据 自己的需要增减系统组件 , 该系统 BP的定义形式来写. 保持正确的接 口。 的支持上层 O . 良好 s 完成创建 这样有利于操作系统 的移植. 个新的 P tr , C to lo a m后 在 a l f a g中把开发 中要用 在 Sm ug公 司 的 S C 40硬件平 台上进 a Sn 3 21 lo a m f 例如 : i s t Mc o o r f 行 Wi o s E nt n w .e操作系统 的移植及软件开发 , 到的一些组件加入到 P tr 中, d C

基于S3C2440硬件平台的Windows CE移植

基于S3C2440硬件平台的Windows CE移植

基于S3C2440硬件平台的Windows CE移植系统移植是解决嵌入式操作系统在不同硬件平台上运行的关键技术,论文以基于S3C2440的嵌入式系统为目标硬件平台,分析了Windows CE操作系统在该平台上移植的相关技术,重点阐述了BSP的框架结构和功能,以及各部分的具体实现,移植充分考虑了代码的重用性原则。

标签:操作系统移植;S3C2440;Windows CE;板级支持包前言近年来,嵌入式技术及产品的快速成长成为了全球IT产业发展的显著特征之一,嵌入式系统以多种形式,日益融入到我们的工作和生活中。

操作系统作为嵌入式系统最重要的软件系统,需要在用户定制的硬件平台上运行,要解决这一问题,就要实现嵌入式操作系统的移植。

移植的目的是使嵌入式操作系统能在特定的硬件平台上运行,它是进行嵌入式系统应用软件开发的基础。

在实际的嵌入式项目开发过程中,采用操作系统移植可以显著缩短软件开发的周期,加快新产品推向市场的时间。

鉴于此,本文对Windows CE在基于S3C2440硬件平台上的移植进行研究。

1 Windows CE及目标硬件平台Windows CE是微软开发的一款功能强大的实时嵌入式操作系统,它采用模块化设计,使得开发人员根据需要定制设备,有助与快速地开发功能各异的产品与服务。

同时,微软为Windows CE的开發提供了一系列的集成定制和开发工具,其中,进行Windows CE 操作系统移植用到的开发工具为Platform Builder(以下简称PB),它是一个集操作系统“构建-调试-发布”三者为一体的集成开发环境。

目标硬件平台以S3C2440为主控,S3C2440是samsung推出的一款16/32 bit 的RISC嵌入式微处理器,它采用ARM920T内核,并具有丰富的片内资源。

同时,硬件平台采用256M的Nand Flash和64M的SDRAM分别作为硬盘和内存。

同时,扩展串口用来输出调试信息,采用DM9000来扩展以太网接口来实现网络通信,利用UDA1341TS音频编解码芯片来实现音频的采集和播放。

Windows应用程序移植到Windows+CE下的策略

Windows应用程序移植到Windows+CE下的策略

程序, 都只支持惟一的编程接口Wi 2 . n AI 3 P () Wi o s dw C 8在 n E中也使用注册表来存储用户设置和
少量用户数据,但基于存储空间和系统性能的考虑,Wi n - dw C 注册表的范围缩小了. o s E
3 移植 Widw 应用程序到 Widw C no s n o s E
行, 就必须将应用程序设置为与MF 2 版本兼容. F 2 C. 0 M C. 1 以上版本增加了诸如新的命令栏风格,状态栏和打印支持
等特性 .
其次是考虑 MF C的连接问题.Wi o s n w C d E设备主要 有两个问题: 速度和内存.将 MF C静态连接到应用程序会 占用设备上的许多空间.现有的许多 Wi o s n w C d E设备在
年, 微软公司推出新版本Wno s E . i w C. T d E N
与基于 P C的操作系统不同, no s Wi w C d E不需要标准
硬件,反之,它支持各种各样的C U P ,如X 6 Pwr , 8, e C o P
Wi o s E n w C 操作系统本身具有从程序内部创建和访问 d 数据库引擎的支持和功能.它是惟一一个直接把数据库功 能内置于 O 本身的操作系统. S 2 Wi o s Wi o s . 2 n w C d E和 n w 的区别 d 为了适应嵌入式系统对软硬件提出的全新要求,Wi n - dw C o s E具有许多和 Wi o s n w 不同的特性, d 主要表现在: () no s 1虽然 Wi w C d E在界面和使用上和 Wi o s n w 很相 d 像, 但它并不是 Wi o s n w 的简化版 , d 它具有全新的内核, 为 了适应嵌入式应用的要求, 内核很小, 其 只有几百 K字节. () dw C 有严格的内存限制, s 2Wi o E n 并且采用全新的内 存管理策略. 内存是在编写程序前必须考虑的最重要的' E ` C 问题" W no s a dw C i E的内存限制包括 3 个主要方面: ①大多 数 Wi o s 设备首先装入相对较小的物理内存. n wC d E 如掌上 P C设备通常只有 4 MB或 8 M8内存. no s Wi w C d E设备的物 理内存容量 由生产厂商设定, 开发者对此无能为力; Wi O n - dw C 设备不配备硬盘, o s E 物理内存兼作为程序内存和存储

定制自己的Windows CE 5.0 ARM中文模拟器

定制自己的Windows CE 5.0 ARM中文模拟器

定制自己的Windows CE 5.0 ARM中文模拟器一、生成OS1. 安装Windows CE 5.0(记得CPU类型里把ARMV4I选上)装完之后装DeviceEmulatorBSP.msi,这是ARMV4I模拟器的BSP。

2. 运行Platform Builder,新建一个Platform,给你的新Platform取一个名字,我这里取为MyCEEmu。

BSP选择Microsoft DeviceEmulator:ARMV4I,Design Template选择Mobile Handheld,Application & Media随你选,Networking & Communications只选择Local Area Network(LAN)->Wired Local Area Network,其余都去掉。

最后完成向导。

3. 添加网卡。

在Catalog View的Device Drivers->Networking->Local Area Networking (LAN) devices目录下,把NE2000-compatible(PCMCIA car)添加进来。

4. 如果要开发托管程序,添加Catalog View的Core OS->Windows CEDevices->Applications – End User->CAB File Installer/Uninstaller。

5. 添加ActiveSync(可选),在Catalog View的Core OS->Windows CEDevices->Applications – End User目录下。

6. 添加闪存支持。

有三个部件:SMFlash,Partition Driver和FAT。

先转到Catalog View:SMFlash在BSP->Microsoft Device Emulator->Storage Drivers->MSFlashDrivers->SmartMedia NAND Flash Driver (SMFLASH),Partition Driver在Core OS->Windows CE Devices->File Systems and Data Store-> Storage Manager->Partition DriverFAT在Core OS->Windows CE Devices->File Systems and Data Store->Storage Manager->FAT File System。

Qt for WinCE 环境搭建心得

Qt for WinCE 环境搭建心得

Qt for WinCE 环境搭建心得李振宇2011-10-17由于c#版终端软件在WinCE终端上运行不稳定,因此考虑用C++(Qt)重新开发,以前用Qt的SDK安装很方便,可是Qt Wince环境必须要编译Qt源代码,为了搭建环境经历了很多周折,历尽艰辛,花了3天时间,终于搞定了,现把主要步骤和注意事项记下,以留备用。

原来的开发环境设计msvc2005 + qt4.7.4 + qt-vs-addin1.1.9 (qt的此两项为当前最新版本)可是由于qt4.7.4在编译(for wince)时出现错误,此为qt4.7.4的一个Bug(见资料1),因此改为qt4.7.3。

msvc2005在安装win32版时,由于只有msvc2008编译版,重新编译麻烦,因此改为msvc2008,否则Debug版编译有问题(见资料2)。

还有qt-vs-addin1.1.9在和msvc2008,wince6.0搭配有问题,加不了qt库(见资料3),因此改用qt-vs-addin1.1.8。

开发板方面用的是ARM9的SmartArm3250(wince 6.0)。

最终开发环境为msvc2008 + qt4.7.3 + qt-vs-addin1.1.9资料1 : qt4.7.4 for wince bug现象:编译qt库时出现错误error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t参考资料:https:///browse/QTBUG-21331Description:When building the Windows CE version of Qt4.7.4 (using e.g., configure -platform win32-msvc2008 -xplatform wincewm60professional-msvc2008, linking (nmake) fails with the following output...Creating library ..\..\lib\QtGuid4.lib and object ..\..\lib\QtGuid4.exppngwrite.obj : error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t..\..\lib\QtGuid4.dll : fatal error LNK1120: 1 unresolved externalsFunction gmtime is not available under Windows CE / Windows Mobile, so that would explain the linker error. I marked the Component as Image formats, as it seems to be related to pngwrite / libpng.Answer:But QT 4.7.4 for WinCE have problems with maximized forms ( form.showMaximized() ) I have to get back to 4.7.3 version.资料2 : msvc2005 Debug版不能用qt-win-opensource-4.7.3-vs2008.exe参考资料:/yibobin/blog/item/7fe8b9f01cbd76d47831aa28.html结论1:如果你想把Qt4.6.2安装在VS2005中,又不想花时间编译,请下载和安装qt-win-opensource-4.6.2-vs2008,并单独编译“QT安装路径\src\winmain\”结论2:在安装qt-win-opensource-4.6.2-vs2008(msvc9/vs2008已编译版)之前千万不要安装qt-sdk-win-opensource-2010.02.1(miniGW已编译版),如果不幸安装了,请先卸掉它,切记!资料3:qt-vs-addin1.1.9和msvc2008存在兼容性问题现象:在vs2008添加qt库时出现错误this qt version is not compatible to your current visual studio. Qt builds VS version:0 current version:1500。

基于ARM的Windows CE移植及应用开发

基于ARM的Windows CE移植及应用开发
第2卷 l
2 1 年 4月 01
第 4期
计 算 机 技 术 与 发 展
C OMPUT ER ECHNOLOGY T AND DEVEL OPMEN T
Vo . No 4 1 2l . Ap . 2 1 r 01
基 于 A M 的 W i o sC R n w E移 植 及 应 用 开 发 d
O 引 言
随着科技进 步和 后 P C时代 的到 来 , 入 式技 术 嵌 的应用范 围越来越广泛 , 入式 产 品也 充斥 着各个 领 嵌 域, 而嵌 入式 系统是这些应用 的核心 . 是连接嵌入式设 备和应用 的重要 部件 …。Widw E是微 软公 司面 no s C 向嵌入式领域推出的一个功能强大的实时嵌入式操作
了 B P的框 架结 构和执 行流 程 。提 出 了基于 ¥ C 4 0处 理 器 的 Wi o sC 5 0平 台 下 B P开 发 步骤 , 细 说 明 了 B o S 2 24 n w E . d S 详 ot l d rO L 驱 动程 序 和配置 文件 的设计 方法 , o e,A , a 充分 利用代 码重 用 思想 , 成 了整 个操 作 系统 的 移植 。基 于此 平 台完 成设 完
备监 控 终端 软件设 计 , 对整个 系统 的后 续研 究和 完善 奠定 了基 础 。实验 表 明操 作 系 统运 行 稳 定 , 这 监控 终 端 能可 持 续显 示波 形 并与 P C机 通信 . 具备 良好 的可靠 性 。
关 键词 :3 24 ; n o s E 5 0 B P 监控 终端 S C 4 0 Wi w . ; S ; d C 中图分 类号 : P 7 5 T 2 3 . 文献标 识码 : A ・ 文章 编号 :6 3 6 9 (0 1 0 — 1 9 0 17 — 2 X 2 1 ) 4 0 2 — 4

Windows应用程序向Windows CE平台移植的研究

Windows应用程序向Windows CE平台移植的研究
C代 表 袖 珍 ( o a t 、 费 ( o s me) 通 讯 能力 ( o — c mp c ) 消 cn u r 、 c n
ห้องสมุดไป่ตู้
Widw 程 序 移植 到 Widw E下 是一 个 加 快 软件 开 no s n o sC 发 效率 和提 高软件 质量 的途 径之 一 。
1 Widw E程序与 Widw 程序 的区别 no s C no s
维普资讯
l u警| 豫-
己 口 年I 月 口7 口 第己 卷 鲷 口 5 期
Wid ws 用 程序 向 Wid w E 平 台移 植 的研 究 no 应 n o sC
何 艳玲 范 跃 华 ( 安 工 业 大 学 计 算 机 科 学 与 工 程 学 院 西 安 70 3 ) 西 1 0 2
Ab ta t sr c :Bya ay i g t ec r ce it so mb d e id wsCE p r tn y tm n h to h o plre vr n n lzn h haa trsi fe e d d W n o c o e a ig s se a d t a ft e c m i n io — e me tEVC ,w ep ito t h i e e c f p l a in b t e id w sa dw id w sCE n r s n heta s ln ta — n on u edf r n eo pi to ewe nw n o n n o a dp e e tt r n p a tsr t t f a c e isa d t e ta s ln r c d r tp ,whih s c e su l r n p a ta f utd a n ss e p r y tm n o e e d d ge n h r n pa tp o e u e se s c u c s f ly ta s ln a l ig o i x e ts s e it mb d e s se n u t e v lp nt n p l a inf rt es se i lor aie P a tc h w st a h t o fe tv l y tm a df rh rde eo me da p i t o h y t m sas e l & r c ies o h tt eme h d efci ey a c o z i p o e heefce y o h e eo m e tp o e sa d i p o e ot r u l y a l m r v st fiinc ft e d v lp n r c s n m r v d s fwa eq ai swe1 t .

传统Win32应用程序向Windows CE平台移植的研究

传统Win32应用程序向Windows CE平台移植的研究

遇 到 的 第 一 个 问 题 通 常 是 ?FV 不 可 用 , 这 是 因 为 7(0W 必须检查应 P+K, $S 仅 实 现 了 7(0@9 ?FV 的 一 个 子 集 。 用 程 序 中 所 有 的 7(0P+K, ?FV 调 用 , 包 括 函 数 、 消 息 以 及相关数据结构,对不兼容的函数调用作一些修改或者 寻 求 可 替 代 的 函 数 。概 括 起 来 , 7(0P+K, $S ?FV 与 传 统
这 种 移 植 方 法 是 错 误 的 。 因 为 K:<<(5 函 数 以 字 节 为 单 位 分 配 内 存 , 而 一 个 字 符 在 $%&’()* 23 系 统 中 占 . 个字节, 上 述 分 配 方 法 将 导 致 内 存 空 间 不 足 。正 确 的 移 植 方式应为:
%&J KILM&5EB2D!C ! =F N B2D!C ! =*>O%<60:K6 ; =*>O%<60:K6PEB2D!C ! FK:<<(5E?!QO#A3A30 ! *%>6(L EB2D!CF F ; %L E=*>O%<60:K6F J5*&5=IE=*>O%<60:K6 , =, ?!QO#A3A30F ; - ! 3J5 ! -
7’ZDI\;;\J[\7J 消 息 。 同 时 , 7(0P+K, $S 自 身 又
产 生 了 一 些 新 的 消 息 。因 为 内 存 限 制 , 该平台上的所有应 用程序都运行在低内存状态下,它们必须具备和操作系 统协同管理内存的能力。当系统可用内存低于某个阈值 时, 7(0P+K, $S 系 统 会 向 正 在 运 行 的 应 用 程 序 发 送 消 息,使其关闭或释放暂时不用的内存。新增消息

基于WindowsCE移植电火花线切割加工数控编程系统的研究

基于WindowsCE移植电火花线切割加工数控编程系统的研究
设计 ・ 研 究
《 电 加工与模具) 2 0 1 3 年第5 期
基 于 Wi n d o w s C E 移植 电火 花线切 割加工
数控 编程 系统 的研究
魏 万根 , 张永俊 , 黄 志 刚
(广 东工 业 大学 机 电工 程学 院 , 广东广 州 5 1 0 0 0 6) 摘要 : 针 对 Wi n d o w s C E特性 及 其 E V C编 译环 境 的特 点 , 研 究 了 Wi n d o w s C E与 Wi n d o w s 的异 同. 提 出 了移植 的关键 要 素所 在 。 以天嵌 T Q 2 4 4 0开发 板 为 目标设 备 , 研 究 了 Wi n d o w s C E软件 开发 环 境 的架构 、 系统 定制 和应 用程 序 的设 计及 调 试 , 为 WE D M 计算机 辅 助数控 编 程 系统 ( C A WE P ) 的 移 植打 下基 础 . 并预 想 了 C A WE P移 植后 的初期 界 面 。 关键 词 : 嵌入 式 操作 系统 ; Wi n d o w s C E; 移植 ; WE D M; 数 控编 程 中图分 类号 : T G 6 6 1 文献 标 识码 : A 文章编 号 : 1 0 0 9 — 2 7 9 X( 2 0 1 3 ) 0 5 — 0 0 1 3 — 0 5
微 软推 出 的嵌 入 式操 作 系 统 Wi n d o w s C E是 一 个基于 3 2位 、 嵌 入式 、 多任 务 、 实 时 性 能好 、 通 信 能
力强大 、 具有模块化特性的操作系统 . 适 应 各 种 嵌 入 式 系 统 和产 品 。Wi n d o w s C E的 可裁 剪 特 性 与模 块 化 设计 方 式 。 使 系统及 应 用 开 发人 员 能 够 为 各种

ce程序基址技巧

ce程序基址技巧

ce程序基址技巧【原创实用版2篇】目录(篇1)1.CE 程序基址技巧的概述2.CE 程序基址技巧的原理3.CE 程序基址技巧的实现方法4.CE 程序基址技巧的应用实例5.CE 程序基址技巧的优缺点分析正文(篇1)一、CE 程序基址技巧的概述CE 程序基址技巧,全称“Windows CE 程序基址技巧”,是一种在Windows CE 操作系统下,针对程序运行时数据段(即代码段、数据段、堆和栈等)基址的设置技巧。

通过该技巧,可以有效地提高程序的执行效率,降低系统资源消耗,同时为程序的调试和分析提供方便。

二、CE 程序基址技巧的原理在 Windows CE 系统中,程序的运行时数据段会被加载到内存中的特定区域。

这些区域的地址在程序运行过程中是固定的,但由于不同程序的内存需求不同,因此可能会导致内存碎片化,影响系统性能。

CE 程序基址技巧就是通过调整程序运行时数据段的基址,使得程序能够被更加高效地加载和执行。

三、CE 程序基址技巧的实现方法实现 CE 程序基址技巧通常需要以下几个步骤:1.确定程序的代码段、数据段、堆和栈等运行时数据段的大小。

2.根据实际需求,调整这些数据段的基址,使其不被加载到内存中的固定区域。

3.在程序中添加相应的代码,以便在运行时能够正确地获取新的基址。

4.编译和调试程序,确保基址调整后的程序能够正常运行。

四、CE 程序基址技巧的应用实例CE 程序基址技巧在实际应用中具有广泛的应用前景,例如:1.在嵌入式系统中,通过对程序基址的调整,可以降低内存消耗,提高系统运行速度。

2.在调试程序时,通过设置不同的基址,可以在不同的内存区域中运行程序,方便程序员进行调试和分析。

五、CE 程序基址技巧的优缺点分析CE 程序基址技巧的优点主要体现在以下几个方面:1.可以有效地提高程序的执行效率,降低系统资源消耗。

2.为程序的调试和分析提供方便。

然而,CE 程序基址技巧也存在一些缺点,例如:1.调整程序基址后,需要重新编译和调试程序,增加了开发难度和时间。

Windows CE系统软件移植流程

Windows CE系统软件移植流程

Windows CE系统软件移植流程Windows CE(以下简称CE)是一个可定制的嵌入式操作系统,为了适应不同的硬件平台,需要对BSP、Device Driver、bootloader等进行修改、定制。

本文主要讨论在BSP、driver 等已完成的基础上如何移植,关于BSP、driver等的定制在其他文档中详细描述。

Microsoft为定制CE平台提供了一个集成开发工具——Platform Builder(以下简称PB),我们的工作都是利用这个工具完成的。

另需注意,本文是以X-Hyper255B开发板为例进行说明的。

1.安装BSP(Board Support Packet)为了定制CE,BSP是必需的。

BSP包括bootloader、kernel、Device driver和configuration。

在利用PB生成特定平台的CE之前,必须先安装针对该平台的BSP。

例如,在安装完X-Hyper255B开发板的BSP后,在PB的Third Party中会出现它的BSP。

2.为X-Hyper255B定制CE平台2.1. 创建一个新平台1.在PB中选择File->New Platform开始“New Platform Wizard”。

2.在BSP列表中选择“X-HYPER255B:ARMV4”。

3.后续步骤按向导的提示进行,比较简单,这里不再赘述。

2.2. 设置平台参数在生成kernel image之前应该对平台进行一些设置。

1.如下图,右键单击选择“Settings…”(也可选择Platform->Settings)2.在“Build Options”选择页中选中“Enable Eboot Space in Memory”和“Enable FullKernel Mode”。

2.3. 生成Kernel Image1.选择Build->Generate Platform Headers。

在博创UP-NETARM2410-S开发板上移植Windows CE详解

在博创UP-NETARM2410-S开发板上移植Windows CE详解

在博创UP-NETARM2410-S开发板上移植Windows CE详解2010-08-21 18:36一、Bootloader烧写首先将开发板与PC机连接好,包括JIAG线、串口线、交叉网线。

将开发板附带光盘中的sjf2410.exe、2410loader.bin、tocblock1和EBOOT.nb0复制到同一个目录下,这里复制到了C盘的根目录下。

在命令行下运行sjf2410.exe:1.烧写2410loader.binStep01:Step02:选择0Step03:选择0Step04:选择0,将2410loader.bin烧写到flash第0块中Step05:选择2,退出2.烧写tocblock1 Step01:Step02:选择0Step03:选择0Step04:选择1,将tocblock1烧写flash的第1块中Step05:选择2,退出3.烧写EBOOT.nb0 Step01:Step02:选择0Step03:选择0Step04:选择2,将EBOOT.nb0烧写到flash的第2块中Step05:选择2,退出二、系统镜像下载1.EBOOT参数设置将开发板上电,在超级终端下可以看到如下画面设置正确的IP地址、子网掩码(选项1)、MAC地址(选项7)、开机延迟时间(选项2);选项5设置为"LAUNCH EXISTING"(即使开发板上电后,默认启动flash中已存在的系统镜像);选项6设置为"ENABLE",这样才能将系统镜像烧写到flash中去,否则只是将镜像下载到RAM中去,开发板掉电后,即丢失了;选择W,将设置好的参数保存到flash中去;选择F,格式化flash选择9,将引导介质格式化成二进制文件系统2.PC机IP地址设置一定要PC机和开发板设置在同一个子网内3.Platform Builder设置打开Platform Builder可以新建新的工程,然后编译产生系统镜像。

WindowsCE编程的十点忠告

WindowsCE编程的十点忠告

Windows CE 编程的十点忠告最近两周我们花了大部分时间将已有的应用程序移植到Microsoft Windows CE中。

一般说来,这个计划不是太难。

我们起步于Microsoft Win32代码,当然Windows CE是基于Win32应用程序接口(API)的。

有利的是,我们的应用程序(即Raima 数据管理器)有方便的使用接口,并包含一个大约由150个子函数组成的库,这些函数都是由C语言写成,可以用来创建、管理和访问数据库。

按建立应用程序的方式来说,我们原以为将它移植到Windows CE中是一项相对简单的C语言编程练习。

然而,我们不久便遇到好些困难。

从粗心大意的错误开始,比如在基于Windows NT 的Windows CE仿真器上使用Microsoft Windows NT库,接着又违背Windows CE的编程戒律,如"千万不要给Unicode(国际标准组织10646标准)字符分配奇数内存地址"。

大约有百分之九十的问题或多或少地与Unicode有关。

尽管Unicode编程不难,但是,当给单字节字符编写代码时,很容易出错(我有过许多次错误)。

下面这些忠告是根据我们在Windows CE上编写Raima 数据管理器的经验总结出来的,但我相信,在做任何其它Windows CE程序之前,它们都值得借鉴。

毕竟大多数Windows开发者,当他们创建第一个Windows CE应用程序时,真正运用的是已掌握的Win32知识。

1. 不要在仿真器上使用Windows NT库这里所讨论的第一个错误实在太愚蠢了,但我还是陷了进去,也许你也会。

当用Microsoft VC++(5.0版)创建一个Windows CE程序时,你会发现,包含路径(include)、库路径(library)、及可执行程序路径被自动调整以匹配反应目标环境的选择。

因此,比如说为Windows CE模拟器建立应用程序时,你会发现,include路径没有指向Win32的包含文件(在VC目录下),而是指向Windows CE包含文件(在WCE目录下)。

#WindowsCE操作系统定制实验

#WindowsCE操作系统定制实验

Windows CE操作系统定制实验任务1:Windows CE平台构建一、实验目地1、学会使用Platform Builder地New Platform Wizard创建一个新地平台,添加和删除组件2、根据需要对该平台进行裁减、配置和自定义3、在模拟器上运行新建地平台二、实验步骤1、使用New Platform Wizard创建平台:(1>、打开Platform Builder(2>、选择“File”菜单中地“New Platform…”,弹出“New Platform Wizard”向导(3>、“New Platform Wizard - Step1”:选择“Next”(4>、“New Platform Wizard - Step2”:选择“EMULATOR:X86”BSP,按“Next”按钮继续(5>、“New Platform Wizard - Step3”:在“Available configurations”中选择“Mobile Handheld”,在Location中输入“D:\”,在“Platform name”中输入项目名,比如“MyPlatform”,按“Nex t”继续(6>、“New Platform Wizard - Step4”:在“Available features”中选择希望加入地应用程序,按“Next”继续(7>、“New Platform Wizard - Step5”:在“Available features”中选择感兴趣地网络协议,按“Next”继续(8>、“New Platform Wizard –Step6”:按“Next”继续(9>、“New Platform Wizard –Step7”:按“Finish”结束平台创建注意:(1>、Platform Builder会为您地平台生成必要地文件,这个过程大概需要花费几秒钟,PlatformBuilder会在状态栏地左下角显示这一过程地进度(2>、结束之后,Platform Builder会显示主界面,默认情况下,左面显示地是Workspace窗口,这里是与我们新创建地平台相关地信息,包括FeatureView,ParameterView和FileView,其中FeatureView是新平台中已经选择地Windows CE组件,ParamterView是与最后运行时映像相关地一些配置信息,FileView是用户添加地项目文件(3>、主界面右边是Catalog窗口,这里有我们可以选择地所有Windows CE地组件2、添加和删除组件(1>、展开右边地CatalogView,定位到“Catalog \ Core OS \ Display based device \ Applications– End User \ File Viewers \ Microsoft Word Viewer”(2>、在“Microsoft Word Viewer”上点鼠标右键,选择“Add to Platform”,Word查看器被添加到平台中(3>、展开左边地FeatureView,定位到“Mobile Handheld \ Applications - End User \ Help”(4>、在“Help”上点鼠标右键,选择“Delete”,帮助被从平台中删除3、配置和编译平台(1>、选择“Build”菜单地“Set Active Configuration…”项(2>、在弹出地对话框中选择“MYPLATFORM-EMULATOR:X86 Win32 (WCE Emulator>Debug”提示:Platform Builder提供了Debug和Release两种配置,两种配置都支持调试,但是Debug版本增加了更多地调试信息和更灵活地跟踪机制,包括操作系统内核和驱动程序(3>、选择“Build”菜单地“Build Platform”开始构建平台提示:(1>、根据机器硬件和选择地组件不同,构建平台大约需要10到30分钟,我们可以通过“Build”窗口来查看构建平台地进度,也可以利用这个时间来浏览一下Windows CE地帮助文件<从“Help”->“Contents”菜单)(2>、构建过程分为四个阶段:首先Sysgen阶段用来生成一些二进制组件,然后会把BSP和用户代码编译成二进制,第三步会把前两步得到地二进制文件复制到同一个目录,最后根据配置信息生成运行时映像NK.Bin(3>、构建结束后,您有可能看到类似地信息:Done!makeimg: Check for D:\MyPlatform\RelDir\EMULAT~2\PostRomImage.bat to run.makeimg: Check for D:\MyPlatform\RelDir\EMULAT~2\PostMakeImg.bat to run.MYPLATFORM - 0 error(s>, 1 warning(s>注意:(1>、Warning并不影响平台地运行,确保没有Error就可以了(2>、如果Build地过程中出现Error,一般可以从如下几个地方获得出错信息:PlatformBuilder地Output窗口,%WINCEROOT%/Build.log和%WINCEROOT%/Build.err文件4、连接,下载和运行平台(1>、选择“Target”菜单下地“Configure Remote Connection…”菜单项(2>、在新地对话框中,把“Download”和“Kernel”两项都选择为“Emulator –4.20”,然后确定,如图所示:我们也可以点击“Download”下拉菜单边上地“Configure…”按钮进行详细配置(3>、选择“Target”菜单下地“Download / Initialize”菜单项,开始下载注意:当下载成功结束后,模拟器应该自动启动,这个时候会在Platform Builder地“Debug”窗口中打出大量调试信息.然后,我们可以在模拟器中看到Windows CE地桌面.如果下载失败,请检查远程连接地配置是否正确(4>、选择“Target”菜单下地“Disconnect”菜单项,断开连接(5>、关闭模拟器,关闭Platform Builder任务2:应用程序开发一、实验目地:1、学会使用Platform Builder开发应用程序2、学会使用eMbedded Visual C++开发,调试应用程序3、学会使用Visual 开发基于.NET Compact Framework地应用程序二、实验步骤:使用Platform Builder开发应用程序1、打开Platform Builder2、选择“File”菜单下地“Open Workspace…”,然后打开实验1中创建地平台3、选择“File”菜单下地“New Project or File…”,打开“New Project or File”对话框4、在“Projects”选项页中选择“WCE Application”;在“Project Name”中输入项目地名字,例如“MyApp”5、在“New Project Wizard –step 1 of 1”中选择“A typical Hello WorldApplication”,点击“Finish”按钮注意:向导会自动帮助我们生成一个典型地Windows CE下地Hello World代码框架.我们可以选择左面Workspace窗口地FileView来查看新生成地文件.如果您熟悉Windows下地应用程序开发,可以尝试比较Windows CE下地Hello World与Windows下地Hello World地异同6、选择“Build”菜单中地“Build MyApp.exe”来编译应用程序.如果没有错误,Platform Builder会显示如下信息:MyApp.exe - 0 error(s>, 0 warning(s>7、选择“Build”菜单中地“Make Image”来重新生成NK.Bin注意:每当向映像中添加,删除文件或者改变配置后,都需要重新生成NK.Bin,在这里我们只进行了平台配置地第四步,如果给平台新添加或删除了组件,则必须从第一步Sysgen开始8、选择“Target”菜单下地“Download / Initialize”菜单项,重新运行映像9、当Windows CE地桌面显示之后,选择“Target”菜单下地“RunPrograms…”,然后从弹出地对话框中选择“MyApp.exe”,点“Run”按钮.在模拟器上,我们此时可以看到MyApp.exe已经成功地运行了10、选择“Target”菜单下地“Disconnect”菜单项,断开连接11、关闭模拟器,关闭Platform Builder三、实验小结:1、通过本次实验熟悉了Windows CE地帮助文档和基本概念,了解了应用程序开发地基础知识、“、NET”地基础知识2、这次实验先构建了Windows CE平台<使用Platform Builder地NewPlatform Wizard创建),用上次安装地PB工具来开发应用程序,实现了在模拟器上运行程序3、做实验要自己操作一遍才会学会、记住,并且要认真按步骤一步一步操作,不然改错会浪费时间,课后还应该多练习。

Windows CE虚拟内存模型实验

Windows CE虚拟内存模型实验

Windows CE虚拟内存模型实验一、实验目的:1、学会使用Platform Builder的CE Shell来观察Windows CE的虚拟内存的内存布局及使用情况2、使用Platform Builder工具来分析Windows CE的虚拟地址空间3、了解Windows CE的内存申请和分配二、实验步骤:1、使用New Platform Wizard创建并运行平台(1)、打开Platform Builder(2)、打开一个已有的平台,如果没有现存的平台,则通过New Platform Wizard创建新的平台2、使用Platform Builder的CE Shell观察CE的虚拟内存结构(1)、选择Platform Builder菜单项:Target -> CE Target Control来打开CE Shell命令行窗口,PB会显示如下窗口:(2)、输入“?”命令来获得帮助信息,输出如下:Welcome to the Windows CE Shell. Type ? for help.Windows CE>?Enter any of the following commands at the prompt:break : Breaks into the debuggers <procname> : Starts new processgi ["proc","thrd","mod","all"]* ["<pattern>"] : Get Informationproc -> Lists all processes in the systemthrd -> Lists all processes with their threadsdelta -> Lists only threads that have changes in CPU timesmod -> Lists all modules loadedall: Lists all of the abovemi ["kernel","full"] : Memory informationkernel-> Lists kernel memory detailfull -> Lists full memory maps此处略……(3)、在控制台下输入mi full来获得所有内存的dump信息,显示如下(部分有省略):Windows CE Kernel Memory Usage Tool 0.2Page size=4096, 4886 total pages, 4410 free pages. 4383 MinFree pages (2060288 MaxUsed bytes)89 pages used by kernel, 0 pages held by kernel, 476 pages consumed. Inx Size Used Max Extra Entries Name0: 424 21200 22048 848 50( 52) Thrd1: 216 10584 11232 648 49( 52) Mod2: 48 21936 22224 288 457(463) API/CStk/ClnEvt/StbEvt/Prxy/HData/KMod3: 168 129696 131376 1680 772(782) Crit/Evt/Sem/Mut/ThrdDbg4: 64 3584 3776 192 56( 59) FullRef/FSMap/ThrdTm5: 16 13296 13488 192 831(843) MemBlock6: 524 0 8908 8908 0( 17) Name7: 2048 102400 102400 0 50( 50) HlprStkTotal Used = 302696 Total Extra = 12756 Waste = 364Memory usage for Process 819b5b60: 'NK.EXE' pid 0SECURE SECTION:Slot base c2000000 Section ptr 819b2760c2000000(1): -----r----------c2010000(0): ---------------Sc2020000(0): ---------------Sc2030000(0): ---------------Sc3f00000(0): ----------------c3ff0000(0): ---------------WPage summary: code=0(0) data r/o=0 r/w=2 stack=3 reserved=315ROM DLL CODE SECTION:Slot base 02000000 Section ptr 83ffb00002010000(0): -03160000(0): -CC-------------03190000(0): -CCCC-----------031a0000(0): -CCCCCCCCCCCCCCC031b0000(0): CC--------------031c0000(0): -CCCCCCCCCCC----031d0000(0): -CCCCCCCCCCCCCC-031f0000(0): -CCCCCCCCCCCCCCC03200000(0): CCCCCCCCCCC-----03210000(0): -CCCCCCCCCCCCCCC03220000(0): C---------------03230000(0): -CC-------------03580000(0): -CC-------------03590000(0): -CCCCCCCCCCCCCCC035a0000(0): CCCCCCCCCCCCCCCC035b0000(0): CCCCCCCCCCCCCCCC035c0000(0): -RRRRRRRRRRR----035d0000(0): -CCCCCCCCCCCCCCC035e0000(0): CC-R------------038d0000(0): -CCCCCCCCCCCCCCC038e0000(0): CCCCCCCCCCCCCCCC038f0000(0): CCCCCCCCCCCC---R03900000(0): RRR-------------03910000(0): -CCCCCCCCCCCCCCC03920000(0): CCCCCCCCCCCCCCCC03930000(0): CCCCCCCCCCCCCCCC03940000(0): CCCCC-----------03960000(0): -CCCCCCCCCCCCC--03970000(0): -CCCCCCCCCCCCCCC中间部分被省略,下面是结束部分内存的dump信息:0e0c0000(0): -------------SSS0e0d0000(0): ---------------S0e0e0000(0): ---------------S0ff00000(0): ----------------0ff60000(0): --------------W-0ff70000(0): W-W-------------0ff80000(0): --------------WW0ff90000(0): W-WW------------0fff0000(0): --W------------cPage summary: code=45(1) data r/o=34 r/w=27 stack=7 reserved=367Mapped file section 0Slot base 42000000 Section ptr 83fed00042000000(0): PWWWWWWWWWWWWWWW42010000(0): WWWWWWWWWWWWWWWW42020000(0): WWWWWWWWWWWWWWWW………………………………………………43300000(0): WWWWWWWWWWWWWWWW43310000(0): W---------------Page summary: code=0(0) data r/o=0 r/w=4880 stack=0 reserved=3311Mapped file section 1Slot base 44000000 Section ptr 83fdd00044000000(0): ----------------Page summary: code=0(0) data r/o=0 r/w=0 stack=0 reserved=8192Mapped file section 2Slot base 46000000 Section ptr 83fcf00046000000(0): W---------------46100000(0): RRRRRRRRRRRRRRRR46110000(0): RRRRRRRRRRRRRRRR46120000(0): RRRRRRRRRRRRRRRR46130000(0): RRRRRRRRRRRRRRRR46140000(0): RRRRRRRRRRRRRRRR46150000(0): RRRRRRRRRRRRRRRR46160000(0): RRRRRRRRRRRRRRRR46170000(0): RRRRRRRRRRRRRRRR46180000(0): RRRRRRRRRRRRRRRR46190000(0): RRRRRRRRRRRRRRRR461a0000(0): RRRRRRRRRRR-----46200000(0): W---------------46300000(0): PPPPPPPPPPPPPPPP46310000(0): PPPPPPPPPPPPPPPP46320000(0): PPPPPPPPPPPPPPPP………………………………………………466f0000(0): PPPPPPPPPPPPPPPP46700000(0): RRRRRRRRRRRRRRRR………………………………………………471f0000(0): RRRRRRRRRRRRRRRR47200000(0): RRRRR-----------Page summary: code=0(0) data r/o=2768 r/w=2 stack=0 reserved=4398 Total R/W data + stack + RAM code = 52433、Windows CE内存结构分析说明:(1)、在输出的信息中,“--”表示此段虚拟内存空间已经被保留,但是还没有提交,任何对此部分虚拟内存的读写操作都会造成访问违例(2)、“C”表示是代码,“S”表示是栈,“W”表示有读写权限的数据,“R”表示只读数据(3)、由于在Windows CE中虚拟内存的保留是以64KB为边界的,因此图中输出的信息后面四位都是0(0xFFFF正好是64KB),图中的每一行就表示64K,但是Windows CE中对虚拟内存的提交是以页为粒度的,而在x86系统下Windows CE采用4K为一页,因此图中每个小字符代表一个页(4)、从显示内存的dump信息中看到首先打印的是内核使用内存的一些信息,包括线程,模块,内核同步对象等等,这部分对我们的影响不大(5)、接着打出的是NK.EXE的进程地址空间,从输出中我们可以看到,地址从0xC2000000开始,符合Windows CE内存体系结构的图示(6)、然后打印的是ROM DLL的信息,地址从0x0200 0000处开始,也就是Slot1,我们可以看到,Slot 1的内存内容信息只有两种构成,代码和只读的数据,正如我们所知道的,对于所有的进程,ROM DLL中的代码和只读数据是可以被所有进程共享的,他们被放在Slot 1内(7)、最后打印的是系统中所有进程的地址空间信息,我们来结合shell.exe的进程空间看一下进程内部的32MB虚拟地址空间的构造,如图:Memory usage for Process 819b5d10: 'shell.exe' pid 2Slot base 06000000 Section ptr 83fc500006000000(1): -----r----------06010000(0): -CCCCCCCCCCCCCCC06020000(0): WWW06030000(0): --------------SS06040000(0): W---------------06060000(0): ---------------06070000(0): WW07f00000(0): ----------------07ff0000(0): -------W-------cPage summary: code=16(1) data r/o=0 r/w=8 stack=2 reserved=330分析如下:①、首先第一行虚拟内存是没有使用的,这正如我们所知道的,每个进程的前64KB是用来捕捉空指针的,任何对此段内存的访问都会导致访问违例出错②、然后,从0x06010000开始的64K的地方,被程序的代码所占据③、再接下来,从0x06020000的64K是程序的可写数据区④、从0x06030000开始的地方是进程的栈,我们从这里也可以看到,进程的栈是从高地址向低地址增长的⑤、从0x06040000开始的地方应该是系统的堆了,我们用LocalAlloc申请的内存都会位于这个范围内⑥、最后两行显示了进程的最高的地址。

ce程序基址技巧

ce程序基址技巧

ce程序基址技巧【原创版3篇】篇1 目录1.CE 程序基址技巧的概念与作用2.CE 程序基址技巧的实现方法3.CE 程序基址技巧的实际应用4.CE 程序基址技巧的优缺点篇1正文CE 程序基址技巧,全称为“Windows CE 程序基址定位技巧”,是一种在 Windows CE 操作系统下,用于优化程序运行速度和内存使用效率的方法。

通过该技巧,程序员可以将程序的基址设置在操作系统分配的内存区域,从而提高程序的执行效率。

接下来,我们将详细介绍 CE 程序基址技巧的实现方法、实际应用、以及优缺点。

首先,我们来了解 CE 程序基址技巧的实现方法。

在 Windows CE 中,程序的基址通常是由操作系统在程序加载时动态分配的。

为了实现基址技巧,程序员需要通过自定义链接器脚本或修改操作系统内核来实现。

自定义链接器脚本的方法比较常见,主要是通过在链接器脚本中加入特定的选项,来指定程序的基址。

而修改操作系统内核的方法则相对复杂,需要对操作系统的内核代码进行修改,但这种方法可以实现更精确的基址控制。

接下来,我们看一下 CE 程序基址技巧的实际应用。

在实际应用中,CE 程序基址技巧主要用于以下两个方面:一是提高程序的运行速度。

通过设置合适的基址,可以使程序的指令在内存中分布得更加紧凑,从而减少程序执行时的内存访问延迟。

二是节省内存空间。

通过控制基址,可以将程序的占用空间限制在一定的范围内,从而节省系统资源。

最后,我们来分析一下 CE 程序基址技巧的优缺点。

首先,该技巧可以有效地提高程序的运行速度和内存使用效率,这对于嵌入式系统等对资源有限制的应用场景具有很大的意义。

然而,该技巧也存在一些缺点,例如实现过程较为复杂,需要对操作系统的内核代码进行修改,可能导致程序的稳定性降低。

此外,设置不当的基址可能会导致程序出现错误或异常,因此在实际应用中需要谨慎使用。

综上所述,CE 程序基址技巧是一种在 Windows CE 操作系统下,用于优化程序运行速度和内存使用效率的有效方法。

在Windows Embedded CE下进行Native C++开发,一次错误使用多线程的经验教训

在Windows Embedded CE下进行Native C++开发,一次错误使用多线程的经验教训

教训
圣诞前都忙于提交版本,编码量大增,平均2,300行,有时候上千行。

没有做设计就直接编码,由于都是做一些设备相关的开发,output就是设备的表现,没办法进行单元测试。

在做的过程中发现了一个设备挂死的问题,后来查出原因,是我误用线程导致的,面壁思过,blog下来,以此为鉴。

有问题的设计
设计很简单,4个类,一个抽象类,两个具体设备类和一个工厂类。

Client通过工厂类生成具体设备类的指针,保存到抽象类声明的指针中。

通过多态来调用各个具体的设备类的方法。

由于两个设备类都需要用到定时任务,因此,我在抽象类里面生成了一个工作线程,定期调用子类(具体设备类)的多态方法执行任务。

我在抽象类的构造函数里面生成线程,在释构函数里面发信号退出线程。

问题就在释构的地方,由于抽象类的释构比具体设备类的释构要晚,在子类(具体设
备类)已经调用完释构函数(我在子类的释构函数里面删除了对具体设备操作的指针),但是工作线程还没有停止下来,可能还在调用子类的多态方法在执行任务,程序就可能挂死了。

解决方法
建立两个protected的方法,一个用来启动工作线程,一个用来停止工作线程,子类在删除外部设备指针之前先停止工作线程,一切运行正常。

composition over inheritance
其实更好的方法是把线程处理和这个类结构解耦,不通过继承的方式来使用多线程处理,而是把线程处理类变成一个子类的一个成员,由子类来控制什么时候使用多线程。

继续面壁思过。

tbw淘宝网 taob cc霜是什么 ifiona菲奥娜水漾cc霜 槿兰红石榴cc霜 cc霜怎么样 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Win CE移植心得
WINCE是有微软推出的一款面向消费类电子市场的嵌入式操作系统,它的实时性能没有VxWorks那么强,但正是这一点使得它成为消费电子市场的新宠,现在有许多公司和研发机构都开始把注意力转移到WINCE 的开发上了了。

以下简要谈谈我前段时间在S3C2410上移植的一些经验。

1。

软硬件平台:pc要求512M内存,P4以上CPU,10G以上硬盘空间;串,并口下载线;双机互连线;JTAG 仿真器;NETARM-2410 实验箱;PLATFORMBUILER;.NET FRAMEWORK1.0;VS2005(可用EVC 或EVB);超级终端;JTAG驱动。

2。

EBOOT ,TOC,NBOOT,这三个文件由厂家提供,自己开发板子的话只能由自己来写了。

三个文件烧在FLASH的前三个BLOCK里,TOC负责保存上点后进入操作系统前的各项配置,具体可参考厂家提供的具体使用方法。

3。

使用NK.BIN,我们在后边不管做多少的工作基本就是围绕着这个NK.BIN进行的。

这个文件由PLATFORMBUILDER来生成,这个软件的使用和VC的比较相似,只要按照说明书以及一些论坛上介绍的方法进行就能生成一个镜像了,当然那可能不是我符合我们要求的,如何配置那些选项可以查阅网上的资料,在VCKBASE里付林林有个专栏就是介绍这个的。

4。

完成以上几步就可以把NK.BIN烧到FLASH中去了,需要提醒的是,之前的那3个文件是通过JTAG 烧进去的,而NK.BIN是要通过双机互连线传过去,还有可以用USB传输的,但我没试过,其实这些都很简单,因为这些的底层软件已经由厂家做好了,烧好之后你就可以看到一个比较熟悉的界面了,是不是很想WINDOWS 其实它的好多API都和PC WINDOS是通用的。

5。

开发程序,如果你只是要把哪个镜象烧进去什么也不干,那其实是没多大意思的;如果你要开发应用程序,那么开发才刚刚开始,你需要使用EVC ,EVB ,+PB;如果开发驱动程序,那么开发的程序能在这时其作用,你的工作就是成功的。

个人认为开发应用程序和在PC上没多大区别,比较有挑战的是开发驱动程序。

6。

BSP(板级支持包),这个东西是一个特殊的代码层,是WINCE和硬件平台之间的桥梁,每个平台都要有自己的BSP,也有的还分出个CSP(CPU支持包),但没很明显区别,开发这个东西对程序员的要求很高,可能小公司是不可能会去自己开发的,因为开发成本也会很高。

7。

我知道的基本介绍完了,驱动和BSP是真正有价值的部分,其他的部分,说不好听点,其实都由微软做好了,而且做得很傻瓜了,也就是说他已经把肉吃得只剩很少一点了,然后让这些组装零件的工人们去争。

其实,想到这就感叹我们自己的人为什么就开发不出自己的平台来,让外国人去争我们的残羹剩汤,是我们不够聪明吗,我想应该不是,只是我们习惯里去做那种看起来很花哨又没多大技术含量的东西,这是从那来的呢,是教育,希望我们的教育能好好的改一改,多让学生去做一些真正叫做创新的东西.。

相关文档
最新文档