platform.reg中添加如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIODriver]
"Prefix"="GIO"
"Index"=dword:1
"Dll"="GPIODriver.dll"
platform.bib中添加如下:
IF BSP_NOGPIODRIVER !
GPIODriver.dll $(_FLATRELEASEDIR)\GPIODriver.dll NK SHK
ENDIF ;
配置GPGCON寄存器:
如:
v_pIOPregs->GPGCON = (v_pIOPregs->GPGCON & ~(3 << 0)) | (1<< 0);
。。。
v_pIOPregs->GPGUDP = (v_pIOPregs->GPGUDP & 0x0); // 00=PULL-UP/DOWN DISABLE
v_pIOPregs->GPGDAT=v_pIOPregs->GPGDAT & ~(0x1<<0);
配置好输入输出口,选择是否使能等。由IOControl控制输出高低。
主要由这些函数完成。
GIO_Close
GIO_Deinit
GIO_Init
GIO_IOControl
GIO_Open
GIO_PowerDown
GIO_PowerUp
GIO_Read
GIO_Seek
GIO_Write
接下来,应用程序验证:
首先定义个句柄:
HANDLE gpiodriver; //设备文件句柄
然后由如下两语句实现控制IO口,输出高低:
DeviceIoControl(gpiodriver,IO_CTL_GPIO_1_HIGH, NULL,0,NULL,0,NULL,NULL);
DeviceIoControl(gpiodriver,IO_CTL_GPIO_1_LOW, NULL,0,NULL,0,NULL,NULL);