Документация Engee

Пакет поддержки Artery

Перед началом работы выполните общую подготовку и настройку из статьи Запуск моделей на целевом оборудовании. В ней описаны общие шаги для запуска моделей на целевом оборудовании: подготовка окружения, подключение, генерация и сборка, а также базовая проверка запуска.

В этой статье описаны особенности запуска моделей на микроконтроллерах Artery AT32 в режиме Target Hardware.

Для работы с платами Artery AT32 в режиме Target Hardware используется блок EDM-Target-Artery. Он обеспечивает генерацию кода, сборку и загрузку прошивки, а также запуск модели на микроконтроллере.

edm target artery

Конфигурация периферии (таймеры, USART, DMA, GPIO, ADC) выполняется в среде AT32 Workbench — официальном инструменте Artery для генерации проекта.

Параметры блока EDM-Target-Artery

Блок EDM-Target-Artery настраивает взаимодействие с микроконтроллером через следующие параметры:

  • Модель МК: — модель микроконтроллера (например, AT32F435ZMT7). При указании auto определяется автоматически из проекта AT32 Workbench.

  • Путь к проекту AT Workbench: — полный путь к папке сгенерированного проекта AT32 Workbench (содержит CMakeLists.txt и файл .ATWP).

  • Путь к тулчейну для сборки: — полный путь к arm-none-eabi-gcc. При указании auto поиск выполняется автоматически: сначала по переменным окружения (ARM_NONE_EABI_PATH, ARM_GCC_TOOLCHAIN_PATH, GCC_ARM_NONE_EABI_PATH), затем в путях AT32 IDE, затем в PATH.

  • Программатор: — тип программатора: openocd или at-link-console.

  • Путь к утилите для прошивки: — полный путь к ATLink_Console.exe (AT-Link Console) или openocd.exe (OpenOCD). При указании auto поиск выполняется автоматически: сначала по переменным окружения (ATLINK_CONSOLE_PATH, AT_LINK_CONSOLE_PATH), затем в путях AT32 IDE, затем в PATH.

  • COM порт: — последовательный порт для интерактивного режима (например, COM3 или /dev/ttyACM0).

  • Резервируемый модуль USART: — номер USART, используемый для интерактивного режима. Должен совпадать с модулем USART (USART1–USART6, UART4–UART8), настроенным в AT32 Workbench.

Необходимое ПО

Для работы с Artery AT32 требуется установить следующие инструменты:

  • AT32 Workbench — для конфигурирования периферии микроконтроллера и генерации проекта с системой сборки CMake. Скачать можно с официального сайта Artery.

  • Компилятор arm-none-eabi-gcc — рекомендуется использовать версию из состава AT32 IDE либо устанавливать отдельно.

  • Программатор — OpenOCD с поддержкой AT32 или AT-Link Console.

Допускается работа без AT32 IDE. В этом случае необходимо установить отдельно:

  • Компилятор arm-none-eabi-gcc.

  • OpenOCD или AT-Link Console для прошивки.

Использование утилит возможно двумя способами:

  • Указание утилит вручную — задайте полный путь к компилятору и программатору в параметрах блока EDM-Target-Artery.

  • Режим autoEngee будет искать утилиты автоматически. В этом случае используется переменная окружения PATH, и утилиты должны быть доступны через нее.

Подготовка Engee

Убедитесь, что пакет поддержки оборудования установлен и настроен. Его установка подробно описана в разделе Подключение к оборудованию.

Если пакет поддержки уже установлен, можно переходить к запуску клиентской программы и подключаться по выданному URL.

Подготовка проекта AT32 Workbench

  1. Установите и настройте AT32 Workbench.

  2. Создайте проект для вашего микроконтроллера AT32:

    • Выберите целевой микроконтроллер (например, AT32F435ZMT7).

    • Настройте необходимую периферию.

  3. В настройках проекта выберите систему сборки CMake и нажмите Generate Code:

    at32 workbench cmake

  4. Сохраните проект в удобную директорию. Убедитесь, что в корне проекта присутствуют файлы:

    • CMakeLists.txt — корневой файл сборки CMake;

    • <ProjectName>.ATWP — файл конфигурации AT32 Workbench;

    • cmake/at32_workbench/CMakeLists.txt — файл тулчейна CMake.

  5. Убедитесь, что main.c содержит пользовательские секции AT32 Workbench (добавляются автоматически при генерации):

    /* add user code begin private includes */
    /* add user code end private includes */
    
    /* add user code begin 0 */
    /* add user code end 0 */
    
    /* add user code begin 2 */
    /* add user code end 2 */
    
    /* add user code begin 3 */
    /* add user code end 3 */

Настройка и запуск модели

  1. Откройте модель Engee.

  2. Нажмите кнопку выбора целевой платформы и выберите Target Hardware:

    target hardware 1

  3. Добавьте блок EDM-Target-Artery из библиотеки блоков на холст Engee. Если блок отсутствует, обновите пакет поддержки командой:

    engee.package.start("Engee-Device-Manager")
  4. Настройте блок EDM-Target-Artery:

    • Модель МК: — укажите модель вашего МК или auto для автоматического определения;

    • Путь к проекту AT Workbench: — укажите путь к папке проекта;

    • Путь к тулчейну для сборки:auto или полный путь к arm-none-eabi-gcc;

    • Путь к утилите для прошивки:auto или полный путь к программатору.

      edm target artery params

  5. Выберите режим выполнения модели:

    • Запустить модель на железе target hardware 4 — интерактивное выполнение с управлением из Engee.

    • Запуск в независимом режиме target hardware 3 — автономное выполнение без управления из Engee.

  6. Нажмите кнопку запуска.

Если блок EDM-Target-Artery не добавлен в модель, при запуске появится ошибка: ErrorException("EDM-Target-Artery block not found. To start model in Target Hardware mode, the model must include an EDM-Target-Artery block.")

Интерактивный режим

Интерактивный режим использует USART с DMA для связи с Engee.

Планировщик выполнения модели (таймер) настраивается автоматически. Engee сам резервирует свободный таймер, рассчитывает предделитель и период и добавляет вызов model_tick() — ручная настройка таймера в AT32 Workbench не требуется.

  1. В AT32 Workbench выберите свободный модуль USART (USART1–USART6 или UART4–UART8). Включите его:

    usart interactive enable

  2. Настройте параметры USART:

    • ModeAsynchronous;

    • Baud Rate115200 Bit/s;

    • Word Length8 Bits;

    • Stop Bits1;

    • ParityNone.

    usart interactive params

  3. Включите DMA для выбранного USART:

    • Перейдите на вкладку DMA.

    • Нажмите Add и добавьте DMA RequestUSARTx_RX, где x — номер резервируемого модуля USART.

    • В поле Priority укажите High. В настройках DMA Request Settings установите Mode в Circular.

      dma usart rx circular

    • Добавьте второй DMA RequestUSARTx_TX. В поле Priority укажите High. В настройках DMA Request Settings установите Mode в Normal.

      dma usart tx normal

  4. Сгенерируйте проект заново (Generate Code).

  5. В параметрах блока EDM-Target-Artery укажите:

    • Резервируемый модуль USART — номер USART (например, 1 для USART1);

    • COM-порт — порт устройства.

      edm target artery comport

Примеры COM-портов:

  • Linux — /dev/ttyACM0;

  • Windows — COM1.

Проверка доступных портов:

  • Linux: ls /dev | grep ttyACM;

  • Windows: откройте «Диспетчер устройств» → «Порты (COM и LPT)» — номер порта указан в названии устройства (например, COM3).

Решение возможных проблем

Проблемы обнаружения тулчейна

Если появляется ошибка о том, что компилятор или программатор не найдены:

  • Укажите путь вручную в параметрах блока EDM-Target-Artery вместо auto.

  • Проверьте, что утилиты доступны через переменную PATH.

  • Убедитесь, что установлен AT32 IDE (содержит arm-none-eabi-gcc и ATLink_Console.exe).

Проблемы сборки

  • Проверьте, что в AT32 Workbench в качестве системы сборки выбран CMake.

  • Убедитесь, что в корне проекта есть CMakeLists.txt.

  • Ошибки сборки отображаются в интерфейсе клиентской программы с полным выводом.

Проблемы прошивки

  • Проверьте подключение программатора (AT-Link или совместимого).

  • Убедитесь, что микроконтроллер запитан и находится в режиме отладки.

  • Для OpenOCD проверьте наличие конфигурационных файлов interface/atlink.cfg и target/at32f435xx.cfg.

Проблемы с подключением по USART

При сообщении Unable connect to target:

  • Проверьте надежность USB-соединения.

  • Убедитесь в корректности подключения TX/RX.

  • В Linux добавьте пользователя в группу, имеющую доступ к последовательным устройствам (например, dialout или uucp — в зависимости от вашего дистрибутива).

Повреждение пользовательских секций

Если были удалены маркеры /* add user code begin …​ */ в main.c или CMakeLists.txt:

  • Удалите поврежденные файлы.

  • Сгенерируйте проект заново в AT32 Workbench (с помощью кнопки Generate Code).