首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Windows CE的SPI驱动程序设计 5

基于Windows CE的SPI驱动程序设计 5

3.3 驱动与应用程序的通信设计

       在Windows CE中,用户模式下每个进程与其他进程所占有的内存空间被虚拟内存机制隔离,进程间无法实现直接互访。在驱动程序和应用程序通信过程中,驱动程序位于device.exe的进程空间中,由于上述原因,驱动程序向应用程序发起的单向通信存在困难。通常的解决方法是在内核空间中共享同步对象,建立消息队列或者通过指针映射来完成。上述方法都无法回避进程间的数据复制过程,因而只适用于少量的数据传输。对于大量的数据或者实时性要求较高的情况,可以在虚拟地址为Ox4200 0000~0x7fff ffff的空间中建立命名的内存映射来实现内存共享,从而能够避免数据在进程空间中的复制。相关的API为CreateFileMapping和MapView()fFile。       3.4 驱动程序的封装和安装

       驱动接口函数编写完后将其接口以dll的形式导出,再编写一个简单的注册表文件,指明驱动安装的路径、前缀以及索引。至此驱动程序设计工作就完成了,将驱动及注册表添加到当前的平台中即可。

       结 语

       本文详细介绍了Platform Builder下SPI接口驱动程序设计以及驱动程序同应用程序交互的实现。驱动例程已经成功地应用于基于nRF2401的嵌入式系统无线通信当中,具有很高的参考价值。
返回列表