关 闭

新闻中心

EEPW首页>工控自动化>设计应用> Windows CE6.0的DM9000A流接口驱动开发

Windows CE6.0的DM9000A流接口驱动开发

作者: 时间:2012-05-23 来源:网络 收藏

发送函数dm9000_send(pInBuf,nInBufSize)获取流接口函数传入的发送数据指针和相应数据长度,然后驱动DM发送数据,其工作流程如图4所示。

g.JPG

4CE 6.0系统下流驱动程序的使用

4.1 流驱动程序的加载

流接口驱动程序需要按一定的方式配置后才能被系统识别并编译。其配置的主要流程如图5所示。

h.JPG

将流驱动程序加入定制系统之后还需要添加相应的注册表启动信息,在platform.reg文件中添加以下内容:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\DM9]

“Index”=dword:1

“Order”=dword:30

“Prefix”=“DM9”

“DLL”=“DM9.dll”

为使生成的DLL文件能够被包括在烧写文件中并下载到开发板上,还需在platform.bib文件中加入相应代码,内容如下:

IF BSP_NODM91

DM9.dll $(FLATRELEASEDIR)\DM9.dll NK SHK

ENDIF BSP_NODM9 !

经过以上的配置之后,流接口驱动程序已经配置完成,只需要对CE 6.0的系统定制工程重新编译,并将生成的镜像文件下载到开发板上,即可通过文件API操作DM的数据收发。

4.2 应用程序对流驱动程序的调用

CE启动时会自动枚举注册表HKEY_LOCAL_MACHINE\Drivers\BuiltIn目录下的驱动信息,并加载相应驱动程序的动态链接库,然后执行初始化接口函数——DM9_Init()。在驱动程序成功加载之后,应用程序对硬件的操作就只需调用文件API便可实现,但前提是相应的操作必须在驱动程序中有定义,并且分配了操作码。对于DM的数据发送,其文件API代码如下:

……

hDm9=CreateFile(TEXT(“DM91:”),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

该代码调用文件API打开设备进行读写操作,得到文件操作的句柄名hDm9。

DeviceIoControl(hDm9,DM9_SendFrame,&SendData,sizeof(SendData),NULL,0,&dwReturn,Null);

……

该代码调用文件API对设备发送操作命令。其中,hDm9告诉系统要操作的设备为DM9000A;DM9 SendFrame为发送数据的操作码,这必须与驱动程序中定义的相一致,也就是让系统知道进行的是什么操作;&SendData为发送的数据帧首地址;sizeof(SendData)为发送数据的长度……



关键词:Windows9000ACE6

评论


相关推荐

技术专区

关闭