开发环境:VM+Ubuntu
编译环境:linux3.4
交叉编译工具:arm-linux-gcc 4.4.3
GPIO内核驱动程序链接:https://download.csdn.net/download/ddffyhg/11022291
用户应用程序链接:https://download.csdn.net/download/ddffyhg/11022286
注意:开发板的linux的版本和pc端Ubuntu的版本可以不一致,但是得与编译驱动的linux内核版本一致
开发板:linux 3.4
![]()
pc端下载的linux内核:/home/linux/Documents/lichee/linux3.4
![]()
1.物理连接如下:
硬件平台使用的是nanopi-m1,GPIO输出引脚对应的物理引脚是pin7
LED灯正极---------->PIN7(linux 213引脚)
LED灯负极---------->GND
2.在PC端lichee/linux3.4/drivers/char/目录下放置gpio的驱动文件gpio.c
3.修改Makefile文件,在文件末尾添加
obj-m += gpio.o4.在lichee目录下重新编译内核
./build.sh -p sun8iw7p1 -b nanopi-h3 -m kernel编译成功后,在lichee/linux3.4/drivers/char/目录下会生成gpio.ko文件
![]()
5.将gpio.ko文件拷贝至开发板

gpio.ko文件为编译通过的驱动文件,app.c文件为对应的用户应用程序。
6.挂载内核模块:
insmod gpio.ko查看内核模块列表:
lsmod查看是否有设备节点:
ls /dev/gpio*编译应用程序:
gcc -o app app.c执行应用程序:
./app运行结果:

由于手头没有LED灯,使用传感器的电源指示灯代替:

卸载内核模块:
rmmod gpio实现GPIO内核驱动模块的控制功能。
版权声明:本文为ddffyhg原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。