WinCE6.0的目录组织及PQOAL

WINCE600\PLATFORM\MAINSTONEIII\SRC WINCE600\PLATFORM\MAINSTONEIII\SRC 源代码! 立即下载

   在搭建Wince6.0完开发平台以后,我们先熟悉一下 WINCE600的目录组织和 PQOAL的相关概念。不然会像无头苍蝇一样,找不到北。我曾经在这里晕了好久。

   安装完成后, C盘的根目录下产生一个 WINCE600的目录,这里包括 WinCE6.0的源代码、 BSP和一些编译 WinCE时需要用到的工具和库文件。另外还产生一个 C:/Program Files/Microsoft Platform Builder/6.00的目录,这里主要包括 PB6.0的开发环境工具、帮助文件和其他一些开发时用到的工具。

下面我们看一下 WINCE600的目录组织。       

目录

说明

CRC

存放了一个 PB6.0安装时用到的校验文件 crc.ini

OSDesigns

用来存放 PB的工程,对应 PB5.0中的 PBWORKSPACES

OTHERS

存放了一些运行库、用于编译操作系统的二进制文件、注册表文件、批处理文件

PLATFORM

存放了和硬件平台相关的 BSP及 MCU相关的代码和其他一些文件

PRIVATE

存放了 WinCE6.0开放的源代码

PUBLIC

存放了 WinCE6.0的相关组件,这里应该是纯软件的代码和库

SDK

存放了用于编译 WinCE6.0的相关工具和 DLL文件

更详细的目录组织说明请参看 MSDN http://msdn.microsoft.com/en-us/library/aa908702.aspx 。

一般来说,在移植 BSP的过程中,我们只会修改 PLATFORM下的相关目录和文件,而其他的除 OSDesigns之外的目录,最好都不要修改,以免出错。 PLATFORM目录下除了 COMMON目录外,其他都是特定硬件平台的 BSP,而 COMMON目录中则包涵了不同体系结构的相关代码 (ARM、 X86、 MIPS、 SHX)、与平台无关的代码 (COMMON)和 SOC的相关代码( SOC),这些代码都不能直接修改,如果需要修改,应该先 CLONE出来,再做修改。

PQOAL这个概念在 WinCE5.0中就引入了,全称为 Production Quality OAL,产品级的 OAL。它的基本原则如下:

不同芯片或片上系统的代码必须分离开来;

BSP中的代码应该是组件化的并且有逻辑的组织在一起;

芯片级代码、片上系统的代码和板级支持包 (BSP)中的代码都应该是高质量的,以便于代码重用。

PQOAL并不是一个硬性的规定,你可以按照自己的想法来组织 BSP的目录及相关文件。但我还是建议尽量按照 PQOAL的原则来组织,这会给后期的调试、移植和发布带来很大的便利。这是前人成功的经验,没有理由不用。

下面就从 PQOAL的角度分析 PLATFORM的目录组织。

PLATFORM/COMMON:这里存放了所有可重用的代码。这一部分代码将在 BSP之前编译。

PLATFORM/COMMON/SRC/COMMON:这里存放了被 BSP中重用的通用代码,这一部分代码是跟硬件平台无关的。譬如一般的 IOCTL处理函数、与内核交互的公共的中断程序等等,另外还包括一下库文件,如 OAL_IOCTL.lib、 oal_intr.lib、 oal_log.lib、 kitl_log.lib等等。这一部分代码由微软提供,一般不能修改。

PLATFROM/COMMON/SRC/<CPU>: CPU表示 MCU的不同体系结构,如 ARM、 MIPS、 SH和 X86。这些目录分别存放了各体系结构的 MCU的相关代码,如 CACHE相关代码、物理地址和虚拟地址转换的代码等等。这部分代码只针对 MCU的内核,不涉及具体的芯片。这一部分代码也由微软提供,不建议修改。

PLATFORM/COMMON/SRC/SOC:该目录下存放了不同的 MCU对应的代码,跟 BSP对应,这里可看做是 CSP(CHIPSET SUPPORT PACKAGE)。这一部分的代码一般来说不能直接修改,如果需要移植类似平台的 BSP,应该复制一个,重命名后再做修改。这里的目录和其中链接后的库文件的命名也遵循一定的规则 (芯片名称 _厂商名称 _版本号 )。这里需要注意的是 SOC目录下 dirs文件需要包括体系结构的说明,如 PLATFORM/COMMON/SRC/SOC/PXA27X_MS_V1中的 dirs文件以 DIRS_ARM= /打头。这与 BSP中的一般的 DIRS文件不同。我在移植 BSP的时候,并没有在这里做任何修改,只是将其中相关的文件拷贝到我自己的 BSP目录下,这样方便 BSP的发布。

PLATFORM/BSPName:这里存放了跟开发板对应的相关代码。在编译 WinCE操作系统时,它在 /PLATFORM/COMMON的目录之后编译。我们在针对一款新的硬件平台移植 WinCE6.0时就是在这里做相应的添加和修改。

WinCE6.0中 BSP的目录组织如下:

目录

说明

CATALOG

存放 BSP的 CATALOG file

CESYSGEN

编译的过程中, bib和 reg文件将被拷贝到这

FILES

存放 BSP的 bib、 reg、 dat等配置文件和无须编译的二进制文件

SRC

存放 BSP的所有源代码

SRC/BOOTLOADER

存放 BOOTLOADER的源代码

SRC/COMMON

存放共享代码,链接后的库可被 BOOTLOADER、 OAL和驱动使用

SRC/DRIVERS

存放设备驱动的代码

SRC/INC

存放相关头文件

SRC/KITL

存放 KITL的相关代码

SRC/OAL/OALEXE

链接 OAL.lib和其他一些库,生成 OAL.exe

SRC/OAL/OALLIB

存放 OAL的源代码,编译生成 OAL.lib

本文分析了 WINCE600的目录组织,并从 PQOAL的角度分析了 PLATFORM目录。 文中如有疏漏,请您指正!谢谢。

wince600_arm 需要的下载使用了,这个资源可以供大家对这个软件进行开发了。 立即下载

相关推荐

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 671

关于Wince600作主设备的RNDIS

Wince600 RNDIS Wince600 USB OTG作主设备通过RNDIS构建网络

cmc9527的博客 921

LLC谐振变换器中的软开关艺术:ZVS与ZCS的协同设计

本文深入解析了LLC谐振变换器如何通过巧妙的电路设计,协同实现零电压开关(ZVS)与零电流开关(ZCS),从而大幅降低开关损耗与电磁干扰,提升电源效率。文章结合设计实战,详细阐述了谐振参数计算、器件选型及调试避坑指南,为高效、高功率密度电源设计提供了核心思路与解决方案。

weixin_29216957的博客 349

Wince 6.0 device关联调查

1、C:\WINCE600\PLATFORM\SBC8530\SRC\DRIVERS\usbmsfn

luliyuan的专栏 1062

Ollama模型路径迁移实战:Windows/Mac/Linux三系统保姆级教程(附常见问题排查)

本文提供了一份详细的Ollama模型路径迁移教程,涵盖Windows、macOS和Linux三大操作系统。针对默认安装路径占用系统盘空间的问题,文章指导用户如何安全移动模型文件、配置环境变量、重启服务,并附有迁移后的验证步骤与常见问题排查方法,帮助用户高效管理本地AI模型存储。

gray5的博客 542

【全解析 | PTA】浙大版《Python 程序设计》题目集-第一章

Python浙大版PTA题解

wzhh_的博客 5526

WINCE600的目录组织及PQOAL

     在介绍S3C2410的WinCE6.0移植之前,我们先熟悉一下WINCE600的目录组织和PQOAL的相关概念。        这里简单说一下WinCE6.0开发环境的搭建。WinCE6.0的开发环境是Platform Builder6.0,但与Platform Builder 5.0不同的是,它作为VS2005的一个插件来用。所以,我们需要先安装VS2005,并且安装相应的SP1。P...

weixin_34023982的博客 152

图像质量评估:使用 SSIM 计算图像相似性

在图像处理领域,衡量两幅图像之间相似性的一种常见方法是使用结构相似性指数(SSIM)。SSIM 是一种全参考的图像质量评估指标,它不仅考虑了图像的亮度、对比度,还考虑了结构信息。在本文中,我们将介绍一个使用 Python 和 OpenCV 实现的 SSIM 计算脚本,并使用该脚本评估两幅图像的相似性。

hasque2019的博客 1153

Wince6.0 目录结构

参考:《Windows CE 内核定制与驱动程序开发》 1. CRC:包含一个文件CRC.ini,它提供了Platform Builder安装文件的信息 2. Others:包含了一些运行时的库文件,二进制文件,注册表文件和批处理文件 ATL8:包含ATL的源码文件,如果定制内核时选择了ATL组件,则把相应的文件添加到内核映像中去 DOTNETV2: DOTNETV35:.NET 处理器

KylinShui 1975

Lucene学习总结之二:Lucene的总体架构

Lucene总的来说是: 一个高效的,可扩展的,全文检索库。 全部用Java实现,无须配置。 仅支持纯文本文件的索引(Indexing)和搜索(Search)。 不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。 在Lucene in action中,Lucene 的构架和过程如下图, 说明Lucene是有索引和搜索的两个过程,包

forfuture1978的专栏 1万+

模拟IC版图DRC实战:手把手教你搞定MIM电容天线错误和ESD.10g违例

本文深入解析模拟IC版图中的MIM电容天线错误和ESD.10g违例问题,提供从错误解码到实战修复的完整指南。通过电路图修改、版图优化和验证闭环等步骤,帮助工程师高效解决DRC错误,特别适用于ADC等精密模拟电路设计。文章还分享了高级排错技巧和预防性设计策略,大幅提升流片成功率。

weixin_27697385的博客 295

WinCE 6.0学习笔记一

本文转载自:http://www.cnblogs.com/we-hjb/archive/2008/10/25/1319601.html 在介绍S3C2410的WinCE6.0移植之前,我们先熟悉一下WINCE600的目录组织和PQOAL的相关概念。 这里简单说一下WinCE6.0开发环境的搭建。WinCE6.0的开发环境是Platform Builder6.0,但与Platfo...

weixin_30437337的博客 162

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

WinCE6.0下目录结构及配置文件汇总----目录结构

WinCE的项目开发,必须充分利用微软提供的资源,包括库的源码和一些例子,所以得熟悉WinCE6.0下的目录组织结构和一些配置文件的功能。这里做个汇总,以备日后查询。里面用到了很多网络资料,如有侵权,请联系本人,及时修改。     一、目录结构        在系统定制的时候会选择很多组件,其中一些组件的相关信息就在该文件夹中,其二进制代码可能被包含到最终的操作系统镜像中。一般开发者不需要变动

lenmon_22的专栏 1907

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCE代码的目录组织

WINCE根目录下通常有如下几个目录:Public , SDK , Platform , Private 和 PBWorkspaces。Public目录:_PUBLICROOT环境变量标识Public目录CEBASE:微软提供的一些设计模板,头文件及批处理文件,用来构建内核映像时使用。Common:微软提供的与平台无关的通用模块,包括驱动程序,构建用的批处理与一些组件。

朱铭雷的日记本 1702

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WinCE OAL中的中断处理

作者:ARM-WinCE 关于WinCE的中断处理,OAL中主要是实现了ISR部分,一般IST会在设备驱动中实现。推荐一篇WinCE的中断架构的文章,如下:http://msdn.microsoft.com/zh-cn/library/ms836807.aspx 建议对WinCE中断不了解的朋友,可以先看看这片文章。架构如图:  这张图想必很多人都见过,主要

唐勉的ARM/Linux/WinCE专栏 5330

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

5.0移植到6.0

参考:http://topic.csdn.net/u/20090202/16/D6E58288-E056-408F-B162-89CD9586C27B.htmlhttp://topic.csdn.net/u/20090417/13/e021bf63-a070-4c65-bedd-18b39a73aefc.html首先向大家问声新年好! 最近老板让我把2410上的winc

xilidecai的专栏 1994

B2、WINCE6.0内核的启动过程----------之OAL解释

[移植OAL] WinCE6.0的内核启动过程: OAL不能调用内核的KernelStart()函数了, 所以自己要实现一个KernelStart() (nkldr.lib替我们完成了这个, 把nkldr.lib链接到OAL),调用nkldr.lib中的KernelStart().然后执行的ARMInit()函数有一个很重要的任务,它将位于OAL的OEMinitGlobals()函数指针

嵌入式软件研发的专栏 857

wince 移植

最近在一款ARM11的开发板上移植WinCE6.0,碰到了一些问题,也收获了一些经验。虽然ARM+WinCE的开发已经做过一段时间了,但开始用一款新的MCU时,总会碰到这样那样的问题。 首先是DataSheet,看惯了三星的文档,总觉得DataSheet就该那么写,条理清晰,方

feihuxiaozi的专栏 2315

wince-开始之路

<br />最近要搞一个项目,本人有参与而且任务繁重。 呵呵, 顺便学习一下。 <br />//192.168.3.59/internet-srv/wince/wince<br /> <br />1. 安装 dotNetFramework 1.1 , 因为安装wince v5.0时需要 , 最好直接安装Visual Studio 2003<br />2. 安装wince v5.0 <br />3. 打上历史各项补丁 (http://www.microsoft.com/downloads 找)<br />4.

634
上一篇: Wince 6 开发安装步骤
下一篇: wince中解析reg和bib文件的不同之处(转)
dadahacker
博客等级 码龄20年 78粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值