รูปแบบแหล่งที่มาของแผนผังอุปกรณ์ (DTS) คือการแสดงข้อความของแผนผังอุปกรณ์ (DT) แบบข้อความ คอมไพเลอร์แผนผังอุปกรณ์ (DTC) จะประมวลผลรูปแบบนี้ใน DT แบบไบนารี ซึ่งเป็นรูปแบบที่เคอร์เนลของ Linux คาดหวัง
ใช้ข้อมูลอ้างอิง
DTC
โปรเจ็กต์ (คอมไพเลอร์แผนผังอุปกรณ์ + แพตช์การวางซ้อน) อธิบายรูปแบบ DTS ใน
dtc-format.txt
และ
manual.txt
รูปแบบและกฎของ DTO ได้อธิบายไว้ใน
dt-object-internal.txt
เอกสารเหล่านี้อธิบายวิธีอัปเดต DT หลักโดยใช้โหนด
fragment@x
และไวยากรณ์ __overlay__
ใน DT แบบวางซ้อน สำหรับ
ตัวอย่าง:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
อย่างไรก็ตาม Google ขอแนะนำให้คุณอย่าใช้
fragment@x
และไวยากรณ์ __overlay__
และใช้
ไวยากรณ์การอ้างอิง เช่น
&some_node {
some_prop = "okay";
...
};
ไวยากรณ์การอ้างอิงได้รับการรวบรวมโดย dtc
เป็นออบเจ็กต์เดียวกับ
ด้านบนโดยใช้ไวยากรณ์ __overlay__
ไม่ได้บังคับให้คุณใช้
กำหนดหมายเลข Fragment ซึ่งจะช่วยให้คุณอ่านและเขียน DTS แบบวางซ้อนได้อย่างง่ายดาย หาก
dtc
ไม่รองรับน้ำตาลสังเคราะห์นี้ โปรดใช้
dtc
ใน AOSP
ใช้ป้ายกำกับ
หากต้องการอนุญาตการอ้างอิงที่ไม่ได้กำหนดไปยังโหนด ซึ่งไม่อยู่ในเวลาคอมไพล์ ค่า
ไฟล์ DT .dts
ที่วางซ้อนต้องมีแท็ก /plugin/
ในไฟล์
ส่วนหัว เช่น
/dts-v1/;
/plugin/;
จากที่นี่ คุณสามารถกำหนดเป้าหมายโหนดที่จะวางซ้อนโดยใช้การอ้างอิง ซึ่งเป็น
เส้นทางของโหนดสัมบูรณ์ที่นำหน้าด้วยเครื่องหมายและ (&) ตัวอย่างเช่น สำหรับ
node@0
ใน DT หลัก:
กำหนดป้ายกำกับใน DT หลัก ... | ... จากนั้นใช้ป้ายกำกับ |
---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
ลบล้าง
หากมีพร็อพเพอร์ตี้เป้าหมายอ้างอิงอยู่ใน DT หลัก พร็อพเพอร์ตี้ดังกล่าวจะถูกลบล้าง หลังองค์กร DTO หรือไม่เช่นนั้น ก็จะถูกเพิ่มต่อท้าย เช่น
Main.dts | การซ้อนทับ.dts | ผลลัพธ์ที่ผสานรวม |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
ต่อท้าย
หากไม่มีพร็อพเพอร์ตี้เป้าหมายข้อมูลอ้างอิงใน DT หลัก ต่อท้ายหลัง DTO เช่น
Main.dts | การซ้อนทับ.dts | ผลลัพธ์ที่ผสานรวม |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
โหนดย่อย
ตัวอย่างไวยากรณ์ของโหนดย่อย
Main.dts | การซ้อนทับ.dts | ผลลัพธ์ที่ผสานรวม |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |