рекурсивно перечислить каталог с подпутьем и листовыми узлами (файлами) первыми ( для пакетного переименования части имен файлов)?

Да, все, что делает Makefile, можно сделать вручную. В случае с исходниками дерева устройств ядра, они используют команды препроцессора C, даже если язык дерева устройств и компилятор их не поддерживают.

Что делает ядро, и что должны сделать и вы, так это пропустить исходный текст дерева устройств через препроцессор C и компилятор дерева устройств в последовательности, как показано ниже:

cpp -Iinclude -E -P -x assembler-with-cpp imx6dl-boardname.dts | dtc -I dts -O dtb -o imx6dl-boardname.dtb -

(Это команда, которую я использую сам, с очевидным замечанием, что имя платы изменено, чтобы отразить мое оборудование - я собрал это вместе из правил Makefile и сообщений об ошибках препроцессора)

Аргументы препроцессора:

  • -Iinclude Источники дерева устройств ядра в основном #include , который является путем относительно arch/arm/boot/dts/include.

  • -E означает только препроцесс, не уверен, что это необходимо при использовании команды cpp

  • -P отключает комментарии номеров строк исходного текста, которые путают компилятор дерева устройств

  • -x assembler-with-cpp заставляет препроцессор работать в определенном языковом режиме, что, я полагаю, помогает ему не запутаться в синтаксисе дерева устройств в том же файле, что и директивы препроцессора. Я использую его, потому что он был в Makefiles ядра.

  • imx6dl-boardname.dts - это заполнитель, вы должны изменить его на имя вашего исходного файла дерева устройств верхнего уровня

Аргументы компилятора дерева устройств:

  • -I dts указывает, что входной формат - текстовый источник дерева устройств
  • -O dtb указывает на создание бинарного блоба дерева устройств
  • -o imx6dl-boardname. dtb определяет имя файла, в который будет выведен результат, вы должны заменить его на нужное вам имя файла DTB.
  • - указывает, что входным файлом является stdin
0
06.12.2017, 22:04
0 ответов

Теги

Похожие вопросы