設(shè)備樹的引入減少了內(nèi)核為支持新硬件而需要的改變,提高代碼重用,加速了Linux支持包的開發(fā),使得單個(gè)內(nèi)核鏡像能支持多個(gè)系統(tǒng)。作為U-Boot 和Linux 內(nèi)核之間的動(dòng)態(tài)接口,本文闡述了設(shè)備樹的數(shù)據(jù)存儲(chǔ)格式以及源碼描述語(yǔ)法,進(jìn)而分析了U-Boot 對(duì)扁平設(shè)備樹的支持設(shè)置,Linux 內(nèi)核對(duì)設(shè)備樹的解析流程。
IBM、Sun 等廠家的服務(wù)器最初都采用了Firmware(一種嵌入到硬件設(shè)備中的程序,用于提供軟件和硬件之間的接口),用于初始化系統(tǒng)配置,提供操作系統(tǒng)軟件和硬件之間的接口,啟動(dòng)和運(yùn)行系統(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,在運(yùn)行時(shí)構(gòu)建系統(tǒng)硬件的設(shè)備樹信息傳遞給內(nèi)核,進(jìn)行系統(tǒng)的啟動(dòng)運(yùn)行[1]。這樣做的好處有,減少內(nèi)核對(duì)系統(tǒng)硬件的嚴(yán)重依賴,利于加速支持包的開發(fā),降低硬件帶來的變化需求和成本,降低對(duì)內(nèi)核設(shè)計(jì)和編譯的要求。
隨著 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)核在運(yùn)行時(shí),需要知道硬件的一些相關(guān)信息。對(duì)于使用ARCH=powerpc 參數(shù)編譯的內(nèi)核鏡像,這個(gè)信息需要基于Open Firmware 規(guī)范,以設(shè)備樹的形式存在[3]。這樣內(nèi)核在啟動(dòng)時(shí)讀取掃描Open Firmware 提供的設(shè)備樹,從而獲得平臺(tái)的硬件設(shè)備信息,搜索匹配的設(shè)備驅(qū)動(dòng)程序并將該驅(qū)動(dòng)程序綁定到設(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平臺(tái)的千變?nèi)f化,吸收標(biāo)準(zhǔn)Open Firmware 的優(yōu)點(diǎn),U-Boot 引入了扁平設(shè)備樹FDT 這樣的動(dòng)態(tài)接口,使用一個(gè)單獨(dú)的FDT blob(二進(jìn)制大對(duì)象,是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器)存儲(chǔ)傳遞給內(nèi)核的參數(shù)[3]。一些確定信息,例如cache 大小、中斷路由等直接由設(shè)備樹提供,而其他的信息,例如eTSEC 的MAC 地址、頻率、PCI 總線數(shù)目等由U-Boot 在運(yùn)行時(shí)修改。U-Boot 使用扁平設(shè)備樹取代了bd_t,而且也不再保證對(duì)bd_t 的后向兼容。
2 設(shè)備樹概念
簡(jiǎn)單的說,設(shè)備樹是一種描述硬件配置的樹形數(shù)據(jù)結(jié)構(gòu),有且僅有一個(gè)根節(jié)點(diǎn)[4]。它包含了有關(guān)CPU、物理內(nèi)存、總線、串口、PHY 以及其他外圍設(shè)備信息等。該樹繼承了OpenFirmware IEEE 1275 設(shè)備樹的定義。操作系統(tǒng)能夠在啟動(dòng)時(shí)對(duì)此結(jié)構(gòu)進(jìn)行語(yǔ)法分析,以此配置內(nèi)核,加載相應(yīng)的驅(qū)動(dòng)。
3 設(shè)備樹存儲(chǔ)格式
U-Boot 需要將設(shè)備樹在內(nèi)存中的存儲(chǔ)地址傳給內(nèi)核。該樹主要由三大部分組成:頭(Header)、結(jié)構(gòu)塊(Structure block)、字符串塊(Strings block)。設(shè)備樹在內(nèi)存中的存儲(chǔ)布局圖1 如下:
圖1 設(shè)備樹存儲(chǔ)格式圖
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 如下。這個(gè)結(jié)構(gòu)中的值都是以大端模式表示,并且偏移地址是相對(duì)于設(shè)備樹頭的起始地址計(jì)算的。
3.2 結(jié)構(gòu)塊(structure block)
扁平設(shè)備樹結(jié)構(gòu)塊是線性化的樹形結(jié)構(gòu),和字符串塊一起組成了設(shè)備樹的主體,以節(jié)點(diǎn)形式保存目標(biāo)板的設(shè)備信息。在結(jié)構(gòu)塊中,節(jié)點(diǎn)起始標(biāo)志為常值宏OF_DT_BEGIN_NODE,節(jié)點(diǎn)結(jié)束標(biāo)志為宏OF_DT_END_NODE;子節(jié)點(diǎn)定義在節(jié)點(diǎn)結(jié)束標(biāo)志前。一個(gè)節(jié)點(diǎn)可以概括為以O(shè)F_DT_BEGIN_NODE 開始,包括節(jié)點(diǎn)路徑、屬性列表、子節(jié)點(diǎn)列表,最后以O(shè)F_DT_END_NODE 結(jié)束的序列,每一個(gè)子節(jié)點(diǎn)自身也是類似的結(jié)構(gòu)。
3.3 字符串塊(Strings block)
為了節(jié)省空間,將一些屬性名,尤其是那些重復(fù)冗余出現(xiàn)的屬性名,提取出來單獨(dú)存放到字符串塊。這個(gè)塊中包含了很多有結(jié)束標(biāo)志的屬性名字符串。在設(shè)備樹的結(jié)構(gòu)塊中存儲(chǔ)了這些字符串的偏移地址,這樣可以很容易地查找到屬性名字符串。字符串塊的引入節(jié)省了嵌入式系統(tǒng)較為緊張的存儲(chǔ)空間。
4 設(shè)備樹源碼DTS 表示
設(shè)備樹源碼文件(.dts)以可讀可編輯的文本形式描述系統(tǒng)硬件配置設(shè)備樹,支持C/C++方式的注釋,該結(jié)構(gòu)有一個(gè)唯一的根節(jié)點(diǎn)“/”,每個(gè)節(jié)點(diǎn)都有自己的名字并可以包含多個(gè)子節(jié)點(diǎn)。設(shè)備樹的數(shù)據(jù)格式遵循了Open Firmware IEEE standard 1275。本文只簡(jiǎn)述設(shè)備樹數(shù)據(jù)布局及語(yǔ)法,Linux 板級(jí)支持包開發(fā)者應(yīng)該詳細(xì)參考IEEE 1275 標(biāo)準(zhǔn)[5]及其他文獻(xiàn)[2] [4]。為了說明,首先給出基于PowerPC MPC8349E 處理器的最小系統(tǒng)的設(shè)備樹源碼示例。
可以看到,這個(gè)設(shè)備樹中有很多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都指定了節(jié)點(diǎn)單元名稱。每一個(gè)屬性后面都給出相應(yīng)的值。以雙引號(hào)引出的內(nèi)容為ASCII 字符串,以尖括號(hào)給出的是32 位的16 進(jìn)制值。這個(gè)樹結(jié)構(gòu)是啟動(dòng)Linux 內(nèi)核所需節(jié)點(diǎn)和屬性簡(jiǎn)化后的集合,包括了根節(jié)點(diǎn)的基本模式信息、CPU 和物理內(nèi)存布局,它還包括通過/chosen 節(jié)點(diǎn)傳遞給內(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é)點(diǎn)
設(shè)備樹的起始點(diǎn)稱之為根節(jié)點(diǎn)"/"。屬性model 指明了目標(biāo)板平臺(tái)或模塊的名稱,屬性compatible 值指明和目標(biāo)板為同一系列的兼容的開發(fā)板名稱。對(duì)于大多數(shù)32 位平臺(tái),屬性
#address-cells 和#size-cells 的值一般為1。
4.2 CPU 節(jié)點(diǎn)
/cpus 節(jié)點(diǎn)是根節(jié)點(diǎn)的子節(jié)點(diǎn),對(duì)于系統(tǒng)中的每一個(gè)CPU,都有相應(yīng)的節(jié)點(diǎn)。/cpus 節(jié)點(diǎn)沒有必須指明的屬性,但指明#address-cells = <1>和 #size-cells = <0>是個(gè)好習(xí)慣,這同時(shí)指明了每個(gè)CPU 節(jié)點(diǎn)的reg 屬性格式,方便為物理CPU 編號(hào)。
此節(jié)點(diǎn)應(yīng)包含板上每個(gè)CPU 的屬性。CPU 名稱一般寫作PowerPC,,例如Freescale 會(huì)使用PowerPC,8349 來描述本文的MPC8349E 處理器。CPU 節(jié)點(diǎn)的單元名應(yīng)該是cpu@0 的格式,此節(jié)點(diǎn)一般要指定device_type(固定為"cpu"),一級(jí)數(shù)據(jù)/指令緩存的表項(xiàng)
大小,一級(jí)數(shù)據(jù)/指令緩存的大小,核心、總線時(shí)鐘頻率等。在上面的示例中通過系統(tǒng)引導(dǎo)代碼動(dòng)態(tài)填寫時(shí)鐘頻率相關(guān)項(xiàng)。
4.3 系統(tǒng)內(nèi)存節(jié)點(diǎn)
此節(jié)點(diǎn)用于描述目標(biāo)板上物理內(nèi)存范圍,一般稱作/memory 節(jié)點(diǎn),可以有一個(gè)或多個(gè)。當(dāng)有多個(gè)節(jié)點(diǎn)時(shí),需要后跟單元地址予以區(qū)分;只有一個(gè)單元地址時(shí),可以不寫單元地址,默認(rèn)為0。
此節(jié)點(diǎn)包含板上物理內(nèi)存的屬性,一般要指定device_type(固定為"memory")和reg屬性。其中reg 的屬性值以<起始地址空間大小>的形式給出,如上示例中目標(biāo)板內(nèi)存起始地址為0,大小為256M 字節(jié)。
4.4 /chosen 節(jié)點(diǎn)
這個(gè)節(jié)點(diǎn)有一點(diǎn)特殊。通常,這里由Open Firmware 存放可變的環(huán)境信息,例如參數(shù),默認(rèn)輸入輸出設(shè)備。
這個(gè)節(jié)點(diǎn)中一般指定bootargs 及l(fā)inux,stdout-path 屬性值。bootargs 屬性設(shè)置為傳遞給內(nèi)核命令行的參數(shù)字符串。linux,stdout-path 常常為標(biāo)準(zhǔn)終端設(shè)備的節(jié)點(diǎn)路徑名,內(nèi)核會(huì)以此作為默認(rèn)終端。
U-Boot 在1.3.0 版本后添加了對(duì)扁平設(shè)備樹FDT 的支持,U-Boot 加載Linux 內(nèi)核、Ramdisk 文件系統(tǒng)(如果使用的話)和設(shè)備樹二進(jìn)制鏡像到物理內(nèi)存之后,在啟動(dòng)執(zhí)行Linux內(nèi)核之前,它會(huì)修改設(shè)備樹二進(jìn)制文件。它會(huì)填充必要的信息到設(shè)備樹中,例如MAC 地址、PCI 總線數(shù)目等。U-Boot 也會(huì)填寫設(shè)備樹文件中的“/chosen”節(jié)點(diǎn),包含了諸如串口、根設(shè)備(Ramdisk、硬盤或NFS 啟動(dòng))等相關(guān)信息。
4.5 片上系統(tǒng)SOC 節(jié)點(diǎn)
此節(jié)點(diǎn)用來描述片上系統(tǒng)SOC,如果處理器是SOC,則此節(jié)點(diǎn)必須存在。頂級(jí)SOC 節(jié)點(diǎn)包含的信息對(duì)此SOC 上的所有設(shè)備可見。節(jié)點(diǎn)名應(yīng)該包含此SOC 的單元地址,即此SOC內(nèi)存映射寄存器的基址。SOC 節(jié)點(diǎn)名以/soc的形式命名,例如MPC8349 的SOC
節(jié)點(diǎn)是"soc8349"。
在屬性中應(yīng)該指定device_type(固定為"soc")、ranges、bus-frequency 等屬性。ranges屬性值以的形式指定。SOC 節(jié)點(diǎn)還包含目標(biāo)板使用的每個(gè)SOC 設(shè)備子節(jié)點(diǎn),應(yīng)該在設(shè)備樹中盡可能詳細(xì)地描述此SOC 上的外圍設(shè)備。如下給出帶有看門狗設(shè)備的SOC 節(jié)點(diǎn)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é)點(diǎn)
分級(jí)節(jié)點(diǎn)用來描述系統(tǒng)上的總線和設(shè)備,類似物理總線拓?fù)洌芎芊奖愕拿枋鲈O(shè)備間的關(guān)系。對(duì)于系統(tǒng)上的每個(gè)總線和設(shè)備,在設(shè)備樹中都有其節(jié)點(diǎn)。對(duì)于這些設(shè)備屬性的描述和定義請(qǐng)?jiān)敿?xì)參考IEEE 1275 標(biāo)準(zhǔn)及本文參考文獻(xiàn)[2]。
設(shè)備樹的中斷系統(tǒng)稍顯復(fù)雜,設(shè)備節(jié)點(diǎn)利用interrupt-parent 和interrupts 屬性描述到中斷控制器的中斷連接。其中interrupt-parent 屬性值為中斷控制器節(jié)點(diǎn)的指針,#interrupts 屬性值描述可觸發(fā)的中斷信號(hào),其值格式與中斷控制器的interrupt-cells 屬性值有關(guān)。一般
#interrupt-cells 屬性值為2,interrupts 屬性就對(duì)應(yīng)為一對(duì)描述硬件中斷號(hào)和中斷觸發(fā)方式的十六進(jìn)制值。
5 扁平設(shè)備樹編譯
根據(jù)嵌入式板的設(shè)備信息寫設(shè)備樹源碼文件(.dts)通常比較簡(jiǎn)單,但是手寫二進(jìn)制的扁平設(shè)備樹(.dtb)就顯得比較復(fù)雜了。設(shè)備樹編譯器dtc 就是用來根據(jù)設(shè)備樹源碼的文本文件生成設(shè)備樹二進(jìn)制鏡像的。dtc 編譯器會(huì)對(duì)輸入文件進(jìn)行語(yǔ)法和語(yǔ)義檢查,并根據(jù)Linux內(nèi)核的要求檢查各節(jié)點(diǎn)及屬性,將設(shè)備樹源碼文件(.dts)編譯二進(jìn)制文件(.dtb),以保證內(nèi)核能正常啟動(dòng)。dtc 編譯器的使用方法如下所示[6]:dtc [ -I dts ] [ -O dtb ] [ -o opt_file ] [ -V opt_version ] ipt_file2.6.25 版本之后的內(nèi)核源碼已經(jīng)包含了dtc 編譯器。在配置編譯內(nèi)核時(shí)選中CONFIG_DTC,會(huì)自動(dòng)生成設(shè)備樹編譯器dtc。將編寫的目標(biāo)板設(shè)備樹文件mpc8349emitx.dts放到內(nèi)核源碼的arch/powerpc/boot/dts/目錄下,利用內(nèi)核Makefile 生成blob 的簡(jiǎn)單規(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òng)引導(dǎo)代碼U-Boot 在完成自己的工作之后,會(huì)加載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)核的入口有且只有一個(gè),入口點(diǎn)為內(nèi)核鏡像的起始。此入口支持兩種調(diào)用方式,一種是支持Open Firmware 啟動(dòng),另一種對(duì)于沒有OF 的引導(dǎo)代碼,需要使用扁平設(shè)備樹塊,如上示例代碼。寄存器r3 保存指向設(shè)備樹的物理地址指針,寄存器r4 保存為內(nèi)
核在物理內(nèi)存中的地址,r5 為NULL。其中的隱含意思為:假設(shè)開啟了mmu,那么這個(gè)mmu的映射關(guān)系是1:1 的映射,即虛擬地址和物理地址是相同的。
7 Linux 內(nèi)核對(duì)設(shè)備樹的解析
扁平設(shè)備樹描述了目標(biāo)板平臺(tái)中的設(shè)備樹信息。每個(gè)設(shè)備都有一個(gè)節(jié)點(diǎn)來描述其信息,每個(gè)節(jié)點(diǎn)又可以有子節(jié)點(diǎn)及其相應(yīng)的屬性。內(nèi)核源碼中include/linux/of.h 及drivers/of/base.c等文件中提供了一些Open Firmware API,通過這些API,內(nèi)核及設(shè)備驅(qū)動(dòng)可以查找到相應(yīng)
的設(shè)備節(jié)點(diǎn),讀取其屬性值,利用這些信息正確地初始化和驅(qū)動(dòng)硬件。
圖2 內(nèi)核及驅(qū)動(dòng)對(duì)扁平設(shè)備樹的解析
Fig2 Interaction from kernel and drivers with the FDT blob
8 結(jié)論
本文介紹了設(shè)備樹的起源及其優(yōu)點(diǎn),進(jìn)而闡述了設(shè)備樹的數(shù)據(jù)存儲(chǔ)格式以及源碼描述語(yǔ)法,給出了設(shè)備樹的編譯方法,最后引出了移植過程中的U-Boot 相關(guān)設(shè)置說明及內(nèi)核的解析過程分析。設(shè)備樹為嵌入式系統(tǒng)向Linux 內(nèi)核傳遞參數(shù)的動(dòng)態(tài)接口,本文以MPC8349E
處理器目標(biāo)板上的DTS 移植經(jīng)歷作總結(jié),希望對(duì)嵌入式PowerPC Linux 開發(fā)者具有一定的參考價(jià)值,可以加快嵌入式PowerPC Linux 開發(fā)中的設(shè)備樹DTS 移植過程。
?
學(xué)會(huì)Linux設(shè)備樹dts移植
- Linux(206513)
- DTS(15990)
- 設(shè)備樹(3038)
相關(guān)推薦
Linux驅(qū)動(dòng)入門-設(shè)備樹DTS概念介紹
硬件的相應(yīng)信息都會(huì)寫在.dts為后綴的文件中,每一款硬件可以單獨(dú)寫一份xxxx.dts,一般在Linux源碼中存在大量的dts文件,對(duì)于 arm 架構(gòu)可以在arch/arm/boot/dts找到相應(yīng)
2023-08-20 11:02:31649
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會(huì)因?yàn)橹С职遄雍万?qū)動(dòng)越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級(jí)文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-11-29 17:58:57
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會(huì)因?yàn)橹С职遄雍万?qū)動(dòng)越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級(jí)文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-10-19 15:53:29
Linux 設(shè)備樹詳解
問題。推而廣之,系統(tǒng)的軟硬件信息都可以使用設(shè)備樹來描述。這樣的話,ARM Linux社區(qū)就不會(huì)因?yàn)橹С职遄雍万?qū)動(dòng)越來越多造成內(nèi)核源碼中出現(xiàn)很多冗余代碼(主要是板級(jí)文件),僅僅需要移植者,把系統(tǒng)的軟硬件信息通過設(shè)備
2016-11-02 13:46:14
Linux內(nèi)核的設(shè)備樹DTS使用方法詳解
1、設(shè)備樹的簡(jiǎn)介Linux 內(nèi)核3.X之后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板級(jí)細(xì)節(jié)的代碼(比如platform_device
2022-05-06 16:14:31
Linux系統(tǒng)移植篇10:Linux內(nèi)核網(wǎng)卡驅(qū)動(dòng)移植
/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è)備樹簡(jiǎn)介
(全文見附件)設(shè)備樹詳解簡(jiǎn)介在傳統(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)核配置及編譯
出一個(gè)相對(duì)簡(jiǎn)單的設(shè)備樹文件,確保內(nèi)核可以正常啟動(dòng)。后續(xù)各個(gè)外設(shè)移植時(shí)會(huì)陸續(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)移植
總線,當(dāng)前所使用的設(shè)備樹文件中沒有sdmmc2的支持,所以需要增加相關(guān)內(nèi)容才能正常驅(qū)動(dòng)eMMC。由于在使STM32MP1芯片很多管腳為多功能復(fù)用管腳,且很多管腳具備同樣的功能,所以移植eMMC時(shí)需要
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 個(gè) dts 文件?(能簡(jiǎn)單介紹一下嗎?)謝謝。
2023-03-17 08:18:59
linux設(shè)備樹詳解
linux設(shè)備樹詳解 2003 年畢業(yè)于中國(guó)科學(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è)備樹代碼,也就是相同芯片但不同平臺(tái)都可以使用的代碼device tree
2021-12-24 06:40:31
設(shè)備樹的相關(guān)資料分享
設(shè)備樹詳解簡(jiǎn)介在傳統(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è)備樹錯(cuò)誤
你好我正在嘗試在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è)備樹是一個(gè)描述設(shè)備硬件資源的文件,該文件是由節(jié)點(diǎn)組成的樹形結(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ū)動(dòng)移植nuc980采樣用設(shè)備樹配置時(shí),中斷如何配置設(shè)備樹?
MCP251X can驅(qū)動(dòng)移植nuc980 采樣用設(shè)備樹配置時(shí),中斷如何配置設(shè)備樹?
spi0: spi@b0061000 {
status = \"okay\"
2024-01-17 06:43:27
OKMX6UL-C的uboot默認(rèn)是加載那個(gè)DTB的,修改設(shè)備樹應(yīng)該是修改那個(gè)dts文件?
您好:OKMX6UL-C的uboot默認(rèn)是加載那個(gè)DTB的,修改設(shè)備樹應(yīng)該是修改那個(gè)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é)點(diǎn)的插入
2023-05-06 08:45:19
RK3288 dts和dtsi介紹
基本上就是畫一棵電路板上(CPU、總線、設(shè)備組成)的樹,Bootloader 會(huì)將這棵樹傳遞給內(nèi)核,然后內(nèi)核可以識(shí)別這棵樹,并根據(jù)它展開出 Linux 內(nèi)核中的 platform_device
2020-02-11 11:43:37
RK3288設(shè)備樹適配LVDS屛的資料推薦
1、RK3288適配LVDS屛記錄 在設(shè)備樹增加LVDS相關(guān)節(jié)點(diǎn):源碼/kernel/arch/arm/boot/das/rk3288.dts添加背光節(jié)點(diǎn)添加LVDS節(jié)點(diǎn)RK3288 有2個(gè)視覺輸出處理器yopbvoplvopb 支持4K高清輸出vopl支持2K視頻輸出原作者:wylwws
2022-05-13 15:01:25
STM32MP157 Linux系統(tǒng)移植開發(fā)篇11:Linux HDMI驅(qū)動(dòng)移植
/devicetree/bindings/i2c/i2c-stm32.txt內(nèi)核中ST對(duì)STM32MP15x系列芯片的設(shè)備樹資源了做了定義,可參見:arch/arm/boot/dts
2021-09-15 11:55:04
STM32MP157 Linux系統(tǒng)移植開發(fā)篇12:Linux內(nèi)核MIPI LCD驅(qū)動(dòng)移植
/devicetree/bindings/pwm/pwm-stm32.txt內(nèi)核中ST對(duì)STM32MP15x系列芯片的設(shè)備樹資源了做了定義,可參見:arch/arm/boot/dts
2021-09-16 16:53:52
STM32MP157 Linux系統(tǒng)移植開發(fā)篇13:Linux內(nèi)核5寸觸摸屏驅(qū)動(dòng)移植
/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ū)動(dòng)移植
= ;brightness-levels = ;default-brightness-level = ;status = "okay";};2.實(shí)驗(yàn)?zāi)康氖煜せ?b class="flag-6" style="color: red">Linux操作系統(tǒng)下的攝像頭設(shè)備驅(qū)動(dòng)移植
2021-09-28 11:22:13
STM32MP157 Linux系統(tǒng)移植開發(fā)篇15:Linux內(nèi)核7寸觸摸屏驅(qū)動(dòng)移植
/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi過程與5寸觸摸屏移植過程相同,如果步驟重復(fù)請(qǐng)?zhí)^。修改設(shè)備樹修改arch/arm/boot/dts
2021-09-29 08:45:20
TI AM335x_linux-3.14.43內(nèi)核移植筆記
Device Tree牽涉面比較廣,即增加了新的用于描述設(shè)備硬件信息的文本格式(即.dts文件),又增加了編譯這一文本的工具,同時(shí)Bootloader也需要支持將編譯后的Device Tree傳遞給Linux
2018-06-04 15:49:15
am437x基于linux4.1.18平臺(tái)移植按鍵驅(qū)動(dòng)失敗
您好,我在am437x平臺(tái)上使用的是linux4.1.18內(nèi)核,添加按鍵驅(qū)動(dòng)總是失敗。我所做的步驟是:
1,修改設(shè)備樹xxx.dts,紅色為新增的
2,在設(shè)備樹中配置對(duì)應(yīng)的pin_mux
3,將
2018-06-01 08:24:04
arm linux設(shè)備樹都包括哪些基本信息呢
設(shè)備樹)設(shè)備樹文件一般放置在arch/arm/boot/dts目錄中DTS文件一個(gè)dts文件對(duì)應(yīng)一個(gè)ARM的設(shè)備為了簡(jiǎn)化把SoC公用的部分或多個(gè)設(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
「正點(diǎn)原子Linux連載」第三十七章Linux內(nèi)核移植
imx6ull-alientek-emmc.dts.dts是設(shè)備樹源碼文件,編譯Linux的時(shí)候會(huì)將其編譯為.dtb文件。imx6ull-alientek-emmc.dts創(chuàng)建好以后我們還需要修改文件
2020-03-17 15:40:28
「正點(diǎn)原子Linux連載」第四十三章Linux設(shè)備樹(一)
,但是我們?cè)谇懊?b class="flag-6" style="color: red">移植Linux的時(shí)候卻一直在使用.dtb文件,那么DTS和DTB這兩個(gè)文件是什么關(guān)系呢?DTS是設(shè)備樹源碼文件,DTB是將DTS編譯以后得到的二進(jìn)制文件。將.c文件編譯為.o需要用到gcc
2020-03-19 10:18:28
「正點(diǎn)原子Linux連載」第四十三章Linux設(shè)備樹(二)
1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子Linux開發(fā)板2)摘自《正點(diǎn)原子I.MX6U嵌入式Linux驅(qū)動(dòng)開發(fā)指南》關(guān)注官方微信號(hào)公眾號(hào),獲取更多資料:正點(diǎn)原子第四十三章Linux設(shè)備樹43.3.5 向節(jié)點(diǎn)追加或修改
2020-03-19 10:19:40
【Z-turn Board試用體驗(yàn)】+ 設(shè)備樹的創(chuàng)建
設(shè)備樹用于硬件和軟件之間的信息交互,也就是將Zynq開發(fā)板的硬件信息傳遞給linux內(nèi)核,避免在linux內(nèi)核中硬編碼而影響在其他平臺(tái)上的可移植性。設(shè)備樹一般以兩種文件格式存在,一個(gè)是dts文件
2015-07-01 15:24:46
【正點(diǎn)原子FPGA連載】第二十四章Linux設(shè)備樹-領(lǐng)航者ZYNQ之linux開發(fā)指南
多說了,前面講解Uboot移植、Linux內(nèi)核移植的時(shí)候已經(jīng)無數(shù)次的提到如何使用.dtb文件了(uboot中使用bootz或bootm命令向Linux內(nèi)核傳遞二進(jìn)制設(shè)備樹文件(.dtb))。24.3dts
2020-09-16 15:31:31
【正點(diǎn)原子FPGA連載】第十八章Linux內(nèi)核移植-領(lǐng)航者ZYNQ之linux開發(fā)指南
Linux支持設(shè)備樹,每個(gè)開發(fā)板都有一個(gè)對(duì)應(yīng)的設(shè)備樹文件。Xilinx的ZYNQ系列芯片的所有設(shè)備樹文件夾都存放在arch/arm/boot/dts目錄下,在這個(gè)目錄下有個(gè)名為
2020-09-14 15:42:54
【米爾-TIAM62開發(fā)板-接替335x-試用評(píng)測(cè)】+(三)手把手創(chuàng)建Uboot設(shè)備樹與內(nèi)核設(shè)備樹實(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ī)器時(shí),我可以通過以下兩種方法創(chuàng)建設(shè)備樹。 方法 1
2023-01-10 07:18:43
使用官方sdk,內(nèi)核下設(shè)備樹執(zhí)行不正確,Linux下外設(shè)沒有任何變化,請(qǐng)問是哪個(gè)環(huán)節(jié)出了問題?
設(shè)計(jì),有部分修改。移植過程中發(fā)現(xiàn)無論怎么改../dts文件夾下的設(shè)備樹文件,Linux下外設(shè)沒有任何變化,懷疑uboot階段雖然加載了.dtb文件但是內(nèi)核并沒有按加載的設(shè)備樹執(zhí)行。做了個(gè)實(shí)驗(yàn),驗(yàn)證
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 手冊(cè)中對(duì)應(yīng)寄存器。3.在設(shè)備樹中 iomux 中添加復(fù)用 gpio 引腳如下:同時(shí)修改設(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平臺(tái)的u-boot設(shè)備樹?
大家好,我已經(jīng)為 s32g399aevb 平臺(tái)構(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è)備樹。運(yùn)行“devtool 修改虛擬/內(nèi)核”命令。工作區(qū)目錄創(chuàng)建成功。但我在下面的路徑中找不到我的設(shè)備樹。./workspace/sources/linux-stm32mp/arch/arm
2022-12-07 07:13:34
基于Linux操作系統(tǒng)下的塊設(shè)備驅(qū)動(dòng)是如何完成移植的?
驅(qū)動(dòng)eMMC的原理是什么?基于Linux操作系統(tǒng)下的塊設(shè)備驅(qū)動(dòng)是如何完成移植的?
2022-02-28 09:45:04
基于Android7.1 高通8953 平臺(tái)下零死角玩轉(zhuǎn)設(shè)備樹DTS【2018更新】【申精】
設(shè)備樹DTS】更新內(nèi)容:【創(chuàng)科之龍_安卓開發(fā)】第01課_為什么引用linux設(shè)備樹和對(duì)比優(yōu)勢(shì)【創(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是什么意思?
請(qǐng)有人解釋一下……我正在為我的 NXP SoC 和 COM/板查看 DTS,試圖找到一些外圍設(shè)備并檢查地址。我無法理解的是我在 DTS/Linux 地址中看到的與它們?cè)?SoC 用戶指南中看到的內(nèi)容
2023-03-29 06:28:12
如何使用yocto連接cubeMX生成的dts文件?
大家好,我正在使用帶有 openSTLinux-5.4-dunfell-eglf 發(fā)行版的 stm32mp157f-dk2。我想使用 cubeMX 配置我的設(shè)備樹。生成的 dts 文件對(duì)我來說似乎沒問題。但是,我怎樣才能告訴 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ū)動(dòng)程序添加到Linux設(shè)備樹?
我目前正在嘗試通過將 mma8452 驅(qū)動(dòng)程序添加到 Linux 設(shè)備樹來為我的 mma8451Q 加速度計(jì)實(shí)現(xiàn)它。 目前我正在創(chuàng)建一個(gè)設(shè)備樹覆蓋文件 (dtbo),其中包含添加到描述加速度計(jì)的設(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ū)動(dòng)并從
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)核鏡像文件
實(shí)驗(yàn)任務(wù):編譯設(shè)備樹和Linux內(nèi)核鏡像文件,拷貝到sd卡中,再?gòu)膕d卡中拷貝到nand閃存對(duì)應(yīng)的分區(qū)中,最后nand啟動(dòng),進(jìn)入linux系統(tǒng)本篇博客內(nèi)容:1.實(shí)驗(yàn)流程2.注意事項(xiàng)1.實(shí)驗(yàn)流程1.
2021-12-20 07:11:34
如何解決zephyr添加驅(qū)動(dòng)到設(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ū)動(dòng)移植問題?
擴(kuò)展芯片,能否提供一下MCP2515驅(qū)動(dòng)設(shè)備樹文件,或者移植方案。下面是我們的硬件設(shè)計(jì),用的是SPI2,中斷管腳是G20_SPI2_CS1BR.以下為例子,設(shè)備樹linux-3.10/arch/arm
2022-01-04 07:02:58
安卓(android)6.0高通平臺(tái)下設(shè)備樹專題視頻講解【全國(guó)獨(dú)家+設(shè)備樹視頻教程+絕頂視頻】
哪些神秘的東西?3.【創(chuàng)科之龍_安卓開發(fā)】第02節(jié)_如何在Linux-3.x內(nèi)核編譯設(shè)備樹4.【創(chuàng)科之龍_安卓開發(fā)】第03節(jié)_如何對(duì)設(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é)點(diǎn)cd /sys/firmware/devicetree/base/。platform_device 的信息在設(shè)備樹的dts文件里,帶有
2021-12-14 06:19:10
深入研究徹底掌握設(shè)備樹
這節(jié)主要講只想使用設(shè)備樹但是不想深入研究怎么辦,簡(jiǎn)單記錄一下,因?yàn)槲覀冞€是要深入研究徹底掌握設(shè)備樹的。如果沒有深入研究設(shè)備樹,那么只能希望寫驅(qū)動(dòng)程序的人:提供了文檔,程序,并且驅(qū)動(dòng)程序?qū)懙煤眠m配性強(qiáng)
2022-02-17 07:05:45
請(qǐng)問rt設(shè)備框架與linux設(shè)備樹的優(yōu)劣區(qū)別有哪些?
使用 rt 半年了,印象里網(wǎng)上的資料都說 rt 是類似于 linux 的,感覺也像,但是又感覺有點(diǎn)不一樣,就是 linux 的設(shè)備樹里換個(gè)設(shè)備好像就改一點(diǎn)點(diǎn)數(shù)據(jù)就行了,rt 這里好像不怎么容易。
2022-05-23 09:37:09
請(qǐng)問關(guān)于u***轉(zhuǎn)串口的設(shè)備樹文件是哪個(gè)
需求是修改源碼把原來的一個(gè)USB擴(kuò)展4串口卡改為 4個(gè)USB擴(kuò)展16個(gè)串口卡,具體步驟是不是修改設(shè)備樹以及重寫u***驅(qū)動(dòng)?驅(qū)動(dòng)文件 linux4.1.15/drivers/tty/serial
2022-01-07 06:05:15
請(qǐng)問在rockchip中如何單獨(dú)編譯生成新的設(shè)備樹
/arm64/Makefile:127: recipe for target ‘dtbs’ failed make: *** [dtbs] Error 2 在rockchip中無法找到px30-ad-d6-anx6345.dtb的文件,請(qǐng)問如何單獨(dú)編譯生成新的設(shè)備樹?
2022-04-02 14:16:07
請(qǐng)問如何學(xué)會(huì)Linux?
重賞如何學(xué)會(huì)Linux?前輩們,急學(xué)Linux,如何一個(gè)月內(nèi)學(xué)會(huì),但不要求精通,只希望能入門即可!
2020-04-29 18:19:40
迅為-IMX6開發(fā)板設(shè)備樹-Linux內(nèi)核配置兩路can
1、修改Android6 源碼的設(shè)備樹文件imx6qdl-sabresd.dtsi,添加如下圖所示的can2節(jié)點(diǎn),藍(lán)色字體是添加的內(nèi)容。2、修改完后,保存退出。然后重新編譯 Linux 內(nèi)核,參考第
2021-06-24 10:00:42
迅為4412開發(fā)板Linux設(shè)備樹的鏡像燒寫和源碼簡(jiǎn)單優(yōu)化教程
1 燒寫:燒寫和4412默認(rèn)鏡像的燒寫類似,使用fastboot。先更新uboot,用4412默認(rèn)uboot更新支持設(shè)備樹的uboot用支持設(shè)備樹的uboot燒寫。進(jìn)入支持設(shè)備樹的uboot控制臺(tái)
2019-05-09 16:36:29
迅為iMX6開發(fā)板- 設(shè)備樹內(nèi)核-設(shè)備樹相關(guān)文件簡(jiǎn)要分析
”和“imx6q-topeet_9.7inch.dts”這三個(gè)。上圖中,這三個(gè)設(shè)備樹文件的名稱來看,應(yīng)該是為了支持不同分辨率的屏幕的配置,除了屏幕部分的,其它部分應(yīng)該是相同的,所以這里只需要分析其中一個(gè)即可(實(shí)際情況就是這樣的,感興趣可以自己對(duì)比
2020-10-21 10:51:51
迅為iMX6開發(fā)板-設(shè)備樹內(nèi)核-注冊(cè)設(shè)備例程
本文檔主要講解在 iMX6Q/D/PLUS 開發(fā)板的設(shè)備樹內(nèi)核(4.1.15)源碼中,注冊(cè)設(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號(hào)linux-2.6.25穩(wěn)定版發(fā)布,我們(偉研科技)http://www.gzweiyan.com 將該內(nèi)核移植到S3C2440平臺(tái)上,下面是我們移植的第一步:
編譯內(nèi)核:1) 解壓
2009-09-20 18:15:0848
嵌入式Linux在s3c2440上的移植研究
針對(duì)嵌入式Linux在s3c2440上的移植目的,通過將嵌入式Linux 內(nèi)核移植到 S3C2440 處理器的目標(biāo)板上, 提出了嵌入式Linux 移植的方法與具體實(shí)現(xiàn)過程。編譯生成的內(nèi)核在嵌入式系統(tǒng)中運(yùn)行穩(wěn)定
2011-08-15 11:30:1267
移植Linux到晶心平臺(tái)
鑒于越來越多使用者將Linux移植到晶心平臺(tái)(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)核中硬編碼而影響在其他平臺(tái)上的可移植性。設(shè)備樹一般以兩種文件格式存在,一個(gè)是dts文件
2017-02-09 03:06:11495
《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動(dòng)的移植
《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動(dòng)的移植
2017-10-27 10:58:139
[深度理解嵌入式linux系統(tǒng)移植]深度理解嵌入式linux系統(tǒng)移植
-linux內(nèi)核工程與編譯系統(tǒng)第七章-linux內(nèi)核啟動(dòng)流程分析第八章-linux移植準(zhǔn)備及最小系統(tǒng)構(gòu)建第九章-linux網(wǎng)卡驅(qū)動(dòng)移植第十章-linux混雜設(shè)備驅(qū)動(dòng)第十一章-linuxI2C驅(qū)動(dòng)移植第十二章-linuxSPI驅(qū)動(dòng)移植第十三章-Nand Flash 驅(qū)動(dòng)移植第十四章-SD.
2021-11-02 13:21:2116
Linux內(nèi)核移植教程
半導(dǎo)體廠商會(huì)從 Linux內(nèi)核官網(wǎng)下載某個(gè)版本,將其移植到自己的 CPU上,測(cè)試成功后就會(huì)將其開放給該半導(dǎo)體廠商的 CPU開發(fā)者。開發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。
2023-04-19 11:20:32701
Linux驅(qū)動(dòng)移植 Linux系統(tǒng)架構(gòu)優(yōu)點(diǎn)
系統(tǒng)移植 linux 驅(qū)動(dòng)移植 移植是說同樣的一個(gè) linux 操作系統(tǒng),我們可以跑到不同的硬件上面,我們把操作系統(tǒng)移植到不同的硬件上面,這個(gè)過程叫做移植。設(shè)備驅(qū)動(dòng)移植步驟,如下圖所示: 應(yīng)用軟件
2023-07-27 17:06:06516
評(píng)論
查看更多