嵌入式开发记录-day40 在设备树中增加设备节点

1、设备节点查询

  查询设备树上的设备节点:启动开发板后,在 /proc/device-tree下,这里有节点,表明有节点

  查询平台文件下的设备节点:在/sys/devices/platform/目录下有所有设备node的信息,--这里有表明设备注册了

  ##  有设备注册,最后驱动才能进入probe

2、在设备树根节点下增加节点 vim /arch/arm/boot/dts/exynos4412-itop-elite.dts

leds_test_node:leds_test_node {
                compatible = "leds_test";  // 根据这个节点会不会进入probe里面
                status = "disabled";   // 在/proc/device-tree目录下有设备信息,在platform下没有信息
        //         status = "okay";
        };
// 根节点之后 &adc之前增加   几点说明 
&leds_test_node {  // 引用前面某一个节点的属性,并在这里修改属性、状态;
      status = "okay";
};

  编译设备树 ./build_kernel.sh,生成设备树镜像目录在 arch/arm/boot/dts/exynos4412-itop-elite.dtb,并烧写

3、查询命令:

  1、查询设备树根节点的compatible属性 cat /proc/device-tree/compatible  ---> topeet,itop4412-elitesamsung,exynos4412samsung,exynos4

  ls /proc/device_tree   查看所有节点

  查看leds_test_node的compatible属性:cat /proc/device-tree/leds_test_node/compatible   --->leds_test_node

     cat /proc/device-tree/leds_test_node/status  ---》okay     

    cat /sys/devices/platform/leds_test_node/of_node/compatible   --->   leds_test // 可以查询到这个属性,所以驱动可以进入到probe中,当然其他的属性也可以查到

  cat /sys/devices/platform/leds_test_node/of_node/name   ---> leds_test_node

4、设备树下节点leds_test_node驱动测试  可以进入probe

  [root@iTOP-4412]# mkdir /lib/modules    // 发现卸载模块的时候没有 无法卸载,缺少文件夹,建立文件夹
  [root@iTOP-4412]# rmmod itop4412_register_dev_drv
  rmmod: can't change directory to '4.14.2': No such file or directory
  [root@iTOP-4412]# mkdir /lib/modules/4.14.2
  [root@iTOP-4412]# rmmod itop4412_register_dev_drv
  [ 221.804041] Goodbye, curel world
  [ 221.806230] Goodbye, curel world, this is remove
  [root@iTOP-4412]# insmod itop4412_register_dev_drv.ko
  [ 229.532540] Hello, world
  [ 229.533953] probe init
  [root@iTOP-4412]# rmmod itop4412_register_dev_drv.ko

5、makefile说明下,

#!/bin/bash
export ARCH=arm    // 在这里指定平台arm
obj-m += itop4412_register_dev_drv.o
KDIR := /home/topeet/tree-4412/itop4412_kernel_4_14_2_bsp/linux-4.14.2_iTop-4412_scp
#KDIR := /home/topeet/tree-4412/itop4412_kernel_4_14_2_bsp/linux-4.14.2_iTop-4412_scp

PWD ?= $(shell pwd)
all:
        make -C $(KDIR) M=$(PWD) modules
                
clean:
        rm *.ko *.o  *.mod.c *.order *.symvers                                              
posted @ 2020-09-06 15:54  笑不出花的旦旦  阅读(1049)  评论(0)    收藏  举报