WinCE驱动开发基础

WinCE中的进程(process)是程序的一次动态执行实例(instance)。进程不参与系统调度,没有优先级和上下文。每个进程在创建时都会创建一个主线程作为其默认的执行体。

真正参加系统调度的是线程。

WinCE提供了互斥Mutex,事件Event,信号量Semaphore 3种内核机制来实现多线程间的同步。

WinCE还为用户态线程提供了两种同步方法:临界区段(Critical section)和互锁函数(interlocked function),这两种方法不能跨进程使用,但效率很高。

WinCE提供 的进程间的通信方式有剪贴板(clipboard),COM/DCOM,网络套接字(socket),文件映射(File mapping)及点对点消息队列(point to point message queues)等。其中,文件映射和点对点消息队列最为常用。文件映射在进程的共享虚拟空间保留一个区域,将文件所在的物理地址映射到该区域,这样通过读/写虚拟内存就能实现对文件的操作。

WinCE采用层次化的结构进行内存管理,从上到下依次为物理内存、虚拟内存、逻辑内存和C/C++语言运行库。

逻辑内存分为堆和栈两种,用于程序代码中的动态和静态内存分配;堆是进程中一块连续的虚拟内存地址空间,应用程序可以在其上动态的进行内存的申请和释放,每次堆上内存的申请量为4B或8b;栈用于进程中的函数调用等,栈从高地址到地地址增长。

应用程序的发布涉及代码签名和代码打包两个方面。代码签名是出于信息安全的考虑,经过了代码签名才能使运行的WinCE不受功能性限制;代码打包即把应用程序制作成便于在WinCE下执行的.CAB文件,她需要一个描述安装包的.INF文件,可以使用的打包工具软件是CabWiz.exe 。

WinCE定制的一半设计流程:

1. 得到并安装于开发板相对应的BSP。

2.定制WinCE操作系统。根据具体的应用需求,选择合适的os组件,并且构建运行时映像。os的配置分为两大类:HLBASE 没有图形界面、IABASE有图形界面。统称为CEBASE。

WinCE运行时映像有以bin和nb0为扩展名的两种格式。bin是WinCE默认的映像格式,她按段组织文件内容,该文件不能直接执行,必须按一定格式解开到内存中才能执行;nbx文件可下载到闪存中,并可从山村中本地执行XIP(execute in place)。

3.把运行时映像下载到开发板上进行调试。

4.发布操作系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值