1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-OpenSBI

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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_платформы>

Создание 32-битных / 64-битных образов OpenSBI

По умолчанию при создании 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. И наоборот.

Сборка с Clang/LLVM

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 )

Вы можете оставить комментарий после Вход в систему

Введение

RISC-V Supervisor двоичный интерфейс (SBI) является рекомендуемым интерфейсом для следующего: * специфичное для платформы встроенное ПО, работающее в M-режиме; * программы начальной загрузки, выполняемые в S- или HS-режимах; * управляющие программы; * универсальные ОС. Расширить Свернуть
BSD-2-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/mirrors-OpenSBI.git
git@gitlife.ru:oschina-mirror/mirrors-OpenSBI.git
oschina-mirror
mirrors-OpenSBI
mirrors-OpenSBI
master