5 подписчиков
Компиляция Devicetree
В этом разделе описывается процесс использования компилятора devicetree (DTC) для компиляции исходных текстов devicetree в большой двоичный объект devicetree (DTB). Blob-объект дерева устройств является частью процесса проектирования Xilinx, описанного в разделе Начало работы.
Шаг 1: Получение исходного кода компилятора Devicetree - dtc
Ниже приведены команды, которые можно использовать для извлечения DTC непосредственно из репозитория Git. В качестве альтернативы, DTC поставляется как часть исходного кода Linux. Например, если исходный каталог Xilinx Linux доступен, DTC будет найден в linux-xlnx/scripts/dtc.
Версия dtc, которую мы использовали и проверили, была 1.6.1
git clone git.kernel.org/...git
cd dtc
make
export PATH=$PATH:/<path-to-dtc>/dtc
Шаг 2: Предварительная обработка исходных текстов Devicetree
Как описано в предыдущем разделе, DTG создает несколько файлов devicetree и связывает их вместе с помощью директив "#include". Прежде чем исходный код devicetree можно будет передать компилятору (DTC), DTS верхнего уровня должны быть предварительно обработаны для объединения всех источников в единый DTS. Это можно сделать с помощью стандартного компилятора GNU C. Например:
gcc -I my_dts -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp -o system.dts system-top.dts
Шаг 3: Компиляция Blob-файла Devicetree (.dtb) из DTS
Для компиляции файла DTS в файл DTB используется утилита под названием device tree compiler (DTC), который мы собрали из исходников на Шаге 1 -- dtс .
Как только DTC будет доступен, можно вызвать инструмент для генерации DTB, где "system.dts" - это совокупный исходный код devicetree, полученный в результате предварительной обработки.
cd /<path-to-dtc>/dtc
dtc -I dts -O dtb -o system.dtb system.dts
DTC также может использоваться для преобразования DTB обратно в DTS:
dtc -I dtb -O dts -o system.dts system.dtb
1 минута
22 ноября 2023