av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Linux下DTB文件生成及使用介紹 (linux dtb文件生成)

DTB文件,又稱(chēng)為設(shè)備樹(shù)二進(jìn)制文件,它是一種被廣泛使用的Linux內(nèi)核機(jī)制,用于在嵌入式系統(tǒng)中描述硬件設(shè)備的信息。這種機(jī)制使得Linux內(nèi)核與硬件設(shè)備之間的聯(lián)系更加靈活、動(dòng)態(tài)且容易維護(hù)。為了使用DTB文件,需要首先生成它,然后將其與內(nèi)核鏡像文件一起加載到嵌入式系統(tǒng)中。本文將講解如何在Linux系統(tǒng)中生成DTB文件,并對(duì)DTB文件的使用進(jìn)行介紹。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、鐵山港網(wǎng)站維護(hù)、網(wǎng)站推廣。

一、DTB文件生成

1.1 生成DTB文件的工具

在Linux系統(tǒng)中生成DTB文件的工具有多種,其中最常用的是devicetree中提供的dtc工具。Dtc工具是一個(gè)命令行工具,可以從設(shè)備樹(shù)描述符中生成設(shè)備樹(shù)二進(jìn)制文件或反向操作。它已經(jīng)被集成到Linux的源代碼中,可以通過(guò)以下命令安裝它:

“`

$ sudo apt-get install device-tree-compiler

“`

1.2 設(shè)備樹(shù)描述符

生成DTB文件的之一步是編寫(xiě)設(shè)備樹(shù)描述符(dts)文件,該文件用于描述硬件設(shè)備的信息。設(shè)備樹(shù)描述符是一種基于文本的、易于閱讀的格式,可以在嵌入式系統(tǒng)開(kāi)發(fā)中起到很好的調(diào)試作用。以下是一個(gè)簡(jiǎn)單的設(shè)備樹(shù)描述符示例:

“`

/dts-v1/;

/ {

model = “My first device tree”;

compatible = “my-first-device”;

memory@80000000 {

device_type = “memory”;

reg = ;

};

myserial@90000000 {

compatible = “my-serial”;

reg = ;

interrupts = ;

status = “okay”;

};

};

“`

在上面的示例中,分別定義了一個(gè)名為memory和一個(gè)名為myserial的設(shè)備節(jié)點(diǎn)。設(shè)備節(jié)點(diǎn)包括設(shè)備類(lèi)型、寄存器地址、中斷號(hào)和節(jié)點(diǎn)狀態(tài)等信息。

1.3 生成DTB文件

有了設(shè)備樹(shù)描述符文件以后,就可以使用dtc工具生成DTB文件了。以下是命令示例:

“`

$ dtc -I dts -O dtb -o test.dtb test.dts

“`

該命令使用輸入格式為dts的test.dts文件,輸出格式為dtb的test.dtb文件。此外,還可以通過(guò)命令行指定設(shè)備樹(shù)文件名和輸出文件名等選項(xiàng)參數(shù)。

二、DTB文件的使用

2.1 加載DTB文件

在將DTB文件加載到嵌入式系統(tǒng)中之前,需要確保內(nèi)核配置文件中已開(kāi)啟了設(shè)備樹(shù)支持。此外,還需要確切知道DTB文件的加載位置和命名規(guī)則。將DTB文件與內(nèi)核鏡像一起放入啟動(dòng)設(shè)備的合適位置,系統(tǒng)將自動(dòng)加載DTB文件并解析其中的設(shè)備信息。

2.2 設(shè)備節(jié)點(diǎn)的訪問(wèn)

在系統(tǒng)啟動(dòng)過(guò)程中,內(nèi)核會(huì)根據(jù)DTB文件中的設(shè)備節(jié)點(diǎn)信息,創(chuàng)建相應(yīng)的設(shè)備節(jié)點(diǎn)。應(yīng)用程序通常需要通過(guò)設(shè)備節(jié)點(diǎn)來(lái)訪問(wèn)硬件設(shè)備??梢允褂?sys/目錄下相應(yīng)節(jié)點(diǎn)的路徑訪問(wèn)設(shè)備節(jié)點(diǎn),例如/dev/mem、/dev/myserial等。

2.3 編寫(xiě)設(shè)備驅(qū)動(dòng)程序

此外,還可以編寫(xiě)設(shè)備驅(qū)動(dòng)程序來(lái)訪問(wèn)設(shè)備節(jié)點(diǎn)。驅(qū)動(dòng)程序需要適用于自己的設(shè)備節(jié)點(diǎn),并包括供應(yīng)用程序使用的API函數(shù)。驅(qū)動(dòng)程序通常是作為L(zhǎng)inux內(nèi)核模塊實(shí)現(xiàn)的,需要先加載模塊并創(chuàng)建相應(yīng)設(shè)備文件,在應(yīng)用程序中通過(guò)設(shè)備文件來(lái)訪問(wèn)設(shè)備節(jié)點(diǎn)。

結(jié)語(yǔ)

相關(guān)問(wèn)題拓展閱讀:

  • zynqmp 怎么將linux系統(tǒng)下載到emmc
  • 關(guān)于linux安裝TBB的問(wèn)題

zynqmp 怎么將linux系統(tǒng)下載到emmc

1,vivado硬件配置,要選擇EMMC代表的SD1;

2,編譯petalinux:執(zhí)行petalinux-config。

(1)選擇Subsystem AUTO Hardware Setting

> Advanced bootable images storage settings

>巖橡首boot image settings;

選擇primary flash,這里是將BOOT.bin設(shè)置為從qspi flash啟動(dòng)

(2)選擇Subsystem AUTO Hardware Setting

> Advanced bootable images storage settings

>kernel image settings;

選擇primary sd,進(jìn)入后我們看到這里實(shí)際就是設(shè)置image.ub的存放區(qū)域。

(3)選擇Image Packaging Configuration,設(shè)置啟動(dòng)啟動(dòng)

文件系統(tǒng)

所在位置;

在設(shè)置啟動(dòng)方式的時(shí)候,如下兩張圖這樣設(shè)置讀取根文件系統(tǒng)的位置/dev/mmcblk1p2。

(4)設(shè)置你的驅(qū)動(dòng)然后編譯,依次執(zhí)行:petalinux-config -c kernel;petalinux-config -c rootfs;

petalinux-build;petalinux-package –boot –fl ./images/linux/zynq_fl.elf –fpga –u-boot –force;

3,做之前先分區(qū)(把EMMC分區(qū)),先做一個(gè)

SD卡

啟動(dòng)的petalinux文件,

petalinux系統(tǒng)在zynq上面啟動(dòng)起來(lái)以后就進(jìn)行如下分區(qū):即是mmcblk1分為mmcblk1p1和mmcblk1p2

具體步驟如下:

(1) 把EMMC進(jìn)行分區(qū),執(zhí)行命令: fdisk /dev/mmcblk

(2)使用n命令,添加一個(gè)新的分區(qū)

Command (m for help): n

Command action

e extended

p primary partition (1-4)

選擇p,添加主分區(qū)

,(3)選擇分區(qū)號(hào),選擇1,

Partition number (1-4):// 選擇分區(qū)號(hào)

First cylinder (, default 1): Using default value // 選擇分區(qū)的之一個(gè)

柱面

,選擇1

Last cylinder or +size or +sizeM or +sizeK (, default): Using default value// 選擇最后一個(gè)柱面

注意:,first要選之一個(gè)數(shù),last要選擇的比238592小,其中1024就是表示1M

(4)使用t命令,設(shè)置分區(qū)格式

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): b

Changed system type of partition 1

to b

(Win95 FAT32)

(5)使用w命令,保存配置,必須保存配置

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table

(6)使用對(duì)應(yīng)文件系統(tǒng)工具對(duì)分析進(jìn)行格式化(只能在粗?jǐn)?shù)debian里面才能識(shí)別命令)

mkfs.fat /dev/mmcblk1p1 設(shè)置為fat32格式

mkfs.ext4 /dev/mmcblk1p2設(shè)置為ext4格式

注意:執(zhí)行完w命令然后才算分區(qū)成功,執(zhí)行完mkfs命令才算格設(shè)置內(nèi)存屬性成功。

以上分區(qū)完成如源后,可以使用p命令,顯示分區(qū)信息;也可以使用用d命令表示刪除分區(qū)

Command (m for help): p

Disk /dev/mmcblk0: 7818 MB,bytes

4 heads, 16 sectors/track,cylinders

Units = cylinders of 64 * 512 =bytes

Device Boot StartEnd Blocks Id System

/dev/mmcblk0p 83 Linux

(7)執(zhí)行這句:mkdosfs -F 32 /dev/mmcblk0p1

當(dāng)然,可以重復(fù)上述步驟,多分幾個(gè)區(qū),用來(lái)存放不同的狀態(tài):

FLASH要要用來(lái)存放BOOT.bin

之一個(gè)分區(qū)用來(lái)存放image.ub或者設(shè)備樹(shù)(比如uImage和devicetree.dtb)等文件;–可以設(shè)置為128MB

第二個(gè)分區(qū)用來(lái)存放用戶(hù)數(shù)據(jù)(比如可執(zhí)行程序);可以設(shè)置為2023MB

第三個(gè)分區(qū)用來(lái)存放程序執(zhí)行需要的

庫(kù)文件

(opencv的庫(kù),qtcreator庫(kù),相機(jī)庫(kù),視頻編碼解碼庫(kù)等);剩余的1個(gè)多GB

4,把系統(tǒng)同步到ext4里面

先把sd卡里面系統(tǒng)掛載進(jìn)來(lái) :mount /dev/mmcblk0p2 /mnt

再把剛剛弄好的系統(tǒng)掛進(jìn)來(lái): mount /dev/mmcblk1p2 /tmp , 然后cd /mnt

然后進(jìn)入把SD卡里面的系統(tǒng)同步到emmc里面:rsync -av ./* /tmp ,時(shí)間有點(diǎn)久,直到結(jié)束為止。

(要是不用SD卡也可以掛載

U盤(pán)

,解壓,然后進(jìn)行系統(tǒng)同步到EMMC所掛載的地方/tmp)

5,然后將BOOT.BIN和image.ub燒錄到QSPI-FLASH中

首先擦除QSPI-FLASH:flash_eraseall /dev/mtd0

存放BOOT.bin到flash : flashcp BOOT.bin /dev/mtd0

此處若是將image.ub寫(xiě)入emmc的FAT分區(qū)中(不存放到flash中),先使用mount掛載eMMC的FAT分區(qū),

然后將image.ub使用cp指令拷貝進(jìn) /mnt/mmcFat即可,也就是把uImage 拷貝到 /dev/mmcblk1p1;

進(jìn)入uImage所在目錄,然后執(zhí)行 cp uImage /tmp;也就是把uImage存放到了 /dev/mmcblk1p1里面。

6,最后斷電拔出SD卡,將撥碼開(kāi)關(guān)設(shè)置為flash啟動(dòng),就能看到petalinux啟動(dòng)起來(lái);

7,報(bào)錯(cuò)及其解決辦法

————————————————

版權(quán)聲明:本文為CSDN博主「寒聽(tīng)雪落」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。


分享文章:Linux下DTB文件生成及使用介紹 (linux dtb文件生成)
文章轉(zhuǎn)載:http://uogjgqi.cn/article/cogopsp.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流