Пример демонстрирует работу с 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 выполняет следующие действия:
HW_GPIO_RESET_PIN_NUM, и устанавливает его в состояние логической единицы (деактивация сигнала сброса RESET микроконтроллера ATTiny).HW_SPI_MODULE_CHANNEL, получает характеристики этого канала и выводит их в стандартный вывод ошибок. Далее устанавливает для этого канала режим работы, заданный в структуре cfg.HW_GPIO_RESET_PIN_NUM, в состояние логического нуля (активация сигнала сброса RESET микроконтроллера ATTiny).Programming Enable. Для Radxa ROCK 3A дополнительно выполняется чтение сигнатурных байтов микроконтроллера.HW_GPIO_RESET_PIN_NUM, в состояние логической единицы.Сборка и запуск примера
Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.
Для корректной работы примера выполните следующие действия:
На Raspberry Pi 4 B требуется полное совмещение всех контактов, а на Radxa ROCK 3A – ручное подключение пинов согласно схеме подключения в таблице ниже.
Схема подключения Sense HAT к аппаратным платформам
Пин |
Sense HAT |
Raspberry Pi 4 B |
Radxa ROCK 3A |
|---|---|---|---|
17 |
3V3 Power |
3V3 power |
+3.3V |
19 |
GPIO10 (SPI0 MOSI) |
GPIO 10 (MOSI) |
GPIO 147 (SPI3_MOSI_M1) |
20 |
Ground |
Ground |
GND |
21 |
GPIO9 (SPI0 MISO) |
GPIO 9 (MISO) |
GPIO 149 (SPI3_MISO_M1) |
22 |
GPIO25 (Atmel Prog Reset) |
GPIO 25 |
GPIO 17 |
23 |
GPIO11 (SPI0 SCLK) |
GPIO 11 (SCLK) |
GPIO 146 (SPI3_CLK_M1) |
24 |
GPIO8 (Atmel Chip Select) |
GPIO 8 (CE0) |
GPIO 150 (SPI3_CS0_M1) |
rk3568-spi3-m1-cs0-spidev.dtbo к бинарному файлу описания аппаратной конфигурации rk3568-rock-3a.dtb согласно инструкции по применению оверлеев в разделе "Сборка драйверов для аппаратной платформы Radxa ROCK 3A".См. "Сборка и запуск примеров".
В начало