RK平臺查看板子上的dts信息

簡介

dts文件描述了硬件每個模塊的信息,我們嵌入式軟件的調試很多時候都是在改dts文件,有時候我們不確定板子上的固件是否已經更新了我們的修改,這時候我們可以直接讀取板子上的dts信息,下面來演示一下。

進入uboot命令行模式

RK的默認SDK中,如果想進入uboot命令行模式,開機的時候在調試串口界面按住鍵盤的CTRL+C,上電,這時候如果看到如下信息,就說明已經進入uboot命令行模式:

Hit key to stop autoboot('CTRL+C'):  0 
=> <INTERRUPT>
=> <INTERRUPT>
=> <INTERRUPT>

fdt基本操作

FDT,flatted device tree,直接翻譯過來是:扁平設備樹,大概意思就是把設備信息結構存放到device tree文件中。這里我們可以通過幫助選項看其應用:

=> fdt
fdt - flattened device tree utility commandsUsage:
fdt addr [-c]  <addr> [<length>]   - Set the [control] fdt location to <addr>
fdt apply <addr>                    - Apply overlay to the DT
fdt move   <fdt> <newaddr> <length> - Copy the fdt to <addr> and make it active
fdt resize [<extrasize>]            - Resize fdt to size + padding to 4k addr + some optional <extrasize> if needed
fdt print  <path> [<prop>]          - Recursive print starting at <path>
fdt list   <path> [<prop>]          - Print one level starting at <path>
fdt get value <var> <path> <prop>   - Get <property> and store in <var>
fdt get name <var> <path> <index>   - Get name of node <index> and store in <var>
fdt get addr <var> <path> <prop>    - Get start address of <property> and store in <var>
fdt get size <var> <path> [<prop>]  - Get size of [<property>] or num nodes and store in <var>
fdt set    <path> <prop> [<val>]    - Set <property> [to <val>]
fdt mknode <path> <node>            - Create a new node after <path>
fdt rm     <path> [<prop>]          - Delete the node or <property>
fdt header                          - Display header info
fdt bootcpu <id>                    - Set boot cpuid
fdt memory <addr> <size>            - Add/Update memory node
fdt rsvmem print                    - Show current mem reserves
fdt rsvmem add <addr> <size>        - Add a mem reserve
fdt rsvmem delete <index>           - Delete a mem reserves
fdt chosen [<start> <end>]          - Add/update the /chosen branch in the tree<start>/<end> - initrd start/end addr
NOTE: Dereference aliases by omitting the leading '/', e.g. fdt print ethernet0.

讀dts信息

從上面的幫助選項我們可以看到,通過fdt list <path> [<prop>]就可以讀到某個模塊的信息,那么,我們怎么知道對應模塊的path呢?以RK3568的otg口usbdrd_dwc3控制器節點為例,這里有兩種方法:

  • 從源代碼的dts配置獲取
        usbdrd30: usbdrd {compatible = "rockchip,rk3568-dwc3", "rockchip,rk3399-dwc3";clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,<&cru ACLK_USB3OTG0>, <&cru PCLK_PIPE>;clock-names = "ref_clk", "suspend_clk","bus_clk", "pipe_clk";#address-cells = <2>; #size-cells = <2>; ranges;status = "disabled";usbdrd_dwc3: dwc3@fcc00000 {compatible = "snps,dwc3";reg = <0x0 0xfcc00000 0x0 0x400000>;interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;dr_mode = "otg";phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;phy-names = "usb2-phy", "usb3-phy";phy_type = "utmi_wide";power-domains = <&power RK3568_PD_PIPE>;resets = <&cru SRST_USB3OTG0>;reset-names = "usb3-otg";snps,dis_enblslpm_quirk;snps,dis-u1u2-quirk;snps,dis-u2-freeclk-exists-quirk;snps,dis-del-phy-power-chg-quirk;snps,dis-tx-ipgap-linecheck-quirk;snps,dis_rxdet_inp3_quirk;snps,xhci-trb-ent-quirk;quirk-skip-phy-init;status = "disabled";};   };   

從rk3568.dtsi可以看到,usbdrd_dwc3是在usbdrd30節點下面,usbdrd30是根節點,因此path應該是:/usbdrd/dwc3@fcc00000

  • 打印所有節點信息
    在uboot命令行模式下,執行fdt print可以把dts所有的節點信息打印出來,然后查找到你想要的節點名字,如:
usbdrd_dwc3 = "/usbdrd/dwc3@fcc00000";

因此path應該是:/usbdrd/dwc3@fcc00000
確認path之后,執行指令,結果為:

=> fdt list /usbdrd/dwc3@fcc00000
dwc3@fcc00000 {compatible = "snps,dwc3";reg = <0x00000000 0xfcc00000 0x00000000 0x00400000>;interrupts = <0x00000000 0x000000a9 0x00000004>;dr_mode = "otg";phys = <0x00000024 0x00000020 0x00000004>;phy-names = "usb2-phy", "usb3-phy";phy_type = "utmi_wide";power-domains = <0x00000021 0x0000000f>;resets = <0x0000001f 0x00000094>;reset-names = "usb3-otg";snps,dis_enblslpm_quirk;snps,dis-u1u2-quirk;snps,dis-u2-freeclk-exists-quirk;snps,dis-del-phy-power-chg-quirk;snps,dis-tx-ipgap-linecheck-quirk;snps,dis_rxdet_inp3_quirk;snps,xhci-trb-ent-quirk;quirk-skip-phy-init;status = "okay";extcon = <0x00000025>;phandle = <0x0000016f>;
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161022.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161022.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161022.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于軟raid的實現及常見問題

RAID概念 磁盤陣列&#xff08;Redundant Arrays of Independent Disks&#xff0c;RAID&#xff09;&#xff0c;有“獨立磁盤構成的具有冗余能力的陣列”之意。 磁盤陣列是由很多價格較便宜的磁盤&#xff0c;以硬件&#xff08;RAID卡&#xff09;或軟件&#xff08;MDADM&…

關于用css設置input輸入框hover的時候的樣式以及當input為disabled的時候,不要讓hover樣式生效

效果如果&#xff1a; 編輯狀態下的時候&#xff1a; 只讀狀態下的時候&#xff1a; 代碼如圖&#xff1a; <input type"text" name"dataForm.exportCode" id"exportCodeItem" required :disabled"editDisabled" />input:not(…

【前端學java】語法練習-工具類的封裝(13)

往期回顧&#xff1a; 【前端學java】JAVA開發的依賴安裝與環境配置 &#xff08;0&#xff09;【前端學 java】java的基礎語法&#xff08;1&#xff09;【前端學java】JAVA中的packge與import&#xff08;2&#xff09;【前端學java】面向對象編程基礎-類的使用 &#xff08…

java.net.UnknownHostException: eureka

java.net.UnknownHostException: eureka 哦。HOST漏了 #linux /etc/hosts #windows C:\Windows\System32\drivers\etc\hosts 127.0.0.1 eureka7000 127.0.0.1 eureka7001 127.0.0.1 eureka7002

maven打包可執行jar含依賴lib

修改pom.xml <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- jdk8可用&#xff0c;其他jdk版本可能需改插件版本 --><version>2.3.7.RE…

sql調優

慢查詢 SQL 治理方案 一、SQL 性能下降的原因 在對 SQL 進行分析之前&#xff0c;需要明確可能導致 SQL 執行性能下降的原因進行分析&#xff0c;執行性能下降可以體現在很多方面&#xff1a; 查詢語句寫的爛索引沒加好表數據過大數據庫連接數不夠查詢的數據量過大被其他慢s…

MyBatisPlus代碼生成

基礎依賴 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

visual studio 如何建立 C 語言項目

安裝這個 模塊。 新建 空項目 創建完成 寫demo 點擊運行&#xff1a;

【1day】泛微e-office OA系統user_page接口未授權訪問漏洞學習

注:該文章來自作者日常學習筆記,請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與作者無關。 目錄 一、漏洞描述 二、影響版本 三、資產測繪 四、漏洞復現

Web項目從Tomcat遷移到TongWeb

注意事項 1. 使用JNDI方式獲取數據源&#xff1a; ①在TongWeb創建JDBC連接池; ②修改Web項目數據源配置. #spring.datasource.urljdbc:mysql://127.0.0.1:3306/demo #spring.datasource.usernametest #spring.datasource.passwordspring.datasource.jndi-namedemo2. 修…

Spring cloud - Hystrix源碼

其實只是Hystrix初始化部分&#xff0c;我們從源碼的角度分析一下EnableCircuitBreaker以及HystrixCommand注解的初始化過程。 從EnableCircuitBreaker入手 我們是通過在啟動類添加EnableCircuitBreaker注解啟用Hystrix的&#xff0c;所以&#xff0c;源碼解析也要從這個注解…

最新PHP熊貓頭圖片表情斗圖生成源碼

這是一款能生成熊貓頭表情斗圖的自適應系統源碼&#xff0c;無論是在電腦還是手機上都可以正常使用&#xff01;這個源碼集成了搜狗搜索圖片接口&#xff0c;可以輕松地一鍵搜索數百萬張圖片&#xff0c;并且還包含了表情制作等功能模塊。對于一些新站來說&#xff0c;這是一個…

Cloud微服務

當我們談論“云微服務”時&#xff0c;通常是指基于云計算和微服務架構的應用程序開發和部署模型。以下是關于云微服務的一些詳細信息&#xff1a; 微服務架構&#xff1a; 微服務架構是一種軟件設計和開發模式&#xff0c;將應用程序劃分為一組小型、獨立的服務單元。每個服…

c++ LRU(最近最少使用)緩存機制

// LRU(最近最少使用)緩存機制 #ifndef _ZD_LRU_CACHE_H_ #define _ZD_LRU_CACHE_H_#include <unordered_map> #include <list> #include <mutex>class ZDLRUCahce { public:ZDLRUCahce(int capacity): m_capacity(capacity){}~ZDLRUCahce(){}// 1.key不存在…

JavaScript的過濾大師:深度解析Filter用法

JavaScript的過濾大師&#xff1a;深度解析Filter用法 前言基礎篇filter的基本用法語法示例 自定義過濾函數數組對象的過濾復雜條件的篩選常見應用場景性能優化注意性能的建議在大規模數據集下的優化方法 案例分析實際案例&#xff1a;用戶篩選使用 filter 方法解決問題代碼優化…

產品工程師工作的職責十篇(合集)

一、崗位職責的作用意義 1.可以最大限度地實現勞動用工的科學配置; 2.有效地防止因職務重疊而發生的工作扯皮現象; 3.提高內部競爭活力&#xff0c;更好地發現和使用人才; 4.組織考核的依據; 5.提高工作效率和工作質量; 6.規范操作行為; 7.減少違章行為和違章事故的發生…

好視通視頻會議系統(fastmeeting) toDownload.do接口存在任意文件讀取漏洞復現 [附POC]

文章目錄 好視通視頻會議系統(fastmeeting) toDownload.do接口存在任意文件讀取漏洞復現 [附POC]0x01 前言0x02 漏洞描述0x03 影響版本0x04 漏洞環境0x05 漏洞復現1.訪問漏洞環境2.構造POC3.復現 0x06 修復建議 好視通視頻會議系統(fastmeeting) toDownload.do接口存在任意文件…

超詳細!新手必看!STM32-通用定時器簡介與知識點概括

一、通用定時器的功能 在基本定時器功能的基礎上新增功能&#xff1a; 通用定時器有4個獨立通道&#xff0c;且每個通道都可以用于下面功能。 &#xff08;1&#xff09;輸入捕獲&#xff1a;測量輸入信號的周期和占空比等。 &#xff08;2&#xff09;輸出比較&#xff1a;產…

Gradle常用命令與參數依賴管理和版本決議

一、Gradle 常用命令與參數 本課程全程基于 Gradle8.0 環境 1、Gradle 命令 介紹 gradle 命令之前我們先來了解下 gradle 命令怎么在項目中執行。 1.1、gradlew gradlew 即 Gradle Wrapper&#xff0c;在學習小組的第一課時已經介紹過了這里就不多贅述。提一下執行命令&am…