久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 設(she)備樹基(ji)本語法及(ji)屬性分析

設備樹基本(ben)語法(fa)及屬性分析 時間:2018-09-27      來源:未知

一:什么是設備樹

設(she)備(bei)樹(shu)(shu)(Device Tree)是一(yi)種描(miao)述(shu)硬(ying)件(jian)的(de)數據結(jie)構,是結(jie)構化的(de)語言(yan),有(you)點像(xiang)C語言(yan)的(de)結(jie)構體(ti)。在操作(zuo)系(xi)統引導(dao)啟動階(jie)段進(jin)行(xing)設(she)備(bei)初(chu)始(shi)化的(de)時候(hou),設(she)備(bei)樹(shu)(shu)中(zhong)描(miao)述(shu)硬(ying)件(jian)的(de)信(xin)息(xi)被檢測到并傳遞給操作(zuo)系(xi)統。

本文引用地址://fsbing.cn/emb/Column/7506.html

二:設備樹起源與意義

設(she)備(bei)樹在2011年被(bei)引(yin)入到ARM Linux內核中(zhong),也就是(shi)在Linux內核3.x以后引(yin)入的(de),在內核3.x之前都(dou)是(shi)沒有設(she)備(bei)樹的(de)概念的(de),都(dou)是(shi)使用平臺文件(jian)來(lai)描(miao)述(shu)硬(ying)件(jian)的(de)。它(ta)的(de)引(yin)入主要(yao)是(shi)想解決(jue)ARM Linux內核代碼冗余的(de)問題。

三:內核中與設備樹相關的文件

 dts文件,Device Tree Source,是以(yi)ASCII文本形式來描述設備樹內容。

dtb文件(jian)是二進(jin)制格式,是編譯(yi)后終(zhong)生成的二進(jin)制文件(jian)。

dtsi文(wen)件,類似于(yu)C語言頭文(wen)件。

四:基本語法

1. 節點

節點名

語法: <name>[@<unit-address>]

名字的命(ming)名是由字符、數字、“-”等組成,長是31個字符,一(yi)般是設備(bei)類型命(ming)名,unit-address一(yi)般的是設備(bei)地(di)址。

比如:

對于(yu)節點(dian)來說,有節點(dian)引(yin)用、合并節點(dian)內(nei)容、替換節點(dian)內(nei)容。

節(jie)點引用另一個節(jie)點:

demo節(jie)點的(de)屬性item引(yin)用了節(jie)點的(de)node的(de)屬性值。

節點內容引用

有時候在一個節點(dian)中會引用到其他節點(dian)的屬性(xing)值,會使用到節點(dian)內容引用。

節點內容合并

有時候一(yi)個硬件設備的(de)部分信息內(nei)(nei)容可能會(hui)有變化(hua),這(zhe)里可能會(hui)出(chu)現節點內(nei)(nei)容合并(bing)的(de)概念。

移植(zhi)者(zhe)在根節(jie)點(dian)中添加一個node節(jie)點(dian),節(jie)點(dian)中的(de)內容與上面的(de)節(jie)點(dian)內容是不同,此時需(xu)要(yao)合并,合并完成結果如下(xia):

節點內容替換

在根(gen)節點中有相(xiang)同名字的(de)子節點,此時會出現替換內(nei)容(rong)的(de)概念。

內容(rong)替換完(wan)成后的結果如下:

節點查找

通過節(jie)點(dian)(dian)的compatible屬性值查找指定(ding)節(jie)點(dian)(dian)

通過節點名查(cha)找(zhao)指定節點

通過節(jie)點(dian)路徑查找指定節(jie)點(dian)

2. 節點屬(shu)性分析

設備樹(shu)中常(chang)見的屬性(xing)有(you)compatible、地(di)址address、中斷interrupt、MAC地(di)址、GPIO口(kou)、clock、power、regulator、等等。

compatible屬(shu)性

該屬(shu)性是用(yong)于匹配設備節點和設備驅(qu)動的。

在設備樹中compatible=&quot;davicom,dm9000";需要與驅動代(dai)碼中的.compatible匹配(pei)。

address屬性

#address-cells:描述(shu)子節點reg屬性值的(de)地址表中首(shou)地址cell數(shu)量

#size-cells:描述子(zi)節點reg屬性值的地址表中地址長度cell數量

reg:描述地址表,I/O地址。

父(fu)節點#address-cells值(zhi)(zhi)為(wei)1,#size-cells值(zhi)(zhi)為(wei)1,則(ze)子節點中reg的(de)值(zhi)(zhi)就(jiu)是一個(ge)首(shou)地(di)址加一個(ge)地(di)址長度為(wei)一個(ge)單元。

ranges:有(you)些設備是有(you)片(pian)選(xuan)(xuan)的,所以(yi)需(xu)要描述片(pian)選(xuan)(xuan)和片(pian)選(xuan)(xuan)的偏移量,在(zai)地址說明(ming)的時候還要說明(ming)地址映射范(fan)圍。

舉例說明,

片(pian)選0,偏移(yi)0,被映射到(dao)CPU地址空(kong)間(jian)的0x10100000~0x10110000中,地址長度(du)為0x10000。

interrupt屬性

interrupt-parent 標識此設備(bei)節點屬于哪一個中斷控制器,如(ru)果沒有設置(zhi)這個屬性,會自動依附父節點的;

interrupts 一(yi)個(ge)中斷(duan)標識(shi)符列(lie)表,表示(shi)每一(yi)個(ge)中斷(duan)輸(shu)出信號,引(yin)用中斷(duan)號及(ji)中斷(duan)觸(chu)發類型

#interrupt-cells 這(zhe)是中(zhong)斷控制器節點的屬性,用來標識這(zhe)個控制器需要幾(ji)個單位(wei)做中(zhong)斷描述(shu)符;

interrupt-controller 一個空屬性用(yong)來聲明這個node接收中斷(duan)信號;

比如:父節點的#interrupt-cells的值(zhi)是(shi)3,則子節點的interrupts一(yi)個(ge)(ge)cell有三個(ge)(ge)32bits整型值(zhi),<中(zhong)斷域 中(zhong)斷 觸發方式(shi)>

gpio屬性

gpio-controller:說明該節(jie)點描述的是一個gpio控制器

#gpio-cells:描述(shu)gpio使用節點的屬性一個cell的內(nei)容(rong)

屬性(xing)名=<&引用GPIO節點別(bie)名 GPIO標(biao)號 工作模式>;

上一篇:配置Unity安卓開發環境

下一篇:詳解守護進程的創建與fork兩次分析

熱點文章(zhang)推薦
華清學員就業(ye)榜(bang)單
高薪學員經(jing)驗分享
熱點新聞推(tui)薦
前臺專線:010-82525158 企業培訓洽談(tan)專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部