这个实验不用自己编写代码。
1、在linux源代码中,打开 stm32mp15-pinctrl.dtsi 文件并进行修改:
make uImage LOADADDR=0XC2000040 -j8 //编译内核
然后:
2、修改设备节点,打开 stm32mp157d-atk.dts:
其中:
compatible = “gpio-leds”;compatible一定要是gpio-leds,因为在开发板内部已经定好了驱动的compatible的值,所以这样!
两个灯是默认关闭。
PI0和PF3。LED0和LED1。
执行:
make dtbs
3、运行测试
这个是正点原子的文档:
下面进行测试自己的内核:
echo 1 > /sys/class/leds/red/brightness //打开 LED0echo 1 > /sys/class/leds/green/brightness //打开 LED1echo 0 > /sys/class/leds/red/brightness //关闭 LED0echo 0 > /sys/class/leds/green/brightness //关闭 LED1
结果可以看出,红灯和绿灯都可以亮!
4、修改灯的状态需求
回顾上一章的知识:
修改设备树的节点信息:
可以看出已经把红灯LED0改为系统运行指示灯(默认开着),绿灯LED1改为默认关着。
效果测试,果然红灯,系统运行正常的话这个 LED0指示灯就会一闪一闪的。
作为系统心跳指示灯,表示系统正在运行。