嵌入式Linux 裝置樹(二)裝置樹模板

2021-10-13 03:08:26 字數 2077 閱讀 9340

在上面dts 的語法做了比較詳細的講解,這裡就根據前面講解的語法,從頭到尾編寫乙個小型的裝置樹檔案。當然了,這個小型裝置樹沒有實際的意義,做這個的目的是為了掌握裝置樹的語法。在實際產品開發中,我們是不需要完完全全的重寫乙個.dts 裝置樹檔案,一般都是使用 soc 廠商提供好的.dts 檔案,我們只需要在上面根據自己的實際情況做相應的修改即可。在編寫裝置樹之前要先定義乙個裝置,我們就以 i.mx6ull 這個 soc 為例,我們需要在裝置樹裡面描述的內容如下:

為了簡單起見,我們就在裝置樹裡面就實現這些內容即可,首先,搭建乙個僅含有根節點「/」的基礎的框架,新建乙個名為 myfirst.dts 檔案,在裡面輸入如下所示內容:

/
裝置樹框架很簡單,就乙個根節點「/」,根節點裡面只有乙個 compatible 屬性。我們就在這個基礎框架上面將上面列出的內容一點點新增進來。

首先新增cpu節點,i.mx6ull採用cortex-a7架構,而且只有乙個cpu,因此只有乙個cpu0節點,完成以後如下:

/ ;}

;}

cpus節點,次節點用於描述soc內部的所有cpu,因為i.mx6ull只有乙個cpu,因此只有乙個cpu0子節點。

如uart,iic控制器等等這些都屬於soc內部外設,因此一般會建立乙個叫做soc的父節點來管理這些soc內部外設的子節點,新增soc節點以後的檔案如:

/ ;}

; // soc節點

soc

;}

新增 ocram 節點,ocram 是 i.mx6ull 內部 ram,因此 ocram 節點應該是 soc 節點的子節點。ocram 起始位址為0x00900000,大小為128kb(0x20000),新增 ocram節點以後檔案內容如下所示:

/ ;}

; // soc節點

soc ;}

;}

i.mx6ull 內部分為三個域:aips13,這三個域分管不同的外設控制器,aips13 這三個域對應的記憶體範圍如下所示:

域起始位址

大小(hex)

aips1

0x02000000

0x100000

aips2

0x02100000

0x100000

aips3

0x02200000

0x100000

我們先在裝置樹中新增這三個域對應的子節點。aips1~3這三個域都屬於soc節點的子節點,完成以後的檔案內容如下所示:

/ ;}

; // soc節點

soc

; // aips1 節點

aips1: aips-bus@02000000

; // aips2 節點

aips2: aips-bus@02100000

; // aips3 節點

aips3: aips-bus@02200000 ;}

;}

最後我們在 myfirst.dts 檔案中加入 ecspi1,usbotg1 和 rngb 這三個外設控制器對應的節點,其中 ecspi1 屬於 aips1 的子節點,usbotg1 屬於 aips2 的子節點,rngb 屬於 aips3 的子節點。最終的檔案內容如下:

/ ;}

; // soc節點

soc

; // aips1 節點

aips1: aips-bus@02000000 ;}

; // aips2 節點

aips2: aips-bus@02100000 ;}

; // aips3 節點

aips3: aips-bus@02200000 ;}

;};}

至此,這個小型的模板裝置樹就編寫好了,基本和 imx6ull.dtsi 很像,可以看做是 imx6ull.dtsi 的縮小版。在上面我們僅僅是編寫了 i.mx6ull 的外設控制器節點,像 iic 介面,spi 介面下所連線的具體裝置我們並沒有寫,因為具體的裝置其裝置樹屬性內容不同,這個等到具體的實驗在詳細講解。

什麼是嵌入式裝置? 嵌入式裝置的定義

區別於通用計算機的其他裝置都可以稱之為嵌入式裝置 個人電腦,伺服器 一段時期內,必備的硬體配置。底層驅動開發 關鍵字 bsp 嵌入式linux wince vxworks 上層應用開發 關鍵字 posix jd以嵌入式linux系統開發為例 熟悉常見外設,匯流排的linux驅動開發 微控制器,m3,...

ssl證書 嵌入式裝置 嵌入式裝置支援https

2.openssl 1.0.1i.tar.gz 一 一般編譯 沒有ssl支援 1.配置如下 2.把它複製到開發板 usr sbin目錄 然後複製下列檔案 3.放置網頁檔案 4.測試 default 2 main default 2 main host localhost default 2 main...

嵌入式linux字元裝置驅動

arm linux 驅動 抵岸科技 1.我們需要先呼叫register chrdev region 或 alloc chrdev region 來向系統申請裝置號 int register chrdev region dev t first,unsigned int count,char name ...