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函数,再调用相关函数即可获取到设备树中的节点资源,初始化模块。

     

  • 相关阅读:
    Ubuntu驱动程序开发2-Uboot命令使用
    Ubuntu驱动程序开发1-环境搭建
    STM32F4 串口IAP程序解析
    QT样式表(QSS)
    设备树常用OF函数
    UCOSIII在STM32f4上面的移植
    UCOS常用函数API
    MySQL学习——备份和还原
    JavaWeb学习——页面跳转方式
    Java问题记录——循环里的二次判断与状态更新
  • 原文地址:https://www.cnblogs.com/r1chie/p/14057986.html
Copyright © 2011-2022 走看看