通常Kernel一加載起來,大家能在/dev目錄下可以看到一大堆的設備。這些設備都是Kernel加載初始化過程中,由內核和驅動創(chuàng)建出來的。那么哪個設備才是我真正要用的設備。下面就幾個常用的外設來和大家一起梳理一下。
反編譯設備樹
首先第一步是要獲得完整的設備樹信息。通過將 dtb 文件反編譯成 dts 文件,你就可以獲得最終的設備樹文件了。方法是使用dtc小工具,把在你 petalinux 工程下image/linux/system.dtb 文件反編譯成 dts 文件。命令如下:
dtc -I dtb -O dts -osystem.dts system.dtb
有了最終的 dts 文件,就相當于我們已經(jīng)有一個所有設備的清單。在這個清單中,我們可以看到每個設備在kernel 中都會有一個對應的地址。這個地址就可以和你 Vivado 工程中設置的地址一一對應。
例如:
查看啟動信息,確認設備節(jié)點
在 Kernel 啟動過程中,設備驅動如果能成功完成初始化,一般會打印出對應的設備名稱。例如,如果在 VIVADO 工程中使能了 PS 側的 UART0,那么你可以在 kernel 啟動完成之后,通過 dmesg 指令來查找 UART0 被注冊成了哪個串口設備。
所以如果使用的是自己的硬件平臺,那么盡量不要使用預設的名稱,這樣可以避免導入多余的設備樹信息從而導致編譯失敗或者最終功能不正確。
查看設備初始化信息,確認設備節(jié)點
如果驅動在初始化工程中沒有打印出設備名稱的話,怎么才能知道對應的設備是哪個呢?比如I2C設備,用dmesg并沒有找到VIVADO工程中使能的I2C對應的是哪個設備。
然后在 /dev 下,你可以看到多達9個的 i2c 設備。
這個時候,我們可以去/sys/bus/i2c/device目錄下來確認每個 I2C 設備對應的節(jié)點
進入我們要確認的 I2C 設備,比如 I2C-0 這個設備,再用 ls -l 的指令,就可以看到這個設備對應的是設備樹中具體的哪個節(jié)點了。
總結
用戶需要使用某個設備的時候可以通過本文介紹的兩種方法,結合設備樹信息就可以明確的找到對應的設備了。
原文標題:開發(fā)者分享 | Petalinux中如何確認 dev 下設備的對應關系
文章出處:【微信公眾號:FPGA開發(fā)圈】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
FPGA
+關注
關注
1650文章
22212瀏覽量
627631
原文標題:開發(fā)者分享 | Petalinux中如何確認 dev 下設備的對應關系
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
飛凌嵌入式ElfBoard ELF 1板卡-Linux系統(tǒng)基礎入門-目錄相關shell命令
智慧礦山場景:聚徽嵌入式工控一體機如何實現(xiàn)井下設備無人化操控
在任何平臺上使用PetaLinux的先決條件

請問在S32K344中,DMA的各個channel是否與LPSPI 0~6有固定的對應關系?
從零開始馴服Linux(一):ZYNQ-Linux啟動文件構建全解析
請問stm32mp257如何修改設備樹并加載驅動?
在下載的源碼進入bsp目錄下的一個板子中執(zhí)行menuconfig報錯,怎么解決?
DLP4710EVM I2C指令中的LED current數(shù)值和GUI里的mA數(shù)是什么對應關系呢?
AI Cube進行yolov8n模型訓練,創(chuàng)建項目目標檢測時顯示數(shù)據(jù)集目錄下存在除標注和圖片外的其他目錄如何處理?
晶振在AED設備中的應用
ub933驅動程序是基于I2c編寫的,請問驅動程序應該放在內核drivers目錄下的哪個子目錄里?
晶振與智能設備的關系 晶振在通信設備中的作用
如何在Petalinux下Patch u-boot源碼

評論