新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Windows CE的SPI接口驱动程序设计

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

作者: 时间:2010-08-13 来源:网络 收藏











需要说明的是,在本程序中使用了DDK中MmMapIoSpace库函数,故另需在头文件中添加#include和#pragma comment(lib,ceddk.lib)。至此,g_Reg在其他的实现函数中就可以调用,直接读写其指向的寄存器的代码即可完成相关的操作。还需要实现的函数有:_Deinit、_Read、SPI_write、SPI_Seek、SPI_Open、SPI_Close、SPI_IOCntrol。限于篇幅,本文仅给出初始化的代码。

3.3 与应用程序的通信设计

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

3.4 驱动程序的封装和安装

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

结 语

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

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭