国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ)

這篇具有很好參考價(jià)值的文章主要介紹了itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

《【北京迅為】itop-3568開發(fā)板驅(qū)動(dòng)開發(fā)指南.pdf》 學(xué)習(xí)筆記

設(shè)備樹簡介

什么是設(shè)備樹

設(shè)備樹是保留著存在于系統(tǒng)中的設(shè)備信息,當(dāng)機(jī)器引導(dǎo)時(shí),OS通過使用驅(qū)動(dòng)程序和其他組件獲得的信息建立此樹,并且當(dāng)添加或刪除設(shè)備時(shí)更新此樹。

上一篇筆記提到了平臺設(shè)備模型,它將設(shè)備和驅(qū)動(dòng)區(qū)分開來,一份驅(qū)動(dòng)可以與多份設(shè)備匹配,但隨著 device (板級文件)的增多,Linux 內(nèi)核代碼變得越來越多,這些代碼相對于內(nèi)核來說都算是”垃圾代碼“,為了解決這個(gè)問題,linux 就引入了設(shè)備樹來替代 device 文件。

既然設(shè)備樹是用來替代平臺總線 device 文件的,那么設(shè)備樹的運(yùn)作原理還是基于平臺總線模型,只是設(shè)備樹采用的是文本格式,不像 device.c 一樣每次修改都要重新編譯內(nèi)核。

設(shè)備樹基本名詞

名詞 含義
DT Device Tree 設(shè)備樹
FDT Flattened Device Tree 展開設(shè)備樹,起源 OpenFirmware(OF)
dts device tree source 設(shè)備樹源碼
dtsi device tree source include 通用的設(shè)備樹源碼
dtb devicedevice tree blob dts 編譯生成的文件
dtc device tree compiler 設(shè)備樹編譯器

設(shè)備樹編譯

編譯設(shè)備樹命令:

dtc -I dts -O dtb -o xxx.dtb xxx.dts

反編譯設(shè)備樹:

dtc -I dtb -O dts -o xxx.dts xxx.dtb

示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

設(shè)備樹語法

設(shè)備根節(jié)點(diǎn)

根節(jié)點(diǎn)是設(shè)備樹必須添加的節(jié)點(diǎn),節(jié)點(diǎn)名為 /。

示例:

/dts-v1/; // dts 版本
/{        // 根節(jié)點(diǎn)
};

設(shè)備子節(jié)點(diǎn)

子節(jié)點(diǎn)格式:

	[label:] node-name[@unit-address] {
		[properties definitions]
		[child nodes]
	}

Tip:同級節(jié)點(diǎn)下節(jié)點(diǎn)名稱不能相同,不同級別節(jié)點(diǎn)名稱可以相同。

示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

節(jié)點(diǎn)名稱

在對節(jié)點(diǎn)命名時(shí),需要體現(xiàn)設(shè)備的特征,如串口一般命名為 uart 或 serial,

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹
節(jié)點(diǎn)名稱是必選項(xiàng),標(biāo)簽和設(shè)備地址是可選項(xiàng),標(biāo)簽是節(jié)點(diǎn)的別名,設(shè)備地址用于區(qū)分不同的設(shè)備。

reg 屬性

reg 屬性用來描述地址信息,如寄存器地址,格式為:

reg = <addr1 len1 addr2 len2 ...>

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

#address-cell 和 #size-cells 屬性

reg 屬性的長度是可變的,#address-cell 和 #size-cells 屬性用來決定 reg 的長度,比如下面這個(gè)例子,#address-cell 為 1,表示有一個(gè)地址,#size-cells 為 0,表示有 0 個(gè)地址長度。

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

model 屬性

model 屬性是一個(gè)字符串,用來描述設(shè)備信息,例如:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

status 屬性

status 屬性表示設(shè)備的狀態(tài),該屬性值是一個(gè)字符串,可取值包括:

status 值 含義
okay 設(shè)備可用
disabled 設(shè)備不可用
fail 設(shè)備不可用且有錯(cuò)誤
fail-sss 設(shè)備不可用且有 sss 錯(cuò)誤(sss 是錯(cuò)誤內(nèi)容)

示例:
itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

compatible 屬性

compatible 是設(shè)備樹與驅(qū)動(dòng)進(jìn)行匹配的屬性,屬性值為字符串,compatible 屬性值的推薦格式:"manufacturer,model"(“廠商名,模塊驅(qū)動(dòng)名”)。

該屬性可以有多個(gè)值,驅(qū)動(dòng)會從第一個(gè)值開始匹配,示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

aliases 節(jié)點(diǎn)

aliases 用來定義節(jié)點(diǎn)的別名,它和節(jié)點(diǎn)標(biāo)簽類似,但它可以批量定義別名。

示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

chosen 節(jié)點(diǎn)

chosen 節(jié)點(diǎn)用來 uboot 給內(nèi)核傳遞參數(shù)(重點(diǎn)是 bootargs 參數(shù)),該節(jié)點(diǎn)必須是根節(jié)點(diǎn)的子節(jié)點(diǎn)。

示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

device_type 屬性

device_type 屬性值為字符串,只用于 cpu 或 memory 節(jié)點(diǎn)。

示例:

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹

自定義屬性

設(shè)備樹可以自定義一些屬性,

比如 mipi 背光參數(shù),

itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ),# 驅(qū)動(dòng)開發(fā)(學(xué)習(xí)筆記),驅(qū)動(dòng)開發(fā),linux,設(shè)備樹文章來源地址http://www.zghlxwxcb.cn/news/detail-536788.html

到了這里,關(guān)于itop-3568開發(fā)板驅(qū)動(dòng)學(xué)習(xí)筆記(22)設(shè)備樹(一)設(shè)備樹基礎(chǔ)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RK3568平臺開發(fā)系列講解(驅(qū)動(dòng)基礎(chǔ)篇)自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)

    RK3568平臺開發(fā)系列講解(驅(qū)動(dòng)基礎(chǔ)篇)自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)

    ??返回專欄總目錄 沉淀、分享、成長,讓自己和他人都能有所收獲!?? ??自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)分為兩個(gè)步驟: 步驟一:使用 class_create 函數(shù)創(chuàng)建一個(gè)類。 步驟二:使用 device_create 函數(shù)在我們創(chuàng)建的類下面創(chuàng)建一個(gè)設(shè)備。 Linux 驅(qū)動(dòng)實(shí)驗(yàn)中,當(dāng)我們通過 insmod 命令加載模塊后,

    2023年04月12日
    瀏覽(94)
  • Linux設(shè)備驅(qū)動(dòng)開發(fā)學(xué)習(xí)筆記(等待隊(duì)列,鎖,字符驅(qū)動(dòng)程序,設(shè)備樹,i2C...)

    container_of函數(shù)可以通過結(jié)構(gòu)體的成員變量檢索出整個(gè)結(jié)構(gòu)體 函數(shù)原型: 內(nèi)核開發(fā)者只實(shí)現(xiàn)了循環(huán)雙鏈表,因?yàn)檫@個(gè)結(jié)構(gòu)能夠?qū)崿F(xiàn)FIFO和LIFO,并且內(nèi)核開發(fā)者要保持最少代碼。 為了支持鏈表,代碼中要添加的頭文件是linux/list.h。內(nèi)核中鏈表實(shí)現(xiàn)核心部分的數(shù)據(jù)結(jié)構(gòu) 是struct li

    2024年01月22日
    瀏覽(19)
  • Linux驅(qū)動(dòng)開發(fā)筆記(四):設(shè)備驅(qū)動(dòng)介紹、熟悉雜項(xiàng)設(shè)備驅(qū)動(dòng)和ubuntu開發(fā)雜項(xiàng)設(shè)備Demo

    Linux驅(qū)動(dòng)開發(fā)筆記(四):設(shè)備驅(qū)動(dòng)介紹、熟悉雜項(xiàng)設(shè)備驅(qū)動(dòng)和ubuntu開發(fā)雜項(xiàng)設(shè)備Demo

    若該文為原創(chuàng)文章,轉(zhuǎn)載請注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134533533 紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中… 上一篇:《Linux驅(qū)動(dòng)開發(fā)筆記(三

    2024年02月05日
    瀏覽(50)
  • Linux 驅(qū)動(dòng)學(xué)習(xí)筆記 ——(1)字符設(shè)備驅(qū)動(dòng)

    Linux 驅(qū)動(dòng)學(xué)習(xí)筆記 ——(1)字符設(shè)備驅(qū)動(dòng)

    《【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動(dòng)開發(fā)指南》學(xué)習(xí)筆記 字符設(shè)備是 Linux 驅(qū)動(dòng)中最基本的一類設(shè)備驅(qū)動(dòng),字節(jié)設(shè)備就是按照字節(jié)流來讀寫的設(shè)備,常見的字符設(shè)備包括:LED、蜂鳴器、按鍵、I2C 以及 SPI 等。 Linux 中一切皆文件,字符設(shè)備驅(qū)動(dòng)加載成功后會在 /dev 目錄下生成相

    2024年02月08日
    瀏覽(26)
  • iTOP-3568開發(fā)板使用OpenCV處理圖像-顏色轉(zhuǎn)換

    iTOP-3568開發(fā)板使用OpenCV處理圖像-顏色轉(zhuǎn)換

    本小節(jié)代碼在配套資料“iTOP-3568 開發(fā)板\\03_【iTOP-RK3568 開發(fā)板】指南教程 \\04_OpenCV 開發(fā)配套資料\\05”目錄下,如下圖所示: cv2.cvtColor()函數(shù)功能: 將一幅圖像從一個(gè)色彩空間轉(zhuǎn)換到另一個(gè)色彩空間。 函數(shù)原型: cv2.cvtColor(src,code,dst=None,dstCn=None) 參數(shù)定義: src:要轉(zhuǎn)換的源文件

    2024年02月12日
    瀏覽(28)
  • LDD學(xué)習(xí)筆記 -- Linux字符設(shè)備驅(qū)動(dòng)

    LDD學(xué)習(xí)筆記 -- Linux字符設(shè)備驅(qū)動(dòng)

    字符驅(qū)動(dòng)程序用于與Linux內(nèi)核中的設(shè)備進(jìn)行交互; 字符設(shè)備指的是像內(nèi)存區(qū)域這樣的硬件組件,通常稱為偽設(shè)備; 用戶空間應(yīng)用程序通常使用 open read write 等系統(tǒng)調(diào)用與這些設(shè)備通信; 把用戶空間的系統(tǒng)調(diào)用連接到設(shè)備驅(qū)動(dòng)的系統(tǒng)調(diào)用實(shí)現(xiàn)方法上。 內(nèi)核的虛擬文件系統(tǒng) vir

    2024年02月02日
    瀏覽(26)
  • iTOP-RK3568開發(fā)板Docker 安裝 Ubuntu 18.04

    iTOP-RK3568開發(fā)板Docker 安裝 Ubuntu 18.04

    Docker 下載安裝 Ubuntu18.04,輸入以下命令: sudo apt update docker pull ubuntu:18.04 切換 Shell 到 Ubuntu 18.04,輸入以下命令: docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash -p 參數(shù):容器的 3000 端口映射到本機(jī)的 8000 端口。 -it 參數(shù):容器的 Shell 映射到當(dāng)前的 Shell,然后你在本機(jī)窗口輸

    2024年02月15日
    瀏覽(24)
  • Linux 驅(qū)動(dòng)開發(fā)基礎(chǔ)知識——LED 模板驅(qū)動(dòng)程序的改造:設(shè)備樹(十一)

    Linux 驅(qū)動(dòng)開發(fā)基礎(chǔ)知識——LED 模板驅(qū)動(dòng)程序的改造:設(shè)備樹(十一)

    ?個(gè)人名片: ??作者簡介:學(xué)生 ??個(gè)人主頁:妄北y ??個(gè)人QQ:2061314755 ??個(gè)人郵箱:2061314755@qq.com ??個(gè)人WeChat:Vir2021GKBS ?? 本文由妄北y原創(chuàng),首發(fā)CSDN ?????? ??座右銘:大多數(shù)人想要改造這個(gè)世界,但卻罕有人想改造自己。 專欄導(dǎo)航: 妄北y系列專欄導(dǎo)航: C/C++的基

    2024年02月21日
    瀏覽(14)
  • Linux驅(qū)動(dòng)開發(fā)基礎(chǔ)_在設(shè)備樹中指定中斷以及在代碼中獲得中斷

    Linux驅(qū)動(dòng)開發(fā)基礎(chǔ)_在設(shè)備樹中指定中斷以及在代碼中獲得中斷

    目錄 1 設(shè)備樹里中斷節(jié)點(diǎn)的語法 1.1 設(shè)備樹里的中斷控制器 1.2?設(shè)備樹里使用中斷 2??設(shè)備樹里中斷節(jié)點(diǎn)的示例 3?在代碼中獲得中斷 3.1 對于 platform_device? 3.2??對于 I2C 設(shè)備、SPI 設(shè)備 3.3??調(diào)用 of_irq_get 獲得中斷號 3.4?對于 GPIO? 參考文檔:內(nèi)核 Documentationdevicetreebindingsin

    2024年02月16日
    瀏覽(22)
  • 【IMX6ULL驅(qū)動(dòng)開發(fā)學(xué)習(xí)】12.Linux驅(qū)動(dòng)之設(shè)備樹

    【IMX6ULL驅(qū)動(dòng)開發(fā)學(xué)習(xí)】12.Linux驅(qū)動(dòng)之設(shè)備樹

    承接上一篇博客 【IMX6ULL驅(qū)動(dòng)開發(fā)學(xué)習(xí)】11.驅(qū)動(dòng)設(shè)計(jì)之面向?qū)ο骭分層思想(學(xué)習(xí)設(shè)備樹過渡部分) 代碼獲?。?https://gitee.com/chenshao777/imx6-ull_-drivers 我后面將三個(gè)層合并了(實(shí)際上只有前兩層),合并成一個(gè)dev_drv.c了,暫時(shí)沒有加GPIO操作,只是個(gè)框架 合并前的代碼在 11.butt

    2024年02月13日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包