Пример nvme_blockdevice
Пример демонстрирует использование твердотельного накопителя информации, подключаемого по шине PCI Express и поддерживающего протокол NVMe (Non-Volatile Memory Express). Для доступа к накопителю используется драйвер блочного устройства.
Твердотельный накопитель информации подключается к аппаратной платформе Radxa ROCK 3A к разъему M.2 M-key.
Директория примера в SDK
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<platform>-<version>/examples/nvme_blockdevice
Список программ
NvmeBlockdevice– прикладная программа, осуществляющая операции записи и чтения с твердотельным накопителем информации.DCM– системная программа, позволяющая динамически создавать IPC-каналы.NVME– драйвер блочного устройства, поддерживающий интерфейс NVMe, используемый для взаимодействия с высокоскоростными SSD-накопителями через шину PCIe.
При сборке примера для целевой аппаратной платформы в решение автоматически включаются платформенно-зависимые драйверы:
BSP– пакет поддержки аппаратной платформы (англ. Board Support Package). Обеспечивает кросс-платформенную настройку периферии.PCIE– драйвер шины PCIe для Radxa ROCK 3A.GPIO– драйвер поддержки GPIO для Radxa ROCK 3A.PinCtrl– драйвер низкоуровневой конфигурации мультиплексирования пинов (pinmux) для Radxa ROCK 3A.
Описание инициализации
Файл описания инициализации решения init.yaml генерируется в процессе сборки решения на основе шаблона ./einit/src/init.yaml.in. Макросы вида @INIT_*@, которые содержатся в шаблоне, автоматически раскрываются в итоговом файле init.yaml. Подробнее см. "Шаблон init.yaml.in".
Описание политики безопасности
Файл security.psl содержит описание политики безопасности решения на базе KasperskyOS и находится в директории ./einit/src. Декларации в PSL-файле снабжены комментариями, которые поясняют назначение этих деклараций.
Сценарий работы
Программа NvmeBlockdevice выполняет следующие действия:
- Инициализирует драйвер блочного устройства.
- Перечисляет все обнаруженные блочные устройства.
- Открывает первое блочное устройство, поддерживающее интерфейс NVMe и выводит информацию о нем.
- Записывает 64 МБ данных на открытое устройство, начиная с первого блока, и выводит время (в мс), затраченное на эту операцию.
- Выполняет на открытом устройстве операцию
Flush. - Считывает 64 МБ данных с открытого устройства и выводит время, затраченное на эту операцию.
- Стирает записанные на устройство данные и выводит время, затраченное на эту операцию.
- Закрывает устройство и деинициализует драйверы.
Сборка и запуск примера
Перед запуском примера на аппаратной платформе необходимо выполнить сборку драйверов согласно инструкции в разделе "Сборка драйверов для аппаратной платформы Radxa ROCK 3A".
Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.
Этот пример предназначен только для запуска на Radxa ROCK 3A.
См. "Сборка и запуск примеров".