Linux设备树学习(描述设备信息)1

一个芯片有许多板子:不同的板子之前可能有一部分是共同的信息

共同信息的:.dtsi文件

个别的:.dts文件

.dtb文件:dts通过dtc工具编译得到dtb文件

.dts文件:设备树源文件

___________________________//使用命令 make dtbs

设备树是采用树形结构来描述板子上的设备信息的文件,
每个设备都是一个节点,叫做设备节点,
每个节点都通过一些属性信息来描述节点信息,
属性就是键—值对
每个节点都有不同属性,不同的属性又有不同的内容,属性都是键值对,值可以为空或任
意的字节流。
——————————————————————————————————————————
节点是由一堆的属性组成,节点都是具体的设备,不同的设备需要的属性不同,
用户可以 自定义属性
有很多属性是标准属性
————————————————————————————————————————
compatible 属性也叫做“兼容性”属性 ,里面的属性值用来匹配驱动
格式:compatible = "fsl,imx6ul-evk-wm8960","fsl,imx-audio-wm8960";
一般:”厂商,驱动的名字“
一般驱动程序文件都会有一个 OF 匹配表,此 OF 匹配表保存着一些 compatible 值,
如果在设备树中有哪个节点的 compatible 属 性值驱动的相等,那这个节点就会使用此驱动文件。
————————————————————————————————————
model 属性:描述设备模块信息 属性值也是字符串
____________________________________________________________
status 属性:描述设备状态 属性值也是字符串
————————————————————————————
这两个属性可在任何拥有子节点的设备中,用于描述子节点的地址信息。 值都是无符号 32 位整形
一个字长=32位
4bit=一个16进制
#address-cells属性: 决定了子节点 reg 属性中地址信息所占用的字长(32 位)
#size-cells 属性:决定了子节点 reg 属性中长度信息所占的字长(32 位)
总:#address-cells #size-cells 表明了子节点应该如何编写 reg 属性值
reg = <address1 length1><address2 length2>address 是起始地址,length 是地址长度
 / {  //根节点,每个设备树文件只有一个根节 dts和dtsi的根节点的内容会合并成一个根节点
  
    cpus { //节点名字:没有地址
        #address-cells = <1>;//cpus 的子节点 reg 属性中起始地址所占用的字长为 1
        #size-cells = <0>;//地址长度所占用的字长为 0
        
         //cpu0 是 cpus 的子节点

         cpu0: cpu@0 { //节点标签(label):节点名字(设备的名字)@设备的地址或寄存器首地址
            
            //可以直接通过&label 来访问这个节点 简化输入

            compatible 属性也叫做“兼容性”属性,
            device_type = "cpu";

            reg = <0>;//32 位无符号整数 相当于设置了起始地址,而没有设置地址长度。
            };
        };

    intc: interrupt-controller@00a01000 {
         compatible =  "fsl,imx-gpmi-nand", "fsl, imx-gpmi-nand";//属性值也可以为字符串列表
        #interrupt-cells = <3>;
        interrupt-controller;
        reg = <0x00a01000 0x1000>,
        <0x00a02000 0x100>;//32 位无符号整数 的两组的一组值
        };

    aips3: aips-bus@02200000 {
            compatible = "fsl,aips-bus", "simple-bus";
            #address-cells = <1>;//起始地址长度所占用的字长为 1
            #size-cells = <1>;//地址长度所占用的字长也为 1

        dcp: dcp@02280000 {
                compatible = "fsl,imx6sl-dcp";
                reg = <0x02280000 0x4000>;//设置了起始地址为 0x02280000,地址长度为 0x40000
                };
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值