Добавление Toybox в решение на базе KasperskyOS

12 января 2026

ID toybox_add_to_solution

Для работы компонента Toybox необходим компонент ExecutionManager. Как работать с компонентом ExecutionManager в решении на базе KasperskyOS см. подробнее в разделе "Запуск процессов с помощью системной программы ExecutionManager".

Чтобы добавить компонент Toybox в решение на базе KasperskyOS, необходимо:

  • Добавить следующие команды в корневой файл CMakeLists.txt:

    # Подключение пакета uart с драйвером UART.

    find_package (uart REQUIRED)

    # Подключение пакета Terminal, который обеспечивает взаимодействие

    # между последовательным портом UART и виртуальной файловой системой

    # для реализации стандартных потоков ввода-вывода и дисциплины линии.

    find_package (Terminal REQUIRED COMPONENTS UART_ENTITY)

    # Подключение пакета toybox.

    find_package (toybox REQUIRED)

    add_subdirectory (toybox)

    # Создание CMake-цели для генерации .edl.h-файла для EDL-описания класса процессов,

    # запускаемых при выполнении команды exec компонента Toybox.

    nk_build_edl_files (exec_app_edl_files

    NK_MODULE "exec_app"

    EDL "${NK_RESOURCES}/exec_app/ExecApp.edl")

  • При сборке решения (файл CMakeLists.txt для программы Einit) используя CMake-команду set_target_properties() определить значения свойств IMPORTED_LOCATION, DEPENDS_ON_ENTITY и EXTRA_ENV для исполняемого файла terminal_uart_entity. Например:

    # Добавление CMake-цели для импортируемого исполняемого файла terminal_uart_entity.

    add_executable (terminal_uart IMPORTED)

    # Установка свойств CMake-цели terminal_uart:

    # IMPORTED_LOCATION – путь к исполняемому файлу terminal_uart_entity.

    # DEPENDS_ON_ENTITY – указание, что запуск исполняемого файла terminal_uart_entity

    # требует предварительной готовности драйвера UART.

    # EXTRA_ENV – переменные окружения, передаваемые исполняемому файлу terminal_uart_entity

    # при запуске. Где: ${UART_PORT_NAME} и ${UART_BAUDRATE} – переменные,

    # задающие имя порта и скорость передачи данных для UART.

    set_target_properties (terminal_uart PROPERTIES

    IMPORTED_LOCATION ${TERMINAL_UART_ENTITY}

    DEPENDS_ON_ENTITY uart::entity

    EXTRA_ENV " TERMINAL_UART_PARAM: ${UART_PORT_NAME},${UART_BAUDRATE}")

  • В шаблон security.psl.in описания политики безопасности решения включить EDL-файлы:

    use EDL toybox.Toybox

    use EDL kl.Terminal

    use EDL exec_app.ExecApp

Подробнее см. пример uart_toybox, который расположен в директории examples из состава KasperskyOS Community Edition.

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