Формат источника дерева устройств (DTS) — это текстовое представление дерева устройств (DT). Компилятор дерева устройств (DTC) преобразует этот формат в двоичное DT, которое соответствует форме, ожидаемой ядром Linux.
Используйте ссылки
Проект DTC (компилятор дерева устройств + наложенные исправления) описывает формат DTS в dtc-format.txt и manual.txt . Формат и правила DTO описаны в dt-object-internal.txt . В этих документах описывается, как обновить основное ОУ с использованием узла fragment@x
и синтаксиса __overlay__
в оверлейном ОУ. Например:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
Однако Google настоятельно рекомендует не использовать fragment@x
и синтаксис __overlay__
, а вместо этого использовать ссылочный синтаксис. Например:
&some_node {
some_prop = "okay";
...
};
Справочный синтаксис компилируется dtc
в тот же объект, что и выше, с использованием синтаксиса __overlay__
. Этот синтаксис не требует нумерации фрагментов, что позволяет легко читать и записывать наложенный DTS. Если ваш dtc
не поддерживает этот синтаксический сахар, используйте dtc в AOSP .
Используйте ярлыки
Чтобы разрешить неопределенные ссылки на узлы, отсутствующие во время компиляции, файл оверлея DT .dts
должен иметь тег /plugin/
в своем заголовке. Например:
/dts-v1/;
/plugin/;
Отсюда вы можете выбрать узлы для наложения, используя ссылку, которая представляет собой абсолютный путь к узлу с префиксом амперсанда (&). Например, для node@0
в главном ОУ:
Определить метки в основном ОУ... | ... тогда используйте метки. |
---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] |
Переопределить
Если свойство эталонного целевого объекта существует в основном ОУ, оно переопределяется после DTO; в противном случае оно добавляется. Например:
main.dts | оверлей.dts | Объединенный результат |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |
Добавить
Если целевое свойство ссылки не существует в основном ОУ, оно добавляется после 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/; |