3733|5

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

驱动开发 怎么把文件加载成dll [复制链接]

我用的是PB4.2,照书上编写了一个简单的,与硬件条件无关的流接口驱动程序.
其中有驱动程序源代码文件SimpleDriver.c,该文件包含了实现流接口函数的具体代码。
驱动程序头文件SimpleDriver.h,该文件为SimpleDriver.c的头文件。
动态库导出文件SimpleDriver.def,该文件定义了需要导出的函数名称。
makefile文件。文件名固定为makefile,该文件指出了驱动程序的编译和链接方法。
链接和编译文件。文件名固定为sources,该文件用于设置链接器和编译器。
得到的这几个文件之后不知道怎么把它们集成dll文件.
请大家帮帮忙。
还有就是我想装PB5.0,卸载PB4.2的时候要注意什么,还有要不要卸EVC4.0。

最新回复

PB4.2没有用过,只是它的工程文件夹不是在那里的,不过我想把DLL文件加入到里面是一样的。  详情 回复 发表于 2008-8-19 10:15
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
(1) 更改BSP工程文件,添加GPIO驱动的选项:

       在BSP目录下面的”CATALOG”文件夹下面找到”BspName.pbcxml”并用记事本打开,然后添加GPIO驱动的选项,首先找到并在里面添加下面一行:

           Item:Cirrus Logic:bsp_ep94xx_gpio_ep9407_EP94xx

       然后在< CatalogFile >…中添加下面的驱动描述:

      

           GPIO

           GPIO Driver

           BspSpecific

           BSP_EP94XX_GPIO

           Device Drivers

           

                 $(_WINCEROOT)\PLATFORM\EP94XX\SRC\DRIVERS\gpio

                 $(_WINCEROOT)\PLATFORM\EP94XX\SRC\DRIVERS\gpio

           


      


       上面实际上添加了GPIO驱动,环境变量为BSP_EP94XX_GPIO,源代码位于路径”\Platform\EP94XX\SRC\DRIVERS\gpio”下面。



(2) 创建GPIO驱动文件夹并更改dir文件:

       进入”\Platform\EP94XX\SRC\DRIVERS\”目录,创建一个名为”gpio”的文件夹,这个文件夹包含GPIO驱动。然后打开dirs文件,在末尾添加”gpio”。



(3) 开发GPIO驱动:

       进入”\Platform\EP94XX\SRC\Drivers\gpio”并创建gpio.c文件,在文件中封装相应的流设备接口函数,如下:

                                   GPI_Init(..)

                                   GPI_DeInit(..)

                                   GPI_Read(..)

                                   GPI_Write(..)

                                   …

       可以在GPI_Read函数中读取GPIO的状态,在GPI_Write函数中设置GPIO的状态,当然也可以通过GPI_IoControl函数来实现。

       然后在该路径下面创建makefile文件,并在里面包含下面一行就可以了:

              !INCLUDE $(_MAKEENVROOT)\makefile.def

       接下来创建模块导出文件gpio.def,具体内容如下:

              LIBRARY     GPIO_LIB

EXPORTS

                  DllEntry

                  GPI_Init

                  GPI_Deinit

                  GPI_Open

                  GPI_Close

                  GPI_Read

                  GPI_Write

                  GPI_Seek

                  GPI_IOControl

                  GPI_PowerDown

                  GPI_PowerUp

       最后创建用于编译的sources文件,具体内容如下:

       !ifndef BSP_EP94XX_GPIO

SKIPBUILD=1

!endif



TARGETNAME=gpio

RELEASETYPE=PLATFORM

TARGETTYPE=DYNLINK

TARGETLIBS= \

               $(_SYSGENSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib



DLLENTRY=DllEntry

SOURCES= gpio.c



(4) 添加GPIO驱动的注册表配置:

       打开”\PLATFORM\EP94XX\files\”目录下的platform.reg文件,添加下面的配置:

      IF BSP_EP94XX_GPIO

            ; Add these entries to your registry to enable the gpio device

            [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIO]

            prefix"="GPI"

            "Dll"="gpio.dll"

            "Order"=dword:1

            ENDIF



(5) 添加驱动模块到NK中

       打开”\PLATFORM\EP94XX\files\”目录下的platform.bib文件,添加如下内容:

            IF BSP_EP94XX_GPIO

                gpio.dll  $(_FLATRELEASEDIR)\gpio.dll                  NK SHK

            ENDIF





       应该就这些了。上面的例子是我在项目中实际做过的,当时有个客户想通过应用程序直接操作GPIO,所以我就给他们写了这个驱动。只要具备一些WinCE的BSP的基础知识,看懂上面的内容应该很简单。由于是我做过的项目,所以上面的一些路径,名称等设置都是基于我所使用的BSP的,仅供大家参考。

http://blog.eeworld.net/nanjianhui/archive/2008/07/18/2674753.aspx
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢哦 你还真厉害就两个角了
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
我用的是PB4.2,就是第一步没看懂
更改BSP工程文件,添加GPIO驱动的选项:

      在BSP目录下面的”CATALOG”文件夹下面找到”BspName.pbcxml”并用记事本打开,然后添加GPIO驱动的选项,首先找到 并在里面添加下面一行:
我好像没有BSP工程文件,找不到CATALOG文件夹。我的PB的Workspace下是空的没有文件。有的弄晕了,这是不是PB4.2本身建立完工程Workspace就是空的。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
没用过4.2,晕
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 chensike 的回复:
我用的是PB4.2,就是第一步没看懂
更改BSP工程文件,添加GPIO驱动的选项:

      在BSP目录下面的”CATALOG”文件夹下面找到”BspName.pbcxml”并用记事本打开,然后添加GPIO驱动的选项,首先找到 并在里面添加下面一行:
我好像没有BSP工程文件,找不到CATALOG文件夹。我的PB的Workspace下是空的没有文件。有的弄晕了,这是不是PB4.2本身建立完工程Workspace就是空的。


PB4.2没有用过,只是它的工程文件夹不是在那里的,不过我想把DLL文件加入到里面是一样的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表