国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2889|回復: 0
打印 上一主題 下一主題

SOM-TL138Linux設備樹概述和開發指南

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2019-8-12 15:07:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1 Linux設備樹概述1.1 Linux設備樹概述
    Linux設備樹是一個包含節點和屬性的簡單樹狀結構。屬性是基于key-value對的,而節點可以同時包含屬性和子節點。下面這個樹就是一個典型結構
/ {
     node1 {
                   a-string-property = "A string";
                   a-string-list-property = "first string", "second string";
                   a-byte-data-property = [0x01 0x23 0x34 0x56];
                   child-node1 {
                                          first-child-property;
                                          second-child-property = <1>;
                                          a-string-property = "Hello, world";
                                       };
                  child-node2 {
                                       };
               };
    node2 {
                 an-empty-property;
                 a-cell-property = <1 >; /* each number (cell) is a uint32 */
                 child-node1 {
                                      };
                };
};
這棵樹沒有描述任何東西,但是它體現了節點的一些屬性:
l 一個單獨的根節點:“/”
l 兩個子節點:“node1”“node2”
l 兩個 node1 的子節點:“child-node1”“child-node2”
l 一堆分散在樹里的屬性
可以這么簡單理解:節點就是樹枝,屬性就是樹葉;樹枝上可以有再長樹枝也可以長樹葉,而樹葉上則不會再長樹枝。
屬性是基于key-value結構的,value可以為空或者特定格式的字符串內容。由于數據類型并不被編碼到最終的數據結構中,設備樹源代碼中僅能支持有限的幾種基本數據類型,如下:
l 文本字符串(無結束符)可以用雙引號表示:
string-property = "a string"
l 'Cells'32 位無符號整數,用尖括號表示:
cell-property = <0xbeef xabcd>
l 二進制數據用方括號表示
binary-property = [0x01 0x23 0x45 0x67];
l 不同表示形式的數據可以使用逗號連在一起
mixed-property = "a string", [0x01 0x23 0x45 0x67], <0x12345678>;
l 逗號也可用于創建字符串列表
string-list = "red fish", "blue fish";
1.2 基本概念1.2.1 初始結構
第一步就是構建一個基本結構,這是一個設備樹最基本的結構。在這個階段,需要一個唯一的標識該機器。
/ {
compatible = "gpio-leds";
};
compatible指定了系統的名稱。它包含了一個“<>,<>”形式的字符串。重要的是要指定一個確切的設備,并且包括制造商的名字,以避免命名空間沖突。由于操作系統會使用 compatible的值來決定如何在機器上運行,所以正確的設置這個屬性十分重要。
1.2.2 中央處理器
    第二步就是描述CPU。先添加一個名為“cpus”的容器節點,然后為每個CPU分別添加子節點TI AM437x平臺為例
/ {
compatible = "ti,am437x-gp-evm";
cpus {
cpu@0 {
compatible = "ti,am4372";
};
cpu@1 {
compatible = "ti,am4372";
};
};
};
每個cpu節點compatible屬性是一個“<>,<>”形式的字符串,并指定了確切的cpu,就像頂層的compatible屬性一樣。
1.2.3 節點名稱
    每個節點必須有一個“<>[@<>]”形式的名字。
l << span>名稱>就是一個不超過31位的簡單ascii字符串。通常,節點的命名應該根據它所體現的是什么樣的設備。比如一個3com以太網適配器的節點就應該命名為 ethernet,而不應該是3com509
l 如果該節點描述的設備有一個地址的話,還應該加上設備地址(unit-address)。通常,設備地址就是用來訪問該設備的主地址,并且該地址也在節點的reg屬性中列出
l 同級節點命名必須是唯一的,但只要地址不同,多個節點也可以使用一樣的通用名例如serial@101f1000serial@101f2000
1.2.4 設備
系統中每個設備都表示為一個設備樹節點。所以接下來就應該為這個設備樹填充設備節點。
/ {
compatible = "ti,am437x-gp-evm";
cpus {
cpu@0 {
compatible = "ti,am4372";
};
cpu@1{
compatible = "ti,am4372";
};
};
serial@101F0000 {
compatible = "ti,omap2-uart";
};
serial@101F2000 {
compatible = "ti,am4372-uart";
};
gpio@101F3000 {
compatible = "ti,pl061";
};
spi@10115000 {
compatible = "ti,ads7846";
};
external-bus {
ethernet@0,0 {
compatible = "ti,smc91c111";
};
i2c@1,0 {
compatible = "ti,tps65218";
rtc@58 {
compatible = "ti,ds1338";
};
};
flash@2,0 {
compatible = "ti,omap2-nand", "omap3-nand";
}
在此樹中,已經為系統中的每個設備添加了節點,而且這個層次結構也反映了設備與系統的連接方式。例如,外部總線上的設備就是外部總線節點的子節點,i2c設備就是i2c 總線節點的子節點。通常,這個層次結構表現的是CPU視角的系統視圖。
在這顆樹中,應該注意這些事情:
l 每個設備節點都擁有一個compatible 屬性
l flash閃存節點的compatible屬性由兩個字符串構成
l 正如前面所述,節點的命名應當反映設備的類型而不是特定的型號。
1.2.5 理解compatible屬性
設備樹中每個節點都需要一個compatible屬性。compatible屬性是操作系統用來決定使用哪個設備驅動來綁定到一個設備上的關鍵因素
compatible是一個字符串列表,其中第一個字符串指定了這個節點所表示的確切的設備,該字符串的格式為:"<>,<>"。剩下的字符串的則表示其它與之相兼容的設備
1.3 如何編址
    可編址設備使用以下屬性將地址信息編碼進設備樹:
reg
#address-cells
#size-cells
    每個可編址設備都有一個元組列表的reg,元組的形式為:reg = <>。每個元組都表示一個該設備使用的地址范圍。每個地址值是一個或多個32位整型數列表,稱為cell。同樣,長度值也可以是一個 cell 列表或者為空。
    由于地址和長度字段都是可變大小的變量,那么父節點的#address-cells#size-cells 屬性就用來聲明各個字段的cell的數量。換句話說,正確解釋一個reg屬性需要用到父節點的#address-cells#size-cells的值。


更多幫助
銷售郵箱:www.tronlong.com
技術論壇:www.51ele.net
線上商城:https://tronlong.taobao.com
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九色在线免费观看 | 2020国产精品| 免费看黄网 | 麻豆国产高清在线播放 | 在线视频这里只有精品 | 岛国成人在线 | 91资源在线观看 | 日韩大片在线播放 | 4虎影院在线观看 | 草莓视频丝瓜视频下载 | 精品国产区一区二区三区在线观看 | 日韩精品中文字幕在线观看 | 日本一区二区在线播放 | 亚洲三级一区 | 视频一区 中文字幕 | 日韩毛片一级 | 国产精品国产三级国产专区5o | 国产精品久久久久久久久久免费 | 亚洲黄色片在线观看 | 亚洲欧美一区二区三区在饯 | 亚洲精品亚洲人成毛片不卡 | 天天操天天插 | 最近韩国日本免费观看mv免费版 | 91系列在线观看 | 欧美又大又粗又爽视频 | 日本一区二区成人教育 | 黄视频在线免费 | 欧美三级在线观看视频 | 韩国妈妈的朋友在线 | 欧美日本一区亚洲欧美一区 | 亚洲国产影视 | 国产麻豆交换夫妇 | 九九热在线观看视频 | 99re8热精品免费视频 | 91最新在线播放 | 亚洲欧美日韩天堂在线观看 | 99综合在线 | 欧美亚洲国产片在线观看 | 亚洲视频大全 | 点击进入毛片免费观看 | 国产精品国产国产aⅴ |