学习笔记(5):linux设备树详解-使用设备树时对应的驱动编程

立即学习:https://edu.csdn.net/course/play/9511/201534?utm_source=blogtoedu

  1. 设备树:在DTS文件中构造节点,节点含有资源(管脚),dts>dtb传给内核,内核处理解析dtb文件得到一个一个的device.node结构体,由变为platform_device结构体,里面含有资源(资源来自DTS文件).platform_device与内核当中的platform_drive匹配,一旦匹配成功,platform_drive里的probe就会被调用,分配》设置》注册
  2. led节点有两个属性:我们使用compatible在内核里面找到能够支持这个节点的驱动程序;reg(本意为寄存器的地址)可以用来指定引脚
  3. reg = <S3C2410_GPF(5)  1>;S3C2410_GPF(5)为起始地址; 1为这个寄存器的大小
  4. platform_driver led_drv中.of_match_table = of_match_leds, /* 能支持哪些来自于dts的platform_device */
  5. "来自dts的platform_device结构体" 与 "我们写的platform_driver" 的匹配过程:
        "来自dts的platform_device结构体"里面有成员".dev.of_node", 它里面含有各种属性, 比如 compatible, reg, pin
        "我们写的platform_driver"里面有成员".driver.of_match_table", 它表示能支持哪些来自于dts的platform_device  如果"of_node中的compatible" 跟 "of_match_table中的compatible" 一致, 就表示匹配成功, 则调用 platform_driver中的probe函数;
  6.     在probe函数中, 可以继续从of_node中获得各种属性来确定硬件资源
  7. 如果想要修改所使用的灯,修改一下设备树,上传编译,从新启动内核,使用新的设备树,使用新的dtb文件来启动内核就可以了
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值