这个实验不用自己编写代码。
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指示灯就会一闪一闪的。
作为系统心跳指示灯,表示系统正在运行。
