

ubuntu 18.04 x86_64
gcc 7.5.0
kernel:4.18.0-15

ѹ6ļ
Makefile :makefile ļ
readme.txt ˵ļ
sio_gpio.c gpiowatchdogļ
sio_gpio.h : gpiowatchdogͷļ
testgpio.c : gpio֤
wdtdemo.c  watchdogŹ֤


ʹã

Ҫ
Ӧõ漰ҪϢעFAEȡõֵԸǲõӦϣܻ쳣
C57-L4 linux_GPIOΪ
#define IO_INDEX                   0x2E
#define DEFAULT_DUALIO             0
#define SIO_DID                    0x8786
u8 gpio_pin[8] = {81,52,80,51,23,37,10,36};
#define WDT_RST_TYPE               WDT_PWROK
ϲ󣬰²֤


1.
make

2.޴󣬻Ŀ¼sio_gpio.koļҪrootȨޣ
insmod sio_gpio.ko

3.鿴豸Ϣ"hzx_gpio"(dmesgӡϵͳ˿ڵַϢ)
ls /dev/

4.ķȨޣԱͨûԷ豸
chmod a+rw /dev/hzx_gpio
chmod a+rw /dev/hzx_wdt

5.Գ
gcc -o testgpio testgpio.c
gcc -o wdtdemo wdtdemo.c

ڲԳĲ˵:
(1).-a 趨ȫ˿ڣ -s 
(2).-p 趨Ķ˿ڣ -s 
(3).-s ö˿ڵֵߵ͵ƽֵΪ01
(4).-g ѯ˿״̬עʱ޷˿״̬


趨ȫ˿͵ƽ
./testgpio -a -s 0

趨ȫ˿ߵƽ
./testgpio -a -s 1

趨2ߵƽ
./testgpio -p 2 -s 1

趨4ߵƽ
./testgpio -p 4 -s 1

趨2͵ƽ
./testgpio -p 2 -s 0

趨4͵ƽ
./testgpio -p 4 -s 0

ѯ˿ƽ״̬(ʱԳ޷ܸŵƽ޸ĲԳʵй)
./testgpio -g

˵:
ĿǰʵͨioctlĲûʵwrite ,readlseekҲδʵ֣Ҫʹwrite,read ,lseekͻиʵʹǡ


sio_gpio.hͷļ˵
#define SET_GPIO_LOWLEVEL                  //˿͵ƽ
#define SET_GPIO_HIGHLEVEL                 //˿ߵƽ
#define GET_GPIO_LEVEL                     //ȡ˿ƽߵ״̬1Ϊߵƽ0Ϊ͵ƽ

ʹ÷ʽοtestgpio.cset_portget_port
Գձ׼ļдʵ֣open->ioctl->close    ע⣺δʵread,write,lseekʹЩ׼C⺯ʣioctl
