Cihaz ağacı kaynağı (DTS) biçimi, cihaz ağacının (DT) metin biçiminde temsilidir. Cihaz ağacı derleyicisi (DTC), bu biçimi ikili bir DT olarak işler, Bu, Linux çekirdeği tarafından beklenen biçimdir.
Referansları kullan
DTC
(device Tree derleyici + yer paylaşımlı yamalar) projesi, DTS biçimini
dtc-format.txt
ve
manual.txt.
Uyuşturucu ticareti örgütlerinin biçimi ve kuralları şurada açıklanmıştır:
dt-object-internal.txt
Bu dokümanlarda, düğüm kullanılarak ana DT'nin nasıl güncelleneceği açıklanmaktadır
Yer paylaşımı DT'sinde fragment@x
ve söz dizimi __overlay__
. Örneğin,
örnek:
/ { fragment@0 { target = <&some_node>; __overlay__ { some_prop = "okay"; ... }; }; };
Ancak Google, GCLID'yi kullanmamanızı
fragment@x
ve __overlay__
söz dizimini kullanın ve onun yerine
referans söz dizimi. Örnek:
&some_node { some_prop = "okay"; ... };
Referans söz dizimi, dtc
tarafından şununla aynı nesnede derlenir:
yukarıdaki adımları uygulayın: __overlay__
. Bu söz dizimi,
Böylece bindirme DTS'lerini kolayca okuyup yazabilirsiniz. Eğer
dtc
bu sentetik şekeri desteklemiyor.
dtc
AOSP'de.
Etiketleri kullan
Derleme zamanında mevcut olmayan düğümlere tanımlanmamış referanslara izin vermek için
yer paylaşımlı DT .dts
dosyasının içinde /plugin/
etiketi olmalıdır
kullanabilirsiniz. Örnek:
/dts-v1/; /plugin/;
Buradan, bir referans kullanılarak yer paylaşımlı olacak düğümleri hedefleyebilirsiniz. Bu referans
önünde "ve" işareti (&) bulunan bir mutlak düğüm yolu. Örneğin,
Ana DT'de node@0
:
Ana DT'de etiketleri tanımlayın ... | ... ardından etiketleri kullanın. |
---|---|
[my_main_dt.dts] /dts-v1/; / { my_node: node@0 { status = "disabled"; my_child: child@0 { value = <0xffffffff>; }; }; }; |
[my_overlay_dt.dts] /dts-v1/; /plugin/; &my_node { status = "okay"; }; &my_child { value = <0x1>; }; |
Geçersiz kıl
Referans hedef mülkü ana DT'de varsa geçersiz kılınır uyuşturucu ticareti örgütlerinden sonra; aksi takdirde eklenir. Örnek:
ana.dts | yer paylaşımlı.dts | Birleştirilmiş Sonuç |
---|---|---|
[my_main_dt.dts] /dts-v1/; / { compatible = "corp,foo"; my_node: node@0 { status = "disabled"; }; }; |
[my_overlay_dt.dts] /dts-v1/; /plugin/; &my_node { status = "okay"; }; |
/dts-v1/; / { compatible = "corp,foo"; ... node@0 { linux,phandle = <0x1>; phandle = <0x1>; status = "okay"; }; }; |
İliştir
Referans hedef mülkü ana DT'de yoksa DTO'dan sonra eklenir. Örnek:
ana.dts | yer paylaşımlı.dts | Birleştirilmiş Sonuç |
---|---|---|
[my_main_dt.dts] /dts-v1/; / { compatible = "corp,foo"; my_node: node@0 { status = "okay"; }; }; |
[my_overlay_dt.dts] /dts-v1/; /plugin/; &my_node { new_prop = "bar"; }; |
/dts-v1/; / { compatible = "corp,foo"; ... node@0 { linux,phandle = <0x1>; phandle = <0x1>; status = "okay"; new_prop = "bar"; }; }; |
Alt düğümler
Alt düğüm söz dizimi örnekleri:
ana.dts | yer paylaşımlı.dts | Birleştirilmiş Sonuç |
---|---|---|
[my_main_dt.dts] /dts-v1/; / { compatible = "corp,foo"; my_nodes: nodes { compatible = "corp,bar"; node@0 { status = "disabled"; }; }; }; |
[my_overlay_dt.dts] /dts-v1/; /plugin/; &my_nodes { new_prop1 = "abc"; node@0 { status = "okay"; new_prop2 = "xyz"; }; }; |
/dts-v1/; / { compatible = "corp,foo"; ... nodes { linux,phandle = <0x1>; phandle = <0x1>; compatible = "corp,bar"; new_prop1 = "abc"; node@0 { linux,phandle = <0x2>; phandle = <0x2>; status = "okay"; new_prop2 = "xyz"; }; }; }; |