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

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

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

WinCE4.2版本支持最大中断数为32,WinCE5.0版支持最大中断数为64。
②在OAL实现文件cfw.c中,添加中断初始化和禁止中断实现代码。
③在中断处理实现文件armint.c的OEMInterruptHandler函数中添加ISR程序代码,返回逻辑中断号。代码如下:


3.2 流式驱动的实现
驱动被加载后需要完成设备的初始化工作,包括地址空间申请和映射、全局变量的初始化、IST的加载等。初始化的代码简化如下:




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

(编者注:源代码见本刊网站www.mesnet.com.cn。)

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

在Windows CE中,用户模式下每个进程与其他进程所占有的内存空间被虚拟内存机制隔离,进程间无法实现直接互访。在驱动程序和应用程序通信过程中,驱动程序位于device.exe的进程空间中,
返回列表