設(shè)備樹的引入減少了內(nèi)核為支持新硬件而需要的改變,提高代碼重用,加速了Linux支持包的開發(fā),使得單個內(nèi)核鏡像能支持多個系統(tǒng)。作為U-Boot 和Linux 內(nèi)核之間的動態(tài)接口,本文闡述了設(shè)備樹的數(shù)據(jù)存儲格式以及源碼描述語法,進(jìn)而分析了U-Boot 對扁平設(shè)備樹的支持設(shè)置,Linux 內(nèi)核對設(shè)備樹的解析流程。
IBM、Sun 等廠家的服務(wù)器最初都采用了Firmware(一種嵌入到硬件設(shè)備中的程序,用于提供軟件和硬件之間的接口),用于初始化系統(tǒng)配置,提供操作系統(tǒng)軟件和硬件之間的接口,啟動和運行系統(tǒng)。后來為了標(biāo)準(zhǔn)化和兼容性,IBM、Sun 等聯(lián)合推出了固件接口IEEE 1275標(biāo)準(zhǔn),讓他們的服務(wù)器如IBM PowerPC pSeries,Apple PowerPC,Sun SPARC 等均采用OpenFirmware,在運行時構(gòu)建系統(tǒng)硬件的設(shè)備樹信息傳遞給內(nèi)核,進(jìn)行系統(tǒng)的啟動運行[1]。這樣做的好處有,減少內(nèi)核對系統(tǒng)硬件的嚴(yán)重依賴,利于加速支持包的開發(fā),降低硬件帶來的變化需求和成本,降低對內(nèi)核設(shè)計和編譯的要求。
隨著 Linux/ppc64 內(nèi)核的發(fā)展,內(nèi)核代碼從原來的arch/ppc32 和arch/ppc64 逐漸遷移到統(tǒng)一的arch/powerpc 目錄,并在內(nèi)核代碼引入Open Firmware API 以使用標(biāo)準(zhǔn)固件接口[2]。Linux 內(nèi)核在運行時,需要知道硬件的一些相關(guān)信息。對于使用ARCH=powerpc 參數(shù)編譯的內(nèi)核鏡像,這個信息需要基于Open Firmware 規(guī)范,以設(shè)備樹的形式存在[3]。這樣內(nèi)核在啟動時讀取掃描Open Firmware 提供的設(shè)備樹,從而獲得平臺的硬件設(shè)備信息,搜索匹配的設(shè)備驅(qū)動程序并將該驅(qū)動程序綁定到設(shè)備。
在嵌入式 PowerPC 中,一般使用U-Boot 之類的系統(tǒng)引導(dǎo)代碼,而不采用Open Firmware。早期的U-Boot 使用include/asm-ppc/u-boot.h 中的靜態(tài)數(shù)據(jù)結(jié)構(gòu)struct bd_t 將板子基本信息傳遞給內(nèi)核,其余的由內(nèi)核處理。這樣的接口不夠靈活,硬件發(fā)生變化就需要重新定制編譯燒寫引導(dǎo)代碼和內(nèi)核,而且也不再適應(yīng)于現(xiàn)在的內(nèi)核。為了適應(yīng)內(nèi)核的發(fā)展及嵌入式PowerPC平臺的千變?nèi)f化,吸收標(biāo)準(zhǔn)Open Firmware 的優(yōu)點,U-Boot 引入了扁平設(shè)備樹FDT 這樣的動態(tài)接口,使用一個單獨的FDT blob(二進(jìn)制大對象,是一個可以存儲二進(jìn)制文件的容器)存儲傳遞給內(nèi)核的參數(shù)[3]。一些確定信息,例如cache 大小、中斷路由等直接由設(shè)備樹提供,而其他的信息,例如eTSEC 的MAC 地址、頻率、PCI 總線數(shù)目等由U-Boot 在運行時修改。U-Boot 使用扁平設(shè)備樹取代了bd_t,而且也不再保證對bd_t 的后向兼容。
2 設(shè)備樹概念
簡單的說,設(shè)備樹是一種描述硬件配置的樹形數(shù)據(jù)結(jié)構(gòu),有且僅有一個根節(jié)點[4]。它包含了有關(guān)CPU、物理內(nèi)存、總線、串口、PHY 以及其他外圍設(shè)備信息等。該樹繼承了OpenFirmware IEEE 1275 設(shè)備樹的定義。操作系統(tǒng)能夠在啟動時對此結(jié)構(gòu)進(jìn)行語法分析,以此配置內(nèi)核,加載相應(yīng)的驅(qū)動。
3 設(shè)備樹存儲格式
U-Boot 需要將設(shè)備樹在內(nèi)存中的存儲地址傳給內(nèi)核。該樹主要由三大部分組成:頭(Header)、結(jié)構(gòu)塊(Structure block)、字符串塊(Strings block)。設(shè)備樹在內(nèi)存中的存儲布局圖1 如下:
圖1 設(shè)備樹存儲格式圖
Fig1 The layout of a DT block
3.1 頭(header)
頭主要描述設(shè)備樹的基本信息,如設(shè)備樹魔數(shù)標(biāo)志、設(shè)備樹塊大小、結(jié)構(gòu)塊的偏移地址等,其具體結(jié)構(gòu)boot_param_header 如下。這個結(jié)構(gòu)中的值都是以大端模式表示,并且偏移地址是相對于設(shè)備樹頭的起始地址計算的。
3.2 結(jié)構(gòu)塊(structure block)
扁平設(shè)備樹結(jié)構(gòu)塊是線性化的樹形結(jié)構(gòu),和字符串塊一起組成了設(shè)備樹的主體,以節(jié)點形式保存目標(biāo)板的設(shè)備信息。在結(jié)構(gòu)塊中,節(jié)點起始標(biāo)志為常值宏OF_DT_BEGIN_NODE,節(jié)點結(jié)束標(biāo)志為宏OF_DT_END_NODE;子節(jié)點定義在節(jié)點結(jié)束標(biāo)志前。一個節(jié)點可以概括為以O(shè)F_DT_BEGIN_NODE 開始,包括節(jié)點路徑、屬性列表、子節(jié)點列表,最后以O(shè)F_DT_END_NODE 結(jié)束的序列,每一個子節(jié)點自身也是類似的結(jié)構(gòu)。
3.3 字符串塊(Strings block)
為了節(jié)省空間,將一些屬性名,尤其是那些重復(fù)冗余出現(xiàn)的屬性名,提取出來單獨存放到字符串塊。這個塊中包含了很多有結(jié)束標(biāo)志的屬性名字符串。在設(shè)備樹的結(jié)構(gòu)塊中存儲了這些字符串的偏移地址,這樣可以很容易地查找到屬性名字符串。字符串塊的引入節(jié)省了嵌入式系統(tǒng)較為緊張的存儲空間。
4 設(shè)備樹源碼DTS 表示
設(shè)備樹源碼文件(.dts)以可讀可編輯的文本形式描述系統(tǒng)硬件配置設(shè)備樹,支持C/C++方式的注釋,該結(jié)構(gòu)有一個唯一的根節(jié)點“/”,每個節(jié)點都有自己的名字并可以包含多個子節(jié)點。設(shè)備樹的數(shù)據(jù)格式遵循了Open Firmware IEEE standard 1275。本文只簡述設(shè)備樹數(shù)據(jù)布局及語法,Linux 板級支持包開發(fā)者應(yīng)該詳細(xì)參考IEEE 1275 標(biāo)準(zhǔn)[5]及其他文獻(xiàn)[2] [4]。為了說明,首先給出基于PowerPC MPC8349E 處理器的最小系統(tǒng)的設(shè)備樹源碼示例。
可以看到,這個設(shè)備樹中有很多節(jié)點,每個節(jié)點都指定了節(jié)點單元名稱。每一個屬性后面都給出相應(yīng)的值。以雙引號引出的內(nèi)容為ASCII 字符串,以尖括號給出的是32 位的16 進(jìn)制值。這個樹結(jié)構(gòu)是啟動Linux 內(nèi)核所需節(jié)點和屬性簡化后的集合,包括了根節(jié)點的基本模式信息、CPU 和物理內(nèi)存布局,它還包括通過/chosen 節(jié)點傳遞給內(nèi)核的命令行參數(shù)信息。
/ {
model = "MPC8349EMITX";
compatible = "MPC8349EMITX", "MPC834xMITX", "MPC83xxMITX";
#address-cells = <1>; /* 32bit address */
#size-cells = <1>; /* 4GB size */
cpus {
#address-cells = <1>;
#size-cells = <0>;
PowerPC,8349@0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <20>; /* 32 Bytes */
i-cache-line-size = <20>;
d-cache-size = <8000>; /* L1 dcache, 32K */
i-cache-size = <8000>;
timebase-frequency = <0>; /* from bootloader */
bus-frequency = <0>;
clock-frequency = <0>;
};
};
memory {
device_type = "memory";
reg = <00000000 10000000>; /* 256MB */
};
chosen {
name = "chosen";
bootargs = "root=/dev/ram rw console=ttyS0,115200";
linux,stdout-path = "/soc8349@e0000000/serial@4500";
};
};
4.1 根節(jié)點
設(shè)備樹的起始點稱之為根節(jié)點"/"。屬性model 指明了目標(biāo)板平臺或模塊的名稱,屬性compatible 值指明和目標(biāo)板為同一系列的兼容的開發(fā)板名稱。對于大多數(shù)32 位平臺,屬性
#address-cells 和#size-cells 的值一般為1。
4.2 CPU 節(jié)點
/cpus 節(jié)點是根節(jié)點的子節(jié)點,對于系統(tǒng)中的每一個CPU,都有相應(yīng)的節(jié)點。/cpus 節(jié)點沒有必須指明的屬性,但指明#address-cells = <1>和 #size-cells = <0>是個好習(xí)慣,這同時指明了每個CPU 節(jié)點的reg 屬性格式,方便為物理CPU 編號。
此節(jié)點應(yīng)包含板上每個CPU 的屬性。CPU 名稱一般寫作PowerPC,,例如Freescale 會使用PowerPC,8349 來描述本文的MPC8349E 處理器。CPU 節(jié)點的單元名應(yīng)該是cpu@0 的格式,此節(jié)點一般要指定device_type(固定為"cpu"),一級數(shù)據(jù)/指令緩存的表項
大小,一級數(shù)據(jù)/指令緩存的大小,核心、總線時鐘頻率等。在上面的示例中通過系統(tǒng)引導(dǎo)代碼動態(tài)填寫時鐘頻率相關(guān)項。
4.3 系統(tǒng)內(nèi)存節(jié)點
此節(jié)點用于描述目標(biāo)板上物理內(nèi)存范圍,一般稱作/memory 節(jié)點,可以有一個或多個。當(dāng)有多個節(jié)點時,需要后跟單元地址予以區(qū)分;只有一個單元地址時,可以不寫單元地址,默認(rèn)為0。
此節(jié)點包含板上物理內(nèi)存的屬性,一般要指定device_type(固定為"memory")和reg屬性。其中reg 的屬性值以<起始地址空間大小>的形式給出,如上示例中目標(biāo)板內(nèi)存起始地址為0,大小為256M 字節(jié)。
4.4 /chosen 節(jié)點
這個節(jié)點有一點特殊。通常,這里由Open Firmware 存放可變的環(huán)境信息,例如參數(shù),默認(rèn)輸入輸出設(shè)備。
這個節(jié)點中一般指定bootargs 及l(fā)inux,stdout-path 屬性值。bootargs 屬性設(shè)置為傳遞給內(nèi)核命令行的參數(shù)字符串。linux,stdout-path 常常為標(biāo)準(zhǔn)終端設(shè)備的節(jié)點路徑名,內(nèi)核會以此作為默認(rèn)終端。
U-Boot 在1.3.0 版本后添加了對扁平設(shè)備樹FDT 的支持,U-Boot 加載Linux 內(nèi)核、Ramdisk 文件系統(tǒng)(如果使用的話)和設(shè)備樹二進(jìn)制鏡像到物理內(nèi)存之后,在啟動執(zhí)行Linux內(nèi)核之前,它會修改設(shè)備樹二進(jìn)制文件。它會填充必要的信息到設(shè)備樹中,例如MAC 地址、PCI 總線數(shù)目等。U-Boot 也會填寫設(shè)備樹文件中的“/chosen”節(jié)點,包含了諸如串口、根設(shè)備(Ramdisk、硬盤或NFS 啟動)等相關(guān)信息。
4.5 片上系統(tǒng)SOC 節(jié)點
此節(jié)點用來描述片上系統(tǒng)SOC,如果處理器是SOC,則此節(jié)點必須存在。頂級SOC 節(jié)點包含的信息對此SOC 上的所有設(shè)備可見。節(jié)點名應(yīng)該包含此SOC 的單元地址,即此SOC內(nèi)存映射寄存器的基址。SOC 節(jié)點名以/soc的形式命名,例如MPC8349 的SOC
節(jié)點是"soc8349"。
在屬性中應(yīng)該指定device_type(固定為"soc")、ranges、bus-frequency 等屬性。ranges屬性值以的形式指定。SOC 節(jié)點還包含目標(biāo)板使用的每個SOC 設(shè)備子節(jié)點,應(yīng)該在設(shè)備樹中盡可能詳細(xì)地描述此SOC 上的外圍設(shè)備。如下給出帶有看門狗設(shè)備的SOC 節(jié)點DTS 示例。
soc8349@e0000000 {
#address-cells = <1>;
#size-cells = <1>;
device_type = "soc";
compatible = "simple-bus";
ranges = <0 e0000000 100000>; /* size 1MB */
reg = ;
bus-frequency = <0>; /* from bootloader */
{
device_type = "watchdog";
compatible = "mpc83xx_wdt";
reg = <200 100>; /* offset: 0x200 */
};
};
4.6 其他設(shè)備節(jié)點
分級節(jié)點用來描述系統(tǒng)上的總線和設(shè)備,類似物理總線拓?fù)?,能很方便的描述設(shè)備間的關(guān)系。對于系統(tǒng)上的每個總線和設(shè)備,在設(shè)備樹中都有其節(jié)點。對于這些設(shè)備屬性的描述和定義請詳細(xì)參考IEEE 1275 標(biāo)準(zhǔn)及本文參考文獻(xiàn)[2]。
設(shè)備樹的中斷系統(tǒng)稍顯復(fù)雜,設(shè)備節(jié)點利用interrupt-parent 和interrupts 屬性描述到中斷控制器的中斷連接。其中interrupt-parent 屬性值為中斷控制器節(jié)點的指針,#interrupts 屬性值描述可觸發(fā)的中斷信號,其值格式與中斷控制器的interrupt-cells 屬性值有關(guān)。一般
#interrupt-cells 屬性值為2,interrupts 屬性就對應(yīng)為一對描述硬件中斷號和中斷觸發(fā)方式的十六進(jìn)制值。
5 扁平設(shè)備樹編譯
根據(jù)嵌入式板的設(shè)備信息寫設(shè)備樹源碼文件(.dts)通常比較簡單,但是手寫二進(jìn)制的扁平設(shè)備樹(.dtb)就顯得比較復(fù)雜了。設(shè)備樹編譯器dtc 就是用來根據(jù)設(shè)備樹源碼的文本文件生成設(shè)備樹二進(jìn)制鏡像的。dtc 編譯器會對輸入文件進(jìn)行語法和語義檢查,并根據(jù)Linux內(nèi)核的要求檢查各節(jié)點及屬性,將設(shè)備樹源碼文件(.dts)編譯二進(jìn)制文件(.dtb),以保證內(nèi)核能正常啟動。dtc 編譯器的使用方法如下所示[6]:dtc [ -I dts ] [ -O dtb ] [ -o opt_file ] [ -V opt_version ] ipt_file2.6.25 版本之后的內(nèi)核源碼已經(jīng)包含了dtc 編譯器。在配置編譯內(nèi)核時選中CONFIG_DTC,會自動生成設(shè)備樹編譯器dtc。將編寫的目標(biāo)板設(shè)備樹文件mpc8349emitx.dts放到內(nèi)核源碼的arch/powerpc/boot/dts/目錄下,利用內(nèi)核Makefile 生成blob 的簡單規(guī)則,使
用以下命令亦可完成設(shè)備樹的dtc 編譯:
$ make mpc8349emitx.dtb
6 U-Boot 相關(guān)設(shè)置說明
為使 U-Boot 支持設(shè)備樹,需要在板子配置頭文件中設(shè)置一系列宏變量。如本文在
MPC8349E 處理器目標(biāo)板中移植的U-Boot 配置如下:
/* pass open firmware flat tree */
#define CONFIG_OF_LIBFDT 1
#undef CONFIG_OF_FLAT_TREE
#define CONFIG_OF_BOARD_SETUP 1
#define CONFIG_OF_HAS_BD_T 1
#define CONFIG_OF_HAS_UBOOT_ENV 1
啟動引導(dǎo)代碼U-Boot 在完成自己的工作之后,會加載Linux 內(nèi)核,并將扁平設(shè)備樹的
地址傳遞給內(nèi)核,其代碼形式如下:
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
if (of_flat_tree) { /* device tree; boot new style */
/*
* Linux Kernel Parameters (passing device tree):
* r3: pointer to the fdt, followed by the board info data
* r4: physical pointer to the kernel itself
* r5: NULL
* r6: NULL
* r7: NULL
*/
(*kernel) ((bd_t *)of_flat_tree, (ulong)kernel, 0, 0, 0);
/* does not return */
}
#endif
arch/powerpc 內(nèi)核的入口有且只有一個,入口點為內(nèi)核鏡像的起始。此入口支持兩種調(diào)用方式,一種是支持Open Firmware 啟動,另一種對于沒有OF 的引導(dǎo)代碼,需要使用扁平設(shè)備樹塊,如上示例代碼。寄存器r3 保存指向設(shè)備樹的物理地址指針,寄存器r4 保存為內(nèi)
核在物理內(nèi)存中的地址,r5 為NULL。其中的隱含意思為:假設(shè)開啟了mmu,那么這個mmu的映射關(guān)系是1:1 的映射,即虛擬地址和物理地址是相同的。
7 Linux 內(nèi)核對設(shè)備樹的解析
扁平設(shè)備樹描述了目標(biāo)板平臺中的設(shè)備樹信息。每個設(shè)備都有一個節(jié)點來描述其信息,每個節(jié)點又可以有子節(jié)點及其相應(yīng)的屬性。內(nèi)核源碼中include/linux/of.h 及drivers/of/base.c等文件中提供了一些Open Firmware API,通過這些API,內(nèi)核及設(shè)備驅(qū)動可以查找到相應(yīng)
的設(shè)備節(jié)點,讀取其屬性值,利用這些信息正確地初始化和驅(qū)動硬件。
圖2 內(nèi)核及驅(qū)動對扁平設(shè)備樹的解析
Fig2 Interaction from kernel and drivers with the FDT blob
8 結(jié)論
本文介紹了設(shè)備樹的起源及其優(yōu)點,進(jìn)而闡述了設(shè)備樹的數(shù)據(jù)存儲格式以及源碼描述語法,給出了設(shè)備樹的編譯方法,最后引出了移植過程中的U-Boot 相關(guān)設(shè)置說明及內(nèi)核的解析過程分析。設(shè)備樹為嵌入式系統(tǒng)向Linux 內(nèi)核傳遞參數(shù)的動態(tài)接口,本文以MPC8349E
處理器目標(biāo)板上的DTS 移植經(jīng)歷作總結(jié),希望對嵌入式PowerPC Linux 開發(fā)者具有一定的參考價值,可以加快嵌入式PowerPC Linux 開發(fā)中的設(shè)備樹DTS 移植過程。
?
學(xué)會Linux設(shè)備樹dts移植
- Linux(206513)
- DTS(15990)
- 設(shè)備樹(3038)
相關(guān)推薦
Linux驅(qū)動入門-設(shè)備樹DTS概念介紹
硬件的相應(yīng)信息都會寫在.dts為后綴的文件中,每一款硬件可以單獨寫一份xxxx.dts,一般在Linux源碼中存在大量的dts文件,對于 arm 架構(gòu)可以在arch/arm/boot/dts找到相應(yīng)
2023-08-20 11:02:31649
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會因為支持板子和驅(qū)動越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-11-29 17:58:57
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會因為支持板子和驅(qū)動越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-10-19 15:53:29
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會因為支持板子和驅(qū)動越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-11-02 13:46:14
Linux內(nèi)核的設(shè)備樹DTS使用方法詳解
1、設(shè)備樹的簡介Linux 內(nèi)核3.X之后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板級細(xì)節(jié)的代碼(比如platform_device
2022-05-06 16:14:31
Linux系統(tǒng)移植篇10:Linux內(nèi)核網(wǎng)卡驅(qū)動移植
/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi添加網(wǎng)卡設(shè)備樹配置。修改arch/arm/boot/dts/stm32mp15xx-fsmp1x.dtsi文件在文件末尾添加如下內(nèi)容:eernet0 {status
2021-09-14 09:19:51
Linux系統(tǒng)移植篇3:STM32MP1微處理器之設(shè)備樹簡介
(全文見附件)設(shè)備樹詳解簡介在傳統(tǒng)Linux內(nèi)核中,ARM架構(gòu)的板極硬件細(xì)節(jié)過多地被硬編碼在arch/arm/plat-xxx和arch/arm/mach-xxx,比如板上的platform設(shè)備
2021-08-26 11:08:21
Linux系統(tǒng)移植篇8:STM32MP1微處理器之Linux內(nèi)核配置及編譯
出一個相對簡單的設(shè)備樹文件,確保內(nèi)核可以正常啟動。后續(xù)各個外設(shè)移植時會陸續(xù)增加文件的相關(guān)內(nèi)容。在arch/arm/boot/dts/ 目錄下新建stm32mp15xx-fsmp1x.dtsi:將編譯好
2021-09-10 09:19:55
Linux系統(tǒng)移植篇9:Linux內(nèi)核eMMC驅(qū)動移植
總線,當(dāng)前所使用的設(shè)備樹文件中沒有sdmmc2的支持,所以需要增加相關(guān)內(nèi)容才能正常驅(qū)動eMMC。由于在使STM32MP1芯片很多管腳為多功能復(fù)用管腳,且很多管腳具備同樣的功能,所以移植eMMC時需要
2021-09-13 10:30:25
dts文件應(yīng)該修改uboot或linux中的imx8mp-evk.dts嗎?
我可以知道 dts 文件 (imx8mp-evk.dts) 我應(yīng)該在 uboot (arch/arm/dts/) 或 linux (arch/arm64/boot/dts/freescale/) 中修改它嗎?為什么在不同的部分有 2 個 dts 文件?(能簡單介紹一下嗎?)謝謝。
2023-03-17 08:18:59
linux設(shè)備樹詳解
linux設(shè)備樹詳解 2003 年畢業(yè)于中國科學(xué)技術(shù)大學(xué),電子專業(yè)、軟件專業(yè)...
2021-12-23 08:16:32
移植5.4內(nèi)核到迅為I.MX6ULL開發(fā)板
下生成“zImage”鏡像文件,如下圖所示: 編譯生成了鏡像文件以后,接下來我們需要編譯設(shè)備樹文件。首先我們進(jìn)到“arch/arm/boot/dts”目錄,這里面保存著imx6ull的默認(rèn)設(shè)備樹配置文件。然后我們輸入
2020-06-29 10:13:38
移植linux4.14內(nèi)核到四核Exynos4412開發(fā)板
官方網(wǎng)站是https://www.kernel.org/ 如下圖所示我們進(jìn)入linux官網(wǎng),為了和之前的設(shè)備樹教程統(tǒng)一,這里我們選擇4.14.2的內(nèi)核版本。下載完成后,我們放在ubuntu里面?zhèn)溆?,如?/div>
2019-11-19 11:36:25
設(shè)備樹開發(fā)的相關(guān)資料下載
tree source(dts)設(shè)備樹代碼device tree source, includeDTB(dtsi)????更通用的設(shè)備樹代碼,也就是相同芯片但不同平臺都可以使用的代碼device tree
2021-12-24 06:40:31
設(shè)備樹的相關(guān)資料分享
設(shè)備樹詳解簡介在傳統(tǒng)Linux內(nèi)核中,ARM架構(gòu)的板極硬件細(xì)節(jié)過多地被硬編碼在arch/arm/plat-xxx和arch/arm/mach-xxx,比如板上的platform設(shè)備、resource
2021-12-01 07:46:13
設(shè)備樹錯誤
你好我正在嘗試在xilinx 12.4 EDK和SDK中生成DTS文件。我從xilinx git服務(wù)器https://github.com/xilinx下載了設(shè)備樹生成,通過添加它們作為
2020-04-10 10:14:49
設(shè)備樹(Device Tree)
設(shè)備樹介紹:設(shè)備樹是一個描述設(shè)備硬件資源的文件,該文件是由節(jié)點組成的樹形結(jié)構(gòu)。如下:/ {node1 {a-string-property = "A string"
2017-03-14 14:36:24
ARM Linux設(shè)備樹的組成和結(jié)構(gòu)
編譯后的設(shè)備樹傳遞給 Linux 內(nèi)核。DTS 、 DTC 和 DTB 等1.DTS文件 .dts 是一種 ASCII 文本格式的設(shè)備樹描述,此文本格式非常人性化,適合人類的閱讀習(xí)慣。基本上,在
2022-05-11 16:28:03
MCP251X can驅(qū)動移植nuc980采樣用設(shè)備樹配置時,中斷如何配置設(shè)備樹?
MCP251X can驅(qū)動移植nuc980 采樣用設(shè)備樹配置時,中斷如何配置設(shè)備樹?
spi0: spi@b0061000 {
status = \"okay\"
2024-01-17 06:43:27
OKMX6UL-C的uboot默認(rèn)是加載那個DTB的,修改設(shè)備樹應(yīng)該是修改那個dts文件?
您好:OKMX6UL-C的uboot默認(rèn)是加載那個DTB的,修改設(shè)備樹應(yīng)該是修改那個dts文件?
2022-11-30 07:33:46
QCVS設(shè)備樹編輯器不工作怎么解決?
我將 Code Warrior 用于 PA 10.5.1 和 QCVS 4.5。
我正在嘗試使用硬件設(shè)備樹功能,但它給我?guī)砹寺闊?聯(lián)機(jī)幫助說 GUI 編輯器提供了用于添加、編輯和刪除節(jié)點的插入
2023-05-06 08:45:19
RK3288 dts和dtsi介紹
基本上就是畫一棵電路板上(CPU、總線、設(shè)備組成)的樹,Bootloader 會將這棵樹傳遞給內(nèi)核,然后內(nèi)核可以識別這棵樹,并根據(jù)它展開出 Linux 內(nèi)核中的 platform_device
2020-02-11 11:43:37
RK3288設(shè)備樹適配LVDS屛的資料推薦
1、RK3288適配LVDS屛記錄 在設(shè)備樹增加LVDS相關(guān)節(jié)點:源碼/kernel/arch/arm/boot/das/rk3288.dts添加背光節(jié)點添加LVDS節(jié)點RK3288 有2個視覺輸出處理器yopbvoplvopb 支持4K高清輸出vopl支持2K視頻輸出原作者:wylwws
2022-05-13 15:01:25
STM32MP157 Linux系統(tǒng)移植開發(fā)篇11:Linux HDMI驅(qū)動移植
/devicetree/bindings/i2c/i2c-stm32.txt內(nèi)核中ST對STM32MP15x系列芯片的設(shè)備樹資源了做了定義,可參見:arch/arm/boot/dts
2021-09-15 11:55:04
STM32MP157 Linux系統(tǒng)移植開發(fā)篇12:Linux內(nèi)核MIPI LCD驅(qū)動移植
/devicetree/bindings/pwm/pwm-stm32.txt內(nèi)核中ST對STM32MP15x系列芯片的設(shè)備樹資源了做了定義,可參見:arch/arm/boot/dts
2021-09-16 16:53:52
STM32MP157 Linux系統(tǒng)移植開發(fā)篇13:Linux內(nèi)核5寸觸摸屏驅(qū)動移植
/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi修改設(shè)備樹修改arch/arm/boot/dts
2021-09-18 11:50:40
STM32MP157 Linux系統(tǒng)移植開發(fā)篇14:Linux內(nèi)核RGB LCD驅(qū)動移植
= ;brightness-levels = ;default-brightness-level = ;status = "okay";};2.實驗?zāi)康氖煜せ?b class="flag-6" style="color: red">Linux操作系統(tǒng)下的攝像頭設(shè)備驅(qū)動移植
2021-09-28 11:22:13
STM32MP157 Linux系統(tǒng)移植開發(fā)篇15:Linux內(nèi)核7寸觸摸屏驅(qū)動移植
/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi過程與5寸觸摸屏移植過程相同,如果步驟重復(fù)請?zhí)^。修改設(shè)備樹修改arch/arm/boot/dts
2021-09-29 08:45:20
TI AM335x_linux-3.14.43內(nèi)核移植筆記
Device Tree牽涉面比較廣,即增加了新的用于描述設(shè)備硬件信息的文本格式(即.dts文件),又增加了編譯這一文本的工具,同時Bootloader也需要支持將編譯后的Device Tree傳遞給Linux
2018-06-04 15:49:15
am437x基于linux4.1.18平臺移植按鍵驅(qū)動失敗
您好,我在am437x平臺上使用的是linux4.1.18內(nèi)核,添加按鍵驅(qū)動總是失敗。我所做的步驟是:
1,修改設(shè)備樹xxx.dts,紅色為新增的
2,在設(shè)備樹中配置對應(yīng)的pin_mux
3,將
2018-06-01 08:24:04
arm linux設(shè)備樹都包括哪些基本信息呢
設(shè)備樹)設(shè)備樹文件一般放置在arch/arm/boot/dts目錄中DTS文件一個dts文件對應(yīng)一個ARM的設(shè)備為了簡化把SoC公用的部分或多個設(shè)備共用的部分一般提煉為.dtsi。類似于C頭文件。其他
2022-05-24 16:04:28
imx8qxp:mux_mode可以通過linux dts設(shè)置嗎?
imx8qxp可以僅通過 linux dts 設(shè)置 mux_mode,還是必須先通過 u-boot 或 scfw 設(shè)置?在 linux 設(shè)備樹 pinctrl 中設(shè)置位 29-27(多路復(fù)用模式
2023-04-06 07:04:23
「正點原子Linux連載」第三十七章Linux內(nèi)核移植
imx6ull-alientek-emmc.dts.dts是設(shè)備樹源碼文件,編譯Linux的時候會將其編譯為.dtb文件。imx6ull-alientek-emmc.dts創(chuàng)建好以后我們還需要修改文件
2020-03-17 15:40:28
「正點原子Linux連載」第四十三章Linux設(shè)備樹(一)
,但是我們在前面移植Linux的時候卻一直在使用.dtb文件,那么DTS和DTB這兩個文件是什么關(guān)系呢?DTS是設(shè)備樹源碼文件,DTB是將DTS編譯以后得到的二進(jìn)制文件。將.c文件編譯為.o需要用到gcc
2020-03-19 10:18:28
「正點原子Linux連載」第四十三章Linux設(shè)備樹(二)
1)實驗平臺:正點原子Linux開發(fā)板2)摘自《正點原子I.MX6U嵌入式Linux驅(qū)動開發(fā)指南》關(guān)注官方微信號公眾號,獲取更多資料:正點原子第四十三章Linux設(shè)備樹43.3.5 向節(jié)點追加或修改
2020-03-19 10:19:40
【Z-turn Board試用體驗】+ 設(shè)備樹的創(chuàng)建
設(shè)備樹用于硬件和軟件之間的信息交互,也就是將Zynq開發(fā)板的硬件信息傳遞給linux內(nèi)核,避免在linux內(nèi)核中硬編碼而影響在其他平臺上的可移植性。設(shè)備樹一般以兩種文件格式存在,一個是dts文件
2015-07-01 15:24:46
【正點原子FPGA連載】第二十四章Linux設(shè)備樹-領(lǐng)航者ZYNQ之linux開發(fā)指南
多說了,前面講解Uboot移植、Linux內(nèi)核移植的時候已經(jīng)無數(shù)次的提到如何使用.dtb文件了(uboot中使用bootz或bootm命令向Linux內(nèi)核傳遞二進(jìn)制設(shè)備樹文件(.dtb))。24.3dts
2020-09-16 15:31:31
【正點原子FPGA連載】第十八章Linux內(nèi)核移植-領(lǐng)航者ZYNQ之linux開發(fā)指南
Linux支持設(shè)備樹,每個開發(fā)板都有一個對應(yīng)的設(shè)備樹文件。Xilinx的ZYNQ系列芯片的所有設(shè)備樹文件夾都存放在arch/arm/boot/dts目錄下,在這個目錄下有個名為
2020-09-14 15:42:54
【米爾-TIAM62開發(fā)板-接替335x-試用評測】+(三)手把手創(chuàng)建Uboot設(shè)備樹與內(nèi)核設(shè)備樹實戰(zhàn)
││└─ MYD-YM62X板的設(shè)備樹文件
││├─ myb-am62x-dev.dts
││├─ myb-am62x-r5-dev.dts
││└─ myb-am62x-dev-u-boot.dtsi
│└─ Linux
2023-11-28 09:54:17
從imx8mp-evk.dts捕獲的設(shè)備樹問題求解
下面是從 imx8mp-evk.dts 捕獲的設(shè)備樹。我想知道如果我的定制板沒有 HDMI,下面紅色突出顯示的設(shè)備樹是否仍然需要?&iomuxc { pinctrl-names
2023-03-15 06:42:18
使用Developer Package和Distribution Package編譯的設(shè)備樹的區(qū)別是什么?
我想知道使用 Developer Package 和 Distribution Package 編譯的設(shè)備樹的區(qū)別。的我知道當(dāng)我創(chuàng)建自己的機(jī)器時,我可以通過以下兩種方法創(chuàng)建設(shè)備樹。 方法 1
2023-01-10 07:18:43
使用官方sdk,內(nèi)核下設(shè)備樹執(zhí)行不正確,Linux下外設(shè)沒有任何變化,請問是哪個環(huán)節(jié)出了問題?
設(shè)計,有部分修改。移植過程中發(fā)現(xiàn)無論怎么改../dts文件夾下的設(shè)備樹文件,Linux下外設(shè)沒有任何變化,懷疑uboot階段雖然加載了.dtb文件但是內(nèi)核并沒有按加載的設(shè)備樹執(zhí)行。做了個實驗,驗證
2018-06-04 02:17:00
關(guān)于ARM Linux系統(tǒng)的設(shè)備樹Device Tre資料介紹
的Device Tree傳遞給Linux內(nèi)核。DTS (device tree source).dts文件是一種ASCII 文本格式的Device Tree描述,此文本格式非常人性化,適合人類的閱讀習(xí)慣
2022-05-06 16:42:24
內(nèi)核設(shè)備樹的相關(guān)資料分享
1 硬件基礎(chǔ)在我們的開發(fā)板上集成了一顆RGB燈組,引腳連接著主控的三路PWM輸出,因此我們可以通過三路PWM輸出進(jìn)行調(diào)色的功能,硬件原理圖如下:2 內(nèi)核設(shè)備樹我們把設(shè)備樹補(bǔ)丁文件放在目錄
2021-12-24 07:00:48
在設(shè)備樹中iomux中添加復(fù)用gpio引腳
IMX6ULRM.pdf 手冊中對應(yīng)寄存器。3.在設(shè)備樹中 iomux 中添加復(fù)用 gpio 引腳如下:同時修改設(shè)備樹文件中,出廠的源碼中將 csi 引腳用作攝像頭。將復(fù)用功能去掉或者 disabled。如下圖:其中 csi 引腳也可復(fù)用為 sim2.也將其改為 disa...
2022-01-12 08:30:09
在uboot移植ili9881c設(shè)備的屏幕,無圖片顯示,屏幕為一直灰色是怎么回事?
嘗試在uboot移植ili9881c設(shè)備的屏幕,屏幕接口為mipi,參考stm32mp157c-ev1.dts的
compatible = \"raydium,rm68200\"
2024-03-08 06:29:20
在哪里可以找到s32g399aevb平臺的u-boot設(shè)備樹?
大家好,我已經(jīng)為 s32g399aevb 平臺構(gòu)建了 auto_yocto_bsp release/bsp33.0。構(gòu)建成功,但是 u-boot 設(shè)備樹文件是空的。 我檢查了
2023-03-28 08:21:05
在工作區(qū)中找不到我的內(nèi)核設(shè)備樹如何解決?
linux內(nèi)核設(shè)備樹。運行“devtool 修改虛擬/內(nèi)核”命令。工作區(qū)目錄創(chuàng)建成功。但我在下面的路徑中找不到我的設(shè)備樹。./workspace/sources/linux-stm32mp/arch/arm
2022-12-07 07:13:34
基于Linux操作系統(tǒng)下的塊設(shè)備驅(qū)動是如何完成移植的?
驅(qū)動eMMC的原理是什么?基于Linux操作系統(tǒng)下的塊設(shè)備驅(qū)動是如何完成移植的?
2022-02-28 09:45:04
基于Android7.1 高通8953 平臺下零死角玩轉(zhuǎn)設(shè)備樹DTS【2018更新】【申精】
設(shè)備樹DTS】更新內(nèi)容:【創(chuàng)科之龍_安卓開發(fā)】第01課_為什么引用linux設(shè)備樹和對比優(yōu)勢【創(chuàng)科之龍_安卓開發(fā)】第02課_如何在Linux-3.x內(nèi)核編譯設(shè)備樹【創(chuàng)科之龍_安卓開發(fā)】第03課
2018-07-09 20:20:05
外設(shè)地址差異Linux DTS vs NXP UG是什么意思?
請有人解釋一下……我正在為我的 NXP SoC 和 COM/板查看 DTS,試圖找到一些外圍設(shè)備并檢查地址。我無法理解的是我在 DTS/Linux 地址中看到的與它們在 SoC 用戶指南中看到的內(nèi)容
2023-03-29 06:28:12
如何使用yocto連接cubeMX生成的dts文件?
大家好,我正在使用帶有 openSTLinux-5.4-dunfell-eglf 發(fā)行版的 stm32mp157f-dk2。我想使用 cubeMX 配置我的設(shè)備樹。生成的 dts 文件對我來說似乎沒問題。但是,我怎樣才能告訴 yocto 使用我新生成的設(shè)備樹呢?
2022-12-13 07:25:50
如何修改內(nèi)核設(shè)備樹
本文檔介紹了內(nèi)核設(shè)備樹的位置和包含關(guān)系
1.內(nèi)核設(shè)備樹位置
文件
備注
dts
longan/device/config/chips/t507/configs/evb/board.dts
2023-12-14 13:42:56
如何在設(shè)備樹中創(chuàng)建UART接口?
我想在具有 openstlinux-20-02-19 生態(tài)系統(tǒng)的 STM32MP157C-DK2 上使用帶 A7 的 UART7。因此,我嘗試在設(shè)備樹中包含/啟用 UART 接口,但它無法正常工作
2023-01-30 07:12:12
如何將mma8452驅(qū)動程序添加到Linux設(shè)備樹?
我目前正在嘗試通過將 mma8452 驅(qū)動程序添加到 Linux 設(shè)備樹來為我的 mma8451Q 加速度計實現(xiàn)它。 目前我正在創(chuàng)建一個設(shè)備樹覆蓋文件 (dtbo),其中包含添加到描述加速度計的設(shè)備
2023-03-21 06:17:12
如何將uboot-2020和Linux5.4.1移植到OK210?
大學(xué)期間買了OK210開發(fā)板一直吃灰,最近拿出來玩玩。網(wǎng)上的移植的資料都比較老,uboot和linux內(nèi)核的變化比較大,尤其是官方給的內(nèi)核都沒有設(shè)備樹的支持。移植成功了uboot的網(wǎng)卡驅(qū)動并從
2022-01-13 07:31:31
如何將zImage和設(shè)備樹文件放在rootfs的/boot目錄中?
我正在研究 QP saber 板。
我真的很想將 zImage 和設(shè)備樹文件放在我的 rootfs 的 /boot 目錄中。
我已經(jīng)有了自己的層和 linux-imx_*.bbappend 文件并
2023-04-28 07:34:24
如何編譯設(shè)備樹和Linux內(nèi)核鏡像文件
實驗任務(wù):編譯設(shè)備樹和Linux內(nèi)核鏡像文件,拷貝到sd卡中,再從sd卡中拷貝到nand閃存對應(yīng)的分區(qū)中,最后nand啟動,進(jìn)入linux系統(tǒng)本篇博客內(nèi)容:1.實驗流程2.注意事項1.實驗流程1.
2021-12-20 07:11:34
如何解決zephyr添加驅(qū)動到設(shè)備樹及遇到的一些問題
基礎(chǔ)架構(gòu)支持a. 添加特定于體系結(jié)構(gòu)的DTS目錄(如果尚未存在)。示例:ARM的 dts/arm/soc系列(已存在)b. 為基礎(chǔ)SoC添加目標(biāo)特定設(shè)備樹文件。這些應(yīng)該是.dtsi文件,以包含在特定
2021-12-10 06:26:57
如何解決擴(kuò)展CAN芯片MCP2515的驅(qū)動移植問題?
擴(kuò)展芯片,能否提供一下MCP2515驅(qū)動設(shè)備樹文件,或者移植方案。下面是我們的硬件設(shè)計,用的是SPI2,中斷管腳是G20_SPI2_CS1BR.以下為例子,設(shè)備樹linux-3.10/arch/arm
2022-01-04 07:02:58
安卓(android)6.0高通平臺下設(shè)備樹專題視頻講解【全國獨家+設(shè)備樹視頻教程+絕頂視頻】
哪些神秘的東西?3.【創(chuàng)科之龍_安卓開發(fā)】第02節(jié)_如何在Linux-3.x內(nèi)核編譯設(shè)備樹4.【創(chuàng)科之龍_安卓開發(fā)】第03節(jié)_如何對設(shè)備樹(DTB)進(jìn)行反匯編設(shè)備樹源碼(DTS)5.【創(chuàng)科之龍_安卓
2016-10-06 22:55:27
我應(yīng)該將dts文件放在哪里以使用yocto構(gòu)建linux映像呢?
的“Pin Reserved”中添加并設(shè)置(作為數(shù)字輸出)引腳 PF2(名為“Test”)為“Cortex-A7 non secure”。然后我生成了代碼,但是 dts 文件沒有改變,我在 A7 的設(shè)備樹中
2022-12-23 09:48:58
極度詳細(xì)之Linux官方最新版本5.4移植教程
”目錄下生成“zImage”鏡像文件,如下圖所示: 編譯生成了鏡像文件以后,接下來我們需要編譯設(shè)備樹文件。首先我們進(jìn)到“arch/arm/boot/dts”目錄,這里面保存著imx6ull的默認(rèn)設(shè)備樹
2020-06-29 11:15:12
淺析嵌入式linux中ARM板設(shè)備樹路徑設(shè)備樹的信息
嵌入式linux中ARM板設(shè)備樹路徑設(shè)備樹的信息——根節(jié)點cd /sys/firmware/devicetree/base/。platform_device 的信息在設(shè)備樹的dts文件里,帶有
2021-12-14 06:19:10
深入研究徹底掌握設(shè)備樹
這節(jié)主要講只想使用設(shè)備樹但是不想深入研究怎么辦,簡單記錄一下,因為我們還是要深入研究徹底掌握設(shè)備樹的。如果沒有深入研究設(shè)備樹,那么只能希望寫驅(qū)動程序的人:提供了文檔,程序,并且驅(qū)動程序?qū)懙煤眠m配性強(qiáng)
2022-02-17 07:05:45
請問rt設(shè)備框架與linux設(shè)備樹的優(yōu)劣區(qū)別有哪些?
使用 rt 半年了,印象里網(wǎng)上的資料都說 rt 是類似于 linux 的,感覺也像,但是又感覺有點不一樣,就是 linux 的設(shè)備樹里換個設(shè)備好像就改一點點數(shù)據(jù)就行了,rt 這里好像不怎么容易。
2022-05-23 09:37:09
請問關(guān)于u***轉(zhuǎn)串口的設(shè)備樹文件是哪個
需求是修改源碼把原來的一個USB擴(kuò)展4串口卡改為 4個USB擴(kuò)展16個串口卡,具體步驟是不是修改設(shè)備樹以及重寫u***驅(qū)動?驅(qū)動文件 linux4.1.15/drivers/tty/serial
2022-01-07 06:05:15
請問在rockchip中如何單獨編譯生成新的設(shè)備樹
/arm64/Makefile:127: recipe for target ‘dtbs’ failed make: *** [dtbs] Error 2 在rockchip中無法找到px30-ad-d6-anx6345.dtb的文件,請問如何單獨編譯生成新的設(shè)備樹?
2022-04-02 14:16:07
請問如何學(xué)會Linux?
重賞如何學(xué)會Linux?前輩們,急學(xué)Linux,如何一個月內(nèi)學(xué)會,但不要求精通,只希望能入門即可!
2020-04-29 18:19:40
迅為-IMX6開發(fā)板設(shè)備樹-Linux內(nèi)核配置兩路can
1、修改Android6 源碼的設(shè)備樹文件imx6qdl-sabresd.dtsi,添加如下圖所示的can2節(jié)點,藍(lán)色字體是添加的內(nèi)容。2、修改完后,保存退出。然后重新編譯 Linux 內(nèi)核,參考第
2021-06-24 10:00:42
迅為4412開發(fā)板Linux設(shè)備樹的鏡像燒寫和源碼簡單優(yōu)化教程
1 燒寫:燒寫和4412默認(rèn)鏡像的燒寫類似,使用fastboot。先更新uboot,用4412默認(rèn)uboot更新支持設(shè)備樹的uboot用支持設(shè)備樹的uboot燒寫。進(jìn)入支持設(shè)備樹的uboot控制臺
2019-05-09 16:36:29
迅為iMX6開發(fā)板- 設(shè)備樹內(nèi)核-設(shè)備樹相關(guān)文件簡要分析
”和“imx6q-topeet_9.7inch.dts”這三個。上圖中,這三個設(shè)備樹文件的名稱來看,應(yīng)該是為了支持不同分辨率的屏幕的配置,除了屏幕部分的,其它部分應(yīng)該是相同的,所以這里只需要分析其中一個即可(實際情況就是這樣的,感興趣可以自己對比
2020-10-21 10:51:51
迅為iMX6開發(fā)板-設(shè)備樹內(nèi)核-注冊設(shè)備例程
本文檔主要講解在 iMX6Q/D/PLUS 開發(fā)板的設(shè)備樹內(nèi)核(4.1.15)源碼中,注冊設(shè)備需要在設(shè)備樹文件“arch/arm/boot/dts/imx6qdl-sabresd.dtsi”中添加設(shè)備
2020-11-18 11:25:32
Linux-2.6.25移植
Linux-2.6.25移植
4月17號linux-2.6.25穩(wěn)定版發(fā)布,我們(偉研科技)http://www.gzweiyan.com 將該內(nèi)核移植到S3C2440平臺上,下面是我們移植的第一步:
編譯內(nèi)核:1) 解壓
2009-09-20 18:15:0848
嵌入式Linux在s3c2440上的移植研究
針對嵌入式Linux在s3c2440上的移植目的,通過將嵌入式Linux 內(nèi)核移植到 S3C2440 處理器的目標(biāo)板上, 提出了嵌入式Linux 移植的方法與具體實現(xiàn)過程。編譯生成的內(nèi)核在嵌入式系統(tǒng)中運行穩(wěn)定
2011-08-15 11:30:1267
移植Linux到晶心平臺
鑒于越來越多使用者將Linux移植到晶心平臺(Andes Embedded)上(AndesCore N12或N10),本文的目的在協(xié)助使用者快速、有效率的將Linux 移植到自建的FPGA板子上(CPU是AndesCore 的 N12或N10)。筆者曾協(xié)助
2012-04-11 10:10:24841
ZedBoard移植嵌入式Linux教程(4)
設(shè)備樹用于硬件和軟件之間的信息交互,也就是將ZedBoard的硬件信息傳遞給linux內(nèi)核,避免在linux內(nèi)核中硬編碼而影響在其他平臺上的可移植性。設(shè)備樹一般以兩種文件格式存在,一個是dts文件
2017-02-09 03:06:11495
《Linux設(shè)備驅(qū)動開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動的移植
《Linux設(shè)備驅(qū)動開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動的移植
2017-10-27 10:58:139
[深度理解嵌入式linux系統(tǒng)移植]深度理解嵌入式linux系統(tǒng)移植
-linux內(nèi)核工程與編譯系統(tǒng)第七章-linux內(nèi)核啟動流程分析第八章-linux移植準(zhǔn)備及最小系統(tǒng)構(gòu)建第九章-linux網(wǎng)卡驅(qū)動移植第十章-linux混雜設(shè)備驅(qū)動第十一章-linuxI2C驅(qū)動移植第十二章-linuxSPI驅(qū)動移植第十三章-Nand Flash 驅(qū)動移植第十四章-SD.
2021-11-02 13:21:2116
Linux內(nèi)核移植教程
半導(dǎo)體廠商會從 Linux內(nèi)核官網(wǎng)下載某個版本,將其移植到自己的 CPU上,測試成功后就會將其開放給該半導(dǎo)體廠商的 CPU開發(fā)者。開發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。
2023-04-19 11:20:32701
Linux驅(qū)動移植 Linux系統(tǒng)架構(gòu)優(yōu)點
系統(tǒng)移植 linux 驅(qū)動移植 移植是說同樣的一個 linux 操作系統(tǒng),我們可以跑到不同的硬件上面,我們把操作系統(tǒng)移植到不同的硬件上面,這個過程叫做移植。設(shè)備驅(qū)動移植步驟,如下圖所示: 應(yīng)用軟件
2023-07-27 17:06:06516
評論
查看更多