Пример spi_check_regs

12 января 2026

ID spi_check_regs_example

Пример демонстрирует работу с SPI (Serial Peripheral Interface) на плате расширения Sense HAT в KasperskyOS.

Директория примера в SDK

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<platform>-<version>/examples/spi_check_regs

Список программ

  • Client – прикладная программа, которая использует интерфейс драйвера SPI.
  • SPI – драйвер SPI. Клиентская библиотека драйвера SPI статически компонуется с программой Client.
  • DCM – системная программа, позволяющая динамически создавать IPC-каналы.

При сборке примера для целевой аппаратной платформы в решение автоматически включаются платформенно-зависимые драйверы:

  • GPIO – драйвер поддержки GPIO для Radxa ROCK 3A и Raspberry Pi 4 B.
  • BSP – пакет поддержки аппаратной платформы (Board Support Package), обеспечивающий кросс-платформенную настройку периферии для Radxa ROCK 3A и Raspberry Pi 4 B.
  • PinCtrl – драйвер низкоуровневой конфигурации мультиплексирования пинов (pinmux) для Radxa ROCK 3A.
  • Bcm2711MboxArmToVc – драйвер для работы с сопроцессором VideoCore (VC6) через технологию mailbox для Raspberry Pi 4 B.

Описание инициализации

Файл описания инициализации решения init.yaml генерируется в процессе сборки решения на основе шаблона ./einit/src/init.yaml.in. Макросы вида @INIT_*@, которые содержатся в шаблоне, автоматически раскрываются в итоговом файле init.yaml. Подробнее см. "Шаблон init.yaml.in".

Описание политики безопасности

Файлы описания политики безопасности решения на базе KasperskyOS находятся в директории ./einit/src.

Файл security.psl содержит описание политики безопасности решения. Этот файл является файлом верхнего уровня, в который через декларацию use включены части описания политики безопасности решения в виде PSL-файлов: dynld.psl и trusted.psl. (Декларации в PSL-файлах снабжены комментариями, которые поясняют назначение деклараций.) Файл dynld.psl содержит часть описания политики безопасности, используемую при динамической компоновке компонентов решения. Файл trusted.psl содержит часть описания политики безопасности, регулирующую взаимодействия между инициализирующей программой Einit и ядром KasperskyOS.

Ресурсы

В директории ./resources/xdl/spi_check_regs содержится файл Client.edl – EDL-описание для программы Client.

Сценарий работы

Программа Client выполняет следующие действия:

  1. Инициализирует драйверы: PinCtrl для Radxa ROCK 3A или BSP для Raspberry Pi 4 B, а также драйверы GPIO и SPI. Открывает GPIO-порт.
  2. Настраивает на вывод GPIO-пин, заданный макросом HW_GPIO_RESET_PIN_NUM, и устанавливает его в состояние логической единицы (деактивация сигнала сброса RESET микроконтроллера ATTiny).
  3. Открывает SPI-канал, заданный макросом HW_SPI_MODULE_CHANNEL, получает характеристики этого канала и выводит их в стандартный вывод ошибок. Далее устанавливает для этого канала режим работы, заданный в структуре cfg.
  4. Устанавливает GPIO-пин, заданный макросом HW_GPIO_RESET_PIN_NUM, в состояние логического нуля (активация сигнала сброса RESET микроконтроллера ATTiny).
  5. Отправляет микроконтроллеру ATTiny по SPI-каналу команду Programming Enable. Для Radxa ROCK 3A дополнительно выполняется чтение сигнатурных байтов микроконтроллера.
  6. Возвращает GPIO-пин, заданный макросом HW_GPIO_RESET_PIN_NUM, в состояние логической единицы.
  7. Выводит результаты обмена по SPI в стандартный вывод ошибок и сравнивает с ожидаемыми значениями.
  8. Закрывает SPI-канал и GPIO-порт.

Сборка и запуск примера

Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.

Для корректной работы примера выполните следующие действия:

  • Подключите плату расширения Sense HAT к 40-контактному GPIO-разъему выбранной аппаратной платформы.

    На Raspberry Pi 4 B требуется полное совмещение всех контактов, а на Radxa ROCK 3A – ручное подключение пинов согласно схеме подключения в таблице ниже.

    Схема подключения Sense HAT к аппаратным платформам

  • Для Radxa ROCK 3A примените DTBO-оверлей rk3568-spi3-m1-cs0-spidev.dtbo к бинарному файлу описания аппаратной конфигурации rk3568-rock-3a.dtb согласно инструкции по применению оверлеев в разделе "Сборка драйверов для аппаратной платформы Radxa ROCK 3A".

См. "Сборка и запуск примеров".

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!