Пример pwm_led

Пример демонстрирует использование драйвера широтно-импульсной модуляции (ШИМ, англ. Pulse-Width Modulation, PWM) для управления светодиодом в решении на базе KasperskyOS.

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

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

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

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

При сборке примера для целевой аппаратной платформы в решение автоматически включается платформенно-зависимый драйвер BSP – пакет поддержки аппаратной платформы (Board Support Package), обеспечивающий кросс-платформенную настройку периферии.

Для корректной работы драйвера PWM необходимо скомпоновать программу PwmLed с клиентской библиотекой pwm::client.

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

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

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

Файл security.psl содержит описание политики безопасности решения на базе KasperskyOS и находится в директории ./einit/src. Декларации в PSL-файле снабжены комментариями, которые поясняют назначение этих деклараций.

Ресурсы

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

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

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

  1. Инициализирует драйвер PWM и открывает PWM-канал pwm0 для работы.
  2. Программа выполняет 5 циклов плавного изменения яркости светодиода от минимального до максимального значения и обратно за счет изменения значения скважности выходного сигнала.
  3. Закрывает PWM-канал, деинициализирует драйвер и завершает свою работу с кодом EXIT_SUCCESS при отсутствии ошибок, иначе – EXIT_FAILURE.

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

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

Этот пример предназначен только для запуска на Radxa ROCK 3A.

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

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

В начало