标题:
WinCE流设备驱动简介及GPIO驱动的实现 02
[打印本页]
作者:
samwalton
时间:
2014-2-23 11:15
标题:
WinCE流设备驱动简介及GPIO驱动的实现 02
在BSP目录下面的”CATALOG”文件夹下面找到”BspName.pbcxml”并用记事本打开,然后添加GPIO驱动的选项,首先找到<BSP>…</BSP>并在里面添加下面一行:
<BspItemId>Item:Cirrus Logic:bsp_ep94xx_gpio_ep9407_EP94xx</BspItemId>
然后在< CatalogFile >…</CatalogFile>中添加下面的驱动描述:
<Item Id="Item:Cirrus Logic:bsp_ep94xx_gpio_ep9407_EP94xx">
<Title>GPIO</Title>
<Description>GPIO Driver</Description>
<Type>BspSpecific</Type>
<Variable>BSP_EP94XX_GPIO</Variable>
<Location>Device Drivers</Location>
<SourceCode>
<Title>$(_WINCEROOT)\PLATFORM\EP94XX\SRC\DRIVERS\gpio</Title>
<Path>$(_WINCEROOT)\PLATFORM\EP94XX\SRC\DRIVERS\gpio</Path>
</SourceCode>
</Item>
上面实际上添加了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驱动的注册表配置:
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0