2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动)

开发环境: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.o

4.在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

运行结果:

2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动)_第1张图片

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

2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动)_第2张图片

卸载内核模块:

rmmod gpio

实现GPIO内核驱动模块的控制功能。

你可能感兴趣的:(内核驱动)