1.內(nèi)核中對一個設(shè)備節(jié)點的表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | struct device_node { const char *name; //節(jié)點的名字 const char *type; //device_type屬性的值 phandle phandle; //對應(yīng)該節(jié)點的phandle屬性 const char *full_name; //節(jié)點的名字, node-name[@unit-address]從“/”開始的,表示該node的full path struct fwnode_handle fwnode; struct property *properties; // 節(jié)點的屬性 struct property *deadprops; /* removed properties 如果需要刪除某些屬性,kernel并非真的刪除,而是掛入到deadprops的列表 */ struct device_node *parent; // 節(jié)點的父親 struct device_node *child; // 節(jié)點的孩子(子節(jié)點) struct device_node *sibling; // 節(jié)點的兄弟(同級節(jié)點) #if defined(CONFIG_OF_KOBJ) // 在sys文件系統(tǒng)表示 struct kobject kobj; #endif unsigned long _flags; void *data; #if defined(CONFIG_SPARC) const char *path_component_name; unsigned int unique_id; struct of_irq_controller *irq_trans; #endif }; |
從這里我們就可以看到一個設(shè)備節(jié)點的大概組織形式了。通過下面這三個組織成一個樹形結(jié)構(gòu)。
1 2 3 | struct device_node *parent; // 節(jié)點的父親 struct device_node *child; // 節(jié)點的孩子(子節(jié)點) struct device_node *sibling; // 節(jié)點的兄弟(同級節(jié)點) |
device_node結(jié)構(gòu)體中有properties, 用來表示該節(jié)點的屬性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | struct property { char *name; //屬性名字 int length; //value的長度 void *value; //屬性值 struct property *next; //指向統(tǒng)一節(jié)點的下一個屬性 #if defined(CONFIG_OF_DYNAMIC) || defined(CONFIG_SPARC) unsigned long _flags; #endif #if defined(CONFIG_OF_PROMTREE) unsigned int unique_id; #endif #if defined(CONFIG_OF_KOBJ) struct bin_attribute attr; #endif }; |
2.舉例說明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /dts-v1/; /memreserve/ 0x4ff00000 0x100000; / { model = 'YIC System SMDKV210 based on S5PV210'; compatible = 'yic,smdkv210', 'samsung,s5pv210'; #address-cells = <1>; #size-cells = <1>; chosen { bootargs = 'console=ttySAC2,115200n8 root=/dev/nfs nfsroot=192.168.0.101:/home/run/work/rootfs/'; }; memory@30000000 { device_type = 'memory'; reg = <0x30000000 0x20000000>; }; }; |
下圖表示上面的根節(jié)點和其里面的兩個子節(jié)點。
接下來向里面填充屬性值
首先是把根節(jié)點里的4個屬性進(jìn)行填充
在添加上其它兩個節(jié)點的屬性后如下。
上一篇:ARM---搭建開發(fā)板的開發(fā)環(huán)境(x210v3s)
下一篇:android camera(三):camera V4L2 FIMC
- 熱門資源推薦
- 熱門放大器推薦
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- arduino esp8266開發(fā)板
- 【航順訓(xùn)練營】基于航順HKF030的學(xué)習(xí)板設(shè)計
- DC1299A-B,用于 LTC6421CUD-20 雙路匹配 1.3GHz 差分放大器/ADC 驅(qū)動器的演示板
- NCV7429V1GEVB:NCV7429 系統(tǒng)基礎(chǔ)芯片評估板
- 使用 Analog Devices 的 LT1184FCS 的參考設(shè)計
- NCV78M09BDTRKG 9V可調(diào)輸出穩(wěn)壓器的典型應(yīng)用
- 【吉醫(yī)iCAN大賽】燈光品質(zhì)檢測
- AM6TW-2407DH35Z ±7.2V 6 瓦單輸出 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- 555_BJT-1811571124
- RDR-648 - 使用 HiperPFS-4 和 HiperLCS 的 150 W 功率因數(shù)校正 LLC 電源
- 480Wh/kg!湖南久森半固態(tài)金屬鋰負(fù)極電池即將量產(chǎn)
- 中國首條硫化物固體電解質(zhì)量產(chǎn)線正式落地
- QUT開發(fā)出新的LENS系統(tǒng) 可以讓機(jī)器人進(jìn)行類似大腦的導(dǎo)航
- 毫米波雷達(dá)裝機(jī)量分析:毫米波雷達(dá)裝車量持續(xù)攀升,大陸和博世占據(jù)60%以上市場份額
- TDK推出適用于車載濾波器的同軸電纜供電電感器
- 大摩給“人形機(jī)器人100”清單注入新思路
- 行家預(yù)判:2025年車載Mini LED反超OLED
- 2025數(shù)智未來峰會:深度解讀AI賦能工業(yè)的趨勢與實踐
- 工業(yè)自動化中的Raspberry Pi:簡化經(jīng)濟(jì)實惠的邊緣計算
- 意法半導(dǎo)體宣布擴(kuò)大在新加坡的“Lab-in-Fab”廠內(nèi)實驗室合作項目
- 英國政府:決定采用中國無人機(jī)對抗新冠肺炎疫情
- 王傳福:新能源車企一味追求電池能量密度不理性
- 泰國囚犯越獄事件:機(jī)器人執(zhí)法或成趨勢?
- 更省成本更省空間,Vishay IHLE集成式電場屏蔽電感器問市
- 肖特榮獲海信寬帶核心供應(yīng)商稱號
- CISSOID聯(lián)手華中科技大學(xué),共同釋放SIC更多潛能
- LTspice音頻WAV文件:使用立體聲和加密語音消息
- 多功能多用途,翠展微超低功耗數(shù)字式熱釋電傳感器問市
- 美國2萬億美元經(jīng)濟(jì)刺激:科技業(yè)分到多少羹
- 機(jī)器人產(chǎn)業(yè)發(fā)展:從“人工智障"到“人工智能”