网盘链接: https://www.aliyundrive.com/s/ZXc5wiBhL1Y.
一、修改设备树
路径/KMP600C/kernel/arch/arm64/boot/dts/rockchip/把带rk3399的设备树文件都替换掉,一共34个(见网盘)
二、添加驱动文件
路径/KMP600C/kernel/drivers/,添加文件夹gpio_cst,Kconfig文件中添加:
source "drivers/gpio_cst/Kconfig"
Menuconfig文件中添加:
obj-$(CONFIG_GPIO_3_D6) += gpio_cst/
obj-$(CONFIG_GPIO_3_D7) += gpio_cst/
obj-$(CONFIG_GPIO_4_A0) += gpio_cst/
obj-$(CONFIG_GPIO_4_A3) += gpio_cst/
obj-$(CONFIG_GPIO_4_A4) += gpio_cst/
obj-$(CONFIG_GPIO_4_A5) += gpio_cst/
obj-$(CONFIG_GPIO_4_A6) += gpio_cst/
obj-$(CONFIG_GPIO_4_A7) += gpio_cst/
打开gpio_cst文件夹,添加驱动文件、Kconfig文件和Menuconfig文件(见网盘)。
三、修改上一级目录中的Kconfig和Makefile
四、
1.生成.config文件
路径/KMP600C/kernel/,
make menuconfig
生成.config文件。
2.编译内核、烧写程序
路径/KMP600C/
./build.sh kernel
sudo ./rkflash.sh boot
3.编译测试程序
测试程序见网盘。放到虚拟机中编译:
arm-linux-gnueabihf-gcc -static -o gpio_APP gpio_test.c
再把gpio_APP文件放到开发板中,最好放到用户目录下,别的地方好像会出错。
sudo chmod 777 gpio_APP
四、测试
./gpio_APP /dev/gpio_3_D6 1
./gpio_APP /dev/gpio_3_D6 0
用如下命令行调试:
cat /sys/kernel/debug/gpio