build/platform/<platform_subdir>/firmware каталог.
Скомпилированные прошивки будут доступны в двух разных форматах: файл ELF и файл с расширенным образом.
Чтобы установить libsbi.a, libplatsbi.a и скомпилированные прошивки, выполните:
make PLATFORM=<platform_subdir> install
Это скопирует скомпилированные библиотеки и файлы прошивок для конкретной платформы в каталог install/platform/<platform_subdir>. Можно указать альтернативный корневой каталог установки следующим образом:
make PLATFORM=<platform_subdir> I=<install_directory> install
Кроме того, параметры конфигурации для конкретной платформы можно задать с помощью команды make верхнего уровня. Эти параметры, такие как PLATFORM_ или FW_, являются специфичными для платформы и описаны более подробно в файлах docs/platform/<имя_платформы>.md и docs/firmware/<имя_прошивки>.md.
Все платформы OpenSBI поддерживают конфигурацию времени сборки в стиле Kconfig. Пользователи могут изменить конфигурацию времени сборки платформы с помощью графического интерфейса следующим образом:
make PLATFORM=<platform_subdir> menuconfig
В качестве альтернативы платформа OpenSBI может иметь несколько конфигураций по умолчанию, и пользователи могут выбрать пользовательскую конфигурацию по умолчанию следующим образом:
make PLATFORM=<platform_subdir> PLATFORM_DEFCONFIG=<custom_defconfig_платформы>
По умолчанию при создании OpenSBI создаются 32-битные или 64-битные образы на основе предоставленной инструментальной цепочки кросс-компиляции RISC-V. Например, если CROSS_COMPILE установлен на riscv64-linux-gnu-, будут созданы 64-битные образы OpenSBI. При создании 32-битных образов OpenSBI CROSS_COMPILE должен быть настроен на генерацию 32-битного кода RISC-V, например, riscv32-linux-gnu-.
Однако можно явно указать биты образа, который мы хотим создать, с помощью заданной инструментальной цепочки RISC-V. Это можно сделать, установив переменную среды PLATFORM_RISCV_XLEN на желаемую ширину, например:
export CROSS_COMPILE=riscv64-linux-gnu-
export PLATFORM_RISCV_XLEN=32
создаст 32-битный образ OpenSBI. И наоборот.
OpenSBI также можно собрать с помощью Clang/LLVM. Чтобы собрать только с Clang, но сохранить стандартные binutils (которые всё равно будут использовать префикс CROSS_COMPILE, если он определён), переопределите переменную CC с помощью:
make CC=clang
Чтобы собрать полный набор инструментов на базе LLVM, а не только Clang, включите опцию LLVM с:
make LLVM=1
При использовании Clang CROSS_COMPILE часто не нужно определять, если не используются GNU binutils с префиксом имени двоичного файла. PLATFORM_RISCV_XLEN будет использоваться для вывода значения по умолчанию для тройки, передаваемой Clang, поэтому, если значение PLATFORM_RISCV_XLEN по умолчанию не соответствует желаемому значению, предпочтительнее установить его, а не полную тройку через CROSS_COMPILE. Если CROSS_COMPILE тем не менее определён, то вместо использования в качестве префикса для имени исполняемого файла он будет передан через параметр --target
без завершающего -, поэтому должен быть допустимой тройкой.
Их также можно комбинировать; например, использование кросс-компилятора GCC, но binutils LLVM будет выглядеть так:
make CC=riscv64-linux-gnu-gcc LLVM=1
Эти переменные необходимо передавать для всех описанных в этом документе вызовов make.
ПРИМЕЧАНИЕ: Использование Clang с компоновщиком riscv-linux-gnu GNU binutils приводило к созданию неработающих двоичных файлов с отсутствующими перемещениями; поэтому в настоящее время рекомендуется избегать этой комбинации.
Во время разработки нам может потребоваться информация о времени сборки и компиляторе для целей отладки. OpenSBI также может быть собран с отметкой времени и информацией о компиляторе. Чтобы собрать эти данные и распечатать их во время загрузки, можно просто добавить BUILD_INFO=y, например:
make BUILD_INFO=y
Но если вы использовали BUILD_INFO=y и хотите переключиться обратно на BUILD_INFO=n, перед следующей сборкой необходимо выполнить
make clean
.
ПРИМЕЧАНИЕ: использование BUILD_INFO=y без указания SOURCE_DATE_EPOCH нарушит воспроизводимость.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )