zoukankan      html  css  js  c++  java
  • linux platform简易的理解

    Platform是一种模型

    它把硬件和软件分离出来,就像单片机一样的,你在使用某个模块的时候,第一要看原理图,知道这个模块连在那个引脚上,要知道有多少个引脚,第二就是根据模块手册的上信息,去操作这些引脚。

    platform的device就是硬件(多少个引脚,用了什么资源),platform的driver就是驱动(操作这些引脚来初始化模块)。

    所以就要有两个文件:

    一个xxx_device.c,里面描述了硬件相关的信息。

    一个xxx_driver.c,里面描述着怎么操作模块。

    这两个文件怎么匹配起来?

    在结构体platform_device 中有一个成员name,它会和结构体platform_driver中的成员driver的成员name匹配,名字一样,说明driver可以去使用device的资源(即硬件)。

    匹配成功会发生什么?

    结构体platform_driver中有一个成员函数指针 probe,一旦匹配成功,就会去执行probe函数,在这里面就是初始化的操作了。

    设备树与platform

    可以去使用设备树,这样可以不需要额外写device.c文件。如果要使用设备树的方式,设备树中compatible中的属性值与结构体platform_driver的成员id_match_table的值保持一致,当这两个属性一致时,也会去调用probe函数,再调用相关函数即可获取到设备树中的节点资源,初始化模块。

     

  • 相关阅读:
    用户使用调查报告
    Beta总结
    Beta冲刺Day7
    Beta冲刺Day6
    Beta冲刺Day5
    Beta冲刺Day4
    Beta冲刺Day3
    Beta冲刺Day2
    Beta冲刺Day1
    Beta预备
  • 原文地址:https://www.cnblogs.com/r1chie/p/14057986.html
Copyright © 2011-2022 走看看