##通过修改board.DTS,利用platform_device匹配其设备树下的节点实现操控对应的gpio
board.dts路径
1.首先在board.dts文件内的&soc结构体设置自己要控制的gpio相关信息
编写规则解析:
gzj_led:设备树节点名,当设备树烧录到开发板内会可以在/sys/devices/platform/soc@3000000路径下看到
compatible:设置的“led_test”名称是为了在驱动代码中用到,是为了将平台设备与dts进行按照名称匹配
gpio-pins = <&pio PG 10 GPIO_ACTIVE_LOW>;
设置pin引脚号及其功能
status = "okay";
打开本gpio引脚,相当于使能
注意:本设备树节点使用的gpio是PG10,因此在该board.dts中其它节点使用PG10的必须将其状态设置为disabled
以上步骤就配置好了一个简单的dts节点
2.将配置好的设备树烧录到开发板
在烧录之前,需要先将sdk文件进行编译(其中就包含了设备树的编译(具体看个人的makefile))
编译步骤:
1.回到家目录(android)中,执行source ./build/envsetup.sh
2.make -j8
3.打包 pack
之后等待完成会在android/longan/out/t527_android13_demo_uart0.img看到这样的文件,表示成功
烧录到开发板步骤:
1.运行usbdriver驱动为了使用usb转ttl进行烧写固件
2.利用PhoenixSuit V2.01文件里的里的工具里的PhoenixSuit软件进行烧录即可
3.插入usb之前一直按着fel按键,进行usb烧录,然后设备上电,松手即可进行烧录
至此已经将新的设备树烧录到开发板中了
3.编写驱动文件,将驱动文件烧录到开发板(代码水平较差,轻点喷)
编写完驱动代码在longan目录下./build.sh编译文件生产.ko文件
推送.ko文件到开发板中
加载驱动文件 insmod ***.ko
4.通过应用层代码来检验是否成功
注意:这段代码要使用交叉编译进行编译,编译后生产的文件就可以推送到开发板中了
推送到开发板要注意,修改其文件的权限,因为没有执行权限,./***运行即可进行验证