Format źródła drzewa urządzeń (DTS) to tekstowa reprezentacja drzewa urządzeń (DT). Kompilator drzewa urządzeń (DTC) przetwarza ten format na binarny plik przenoszenia danych, w formacie oczekiwanym przez jądro Linuksa.
Korzystaj z plików referencyjnych
DTC
Projekt (kompilator drzewa + łatki nakładek) opisuje format DTS w
dtc-format.txt
oraz
manual.txt.
Format i reguły organizacji DTO opisano w
dt-object-internal.txt.
Te dokumenty opisują, jak zaktualizować główny plik przenoszenia danych za pomocą węzła
fragment@x
i składnia __overlay__
w nakładce przenoszenia danych. Dla:
przykład:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
Jednak zdecydowanie zalecamy, aby nie używać
fragment@x
i składni __overlay__
, a zamiast tego użyj
składni odwołania. Na przykład:
&some_node {
some_prop = "okay";
...
};
Składnia odwołania jest skompilowana przez funkcję dtc
do tego samego obiektu co
powyżej, używając składni __overlay__
. Ta składnia nie wymusza na Tobie
ponumerować fragmenty, co ułatwia ich odczytywanie i zapisywanie. Jeśli
dtc
nie obsługuje tego cukru składniowego, użyj makra
dtc
w AOSP.
Używanie etykiet
Aby umożliwić niezdefiniowane odwołania do węzłów, których nie było w czasie kompilacji, funkcja
plik .dts
przenoszenia danych nakładki musi zawierać tag /plugin/
nagłówek. Na przykład:
/dts-v1/;
/plugin/;
Tutaj możesz ustawić kierowanie na węzły, które mają być nakładane, za pomocą odwołania, czyli
bezwzględna ścieżka węzła poprzedzona znakiem &. Na przykład w przypadku funkcji
node@0
w głównym interfejsie przenoszenia danych:
Zdefiniuj etykiety w głównym pliku przenoszenia danych ... | ... a potem użyj etykiet. |
---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
Zastąp
Jeśli referencyjna właściwość docelowa znajduje się w głównym pliku przenoszenia danych, zostanie zastąpiona po organizacji obsługi klienta; w przeciwnym razie zostanie dołączone. Na przykład:
main.dts. | nakładek.dts | Wynik scalony |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
Dołącz
Jeśli referencyjnej właściwości docelowej nie ma w głównym pliku przenoszenia danych, jest ona dołączany po DTO. Na przykład:
main.dts. | nakładek.dts | Wynik scalony |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
Węzły podrzędne
Przykłady składni węzłów podrzędnych:
main.dts. | nakładek.dts | Wynik scalony |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |