💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
属性采用的是简单的键-值对,有如下两种格式: * Property格式1(没有值) : \[label:\] property-name; * Property格式2(键值对) : \[label:\] property-name = value;; ### 在设备树源文件中任有几个基本的数据表示形式: * 文本字符串(无结束符)可以用双引号表示:string-property = "a string" * Cells是 32 位无符号整数,用尖括号限定: * cell-property = <0xbeef 123 0xabcd1234> * 二进制数据用方括号限定:binary-property = \[01 23 45 67\]; ### 不同表示形式的数据可以使用逗号连在一起: ``` mixed-property = "a string", [01 23 45 67], <0x12345678>; ``` 逗号也可用于创建字符串列表:string-list = "red fish", "blue fish"; ### **1)compatible属性** 指定了系统的名称,包含了一个“<制造商>,<型号>”形式的字符串。比如上图中的 compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart"。 ### **2)reg属性** reg =<address1 length1 \[address2 length2\] ... > 上面的每一个元素都代表设备的寻址地址及其寻址大小,每一个元素中的address值可以是一个或者多个无符号32位整形数据类型cell来表示,元素中的length可以为空也可以使一个或者多个无符号32位整形数据类型cell。 ### 由于每个可寻址设备都会有reg属性可设置,而且reg属性元素也是灵活可选择的,那么谁来制定reg属性元素中每个元素也就是address和length的个数呢?在这里,要关注到期父节点的两个属性,其中#address-cells表示reg中address元素的个数,#size-cells用来表示length元素的个数。 ### **3)#address-cells和#size-cells属性** ![](https://img.kancloud.cn/e7/48/e748884c295e9c43f19da170d26ebe03_648x346.png =600x) 上图表示address元素个数为2,length元素个数也为2。 ### **4)中断属性** interrupt-parent - 设备结点透过它来指定它所依附的中断控制器的phandle,当结点没有指定interrupt-parent时,则从父级结点继承。 ### interrupt-controller - 一个空的属性定义该节点作为一个接收中断信号的设备。(见下图) ![](https://img.kancloud.cn/a2/6b/a26b6e59ac27cb0ee30af8c312e975d3_832x508.png) #interrupt-cells - 表明连接此中断控制器设备的interrupts属性的cell个数。 ### interrupts - 一个中断指示符的列表,对应于该设备上的每个中断输出信号,在ARM GIC中:当#interrupt-cells为3时,interrupts包含三个cells。 ### GIC\_PPI代表中断类型,一般有两种: * PPI中断:私有外设中断(Private Peripheral Interrupt),是每个CPU私有的中断。最多支持16个PPI中断,范围【0 - 15】。 * SPI中断类型:公用外设中断(Shared Peripheral Interrupt),最多可以支持988个外设中断,范围【0 - 987】。 ### interrupts中第二个cell值为9其实就是指PPI中断类型的第9个中断。 ### IRQ\_TYPE\_LEVEL\_HIGH代表中断触发标志,常见的有: * 1 = 低- 至- 高边沿触发; * 2 = 高- 到- 低边沿触发; * 4 = 活跃的高水平- 敏感; * 8 = 低电平有效- 敏感 图中是高电平触发。