zoukankan      html  css  js  c++  java
  • linux dts 设备树的理解与使用

    文档:Documentation/devicetree/bindings 目录下

    以前是platform的C语言使用,现在改为用dts的命令交互式的文件指定方式。

    采用dts的方式进行替换platfrom,避免代码的冗余处理, 硬件的表现是采用主芯片-总线-控制器的这种方式,dts描述也是这样描述方法

    1、dts的分类及具体命令使用

       a、   根节点兼容性

               根节点是采用compatible="", 

              兼容属性一般包括两个或两个以上的兼容性字符串,首个兼容性字符串是板子级别,后面一个兼容性字符串是芯片级别。 

              譬如板子arch/arm/boot/dts/vexpress-v2p-ca9.dts,

             .compatible="arm, vexpress, v2p-ca9","arm,vexpress"。

       b、 设备节点兼容性

             用于驱动和设备的绑定,兼容属性是一个字符串列表,列表中的第一个字符串表征了节点设备的确切设备,形式为:<manufacturer>,<model>,其后的字符串的表征可以兼容其它设备

               

       c、设备节点及label命名

                设备节点:遵循的组织形式为<name>[@<unit-address>],也可以为一个设备节点添加label, 之后可以通过&label的形式进行访问,这种引用是通过phandle进行。例:

               gpio:gpio@48000000 {

               }

        d、地址编码

              address-cells, size-cells, 这个暂时不太清楚使用,后面进行优化处理,size-cells 理解为地址长度, address-cells为地址, 比如 address-cells=1,  表示只用一个地址表示开始地址, address-cells, 需要两个reg<0,0,12>, 这两个0作为才能做起始地址

        e、中断连接

              

        f、GPIO、时钟、pinmux连接

    2、常用的函数

       a、寻找节点

             of_find_compatible_node();

        b、读取属性

        c、内存映射

        d、解析中断   irq_of_parse_and_map();

    3、dts从uboot到传递及编译方式

         a、.

         

  • 相关阅读:
    UVA 11235 Frequent Values ---RMQ
    UVA 12266 Stock prices --优先队列
    HDU 1896 Stones --优先队列+搜索
    POJ 1442 Black Box -优先队列
    POJ 2263 Heavy Cargo 多种解法
    POJ 3250 Bad Hair Day --单调栈(单调队列?)
    FZU1894 志愿者选拔 --单调队列
    POJ 2823 Sliding Window 再探单调队列
    UVA 11992 Fast Matrix Operations (二维线段树)
    两道相似KMP题
  • 原文地址:https://www.cnblogs.com/hzijone/p/15523155.html
Copyright © 2011-2022 走看看