Логотип STMicroelectronics

Серия STMicroelectronics STM32WBA Начало работы

STMicroelectronics-STM32WBA-Series-Начало работы-рис-1

Информация о продукте

Технические характеристики:

  • Название продукта: Пакет микроконтроллера STM32CubeWBA
  • Производитель: STMicroelectronics
  • Совместимость: Микроконтроллеры серии STM32WBA
  • Лицензирование: Лицензия BSD с открытым исходным кодом

Инструкции по применению продукта

Основные характеристики пакета MCU STM32CubeWBA:
Пакет микроконтроллеров STM32CubeWBA предоставляет все необходимые встроенные программные компоненты для разработки приложений на микроконтроллерах серии STM32WBA. Он обладает высокой переносимостью в серии STM32 и поставляется с API-интерфейсами HAL и LL, напримерampфайлы и компоненты промежуточного программного обеспечения.

Архитектура закончиласьview:
Архитектура пакета MCU STM32CubeWBA состоит из трех уровней: приложений, библиотек и компонентов на основе протоколов, уровня абстракции оборудования, драйверов BSP, драйверов ядра и низкоуровневых API.

Часто задаваемые вопросы

  • Что входит в пакет MCU STM32CubeWBA?
    Пакет включает в себя API-интерфейсы низкого уровня (LL) и уровня аппаратной абстракции (HAL), напримерampфайлы, приложения, компоненты промежуточного программного обеспечения, такие как FileX/LevelX, NetX Duo, библиотеки mbed-crypto и многое другое.
  • Совместим ли пакет MCU STM32CubeWBA с генератором кода STM32CubeMX?
    Да, пакет полностью совместим с генератором кода STM32CubeMX для генерации кода инициализации.

Введение

  • STM32Cube — это оригинальная инициатива STMicroelectronics, направленная на значительное повышение производительности проектировщиков за счет сокращения усилий, времени и затрат на разработку. STM32Cube охватывает весь портфель STM32.
    STM32Cube включает:
    • Набор удобных в использовании инструментов разработки программного обеспечения, охватывающих разработку проекта от концепции до реализации, среди которых:
      • STM32CubeMX, графический инструмент конфигурации программного обеспечения, который позволяет автоматически генерировать код инициализации C с помощью графических мастеров.
      • STM32CubeIDE, универсальный инструмент разработки с периферийной конфигурацией, генерацией кода, компиляцией кода и функциями отладки.
      • STM32CubeCLT, универсальный набор инструментов для разработки с использованием командной строки, включающий компиляцию кода, программирование плат и функции отладки.
      • STM32CubeProgrammer (STM32CubeProg), инструмент программирования, доступный в графической версии и версии для командной строки.
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), мощные инструменты мониторинга для точной настройки поведения и производительности приложений STM32 в режиме реального времени.
    • Пакеты STM32Cube MCU и MPU, комплексные платформы встроенного программного обеспечения, специфичные для каждой серии микроконтроллеров и микропроцессоров (например, STM32CubeWBA для серии STM32WBA), которые включают в себя:
      • Уровень аппаратной абстракции STM32Cube (HAL), обеспечивающий максимальную переносимость в портфеле STM32
      • Низкоуровневые API-интерфейсы STM32Cube, обеспечивающие лучшую производительность и занимаемую площадь с высокой степенью пользовательского контроля над оборудованием.
      • Последовательный набор компонентов промежуточного программного обеспечения, таких как ThreadX, FileX / LevelX, NetX Duo, USBX, сенсорная библиотека, mbed-crypto, TFM, MCUboot, OpenBL и STM32_WPAN (включая Bluetooth® Low Energy profiles и сервисы, Mesh, Zigbee®, OpenThread, Matter и уровень MAC 802.15.4)
      • Все встроенные программные утилиты с полным набором периферийных и прикладных программ.ampле
    • Пакеты расширения STM32Cube, которые содержат встроенные программные компоненты, которые дополняют функциональные возможности пакетов MCU и MPU STM32Cube:
      • Расширения промежуточного программного обеспечения и прикладные уровни
      • Exampфайлы, работающие на некоторых конкретных платах разработки STMicroelectronics
  • В этом руководстве пользователя описывается, как начать работу с пакетом MCU STM32CubeWBA.
    • В разделе 2 «Основные функции STM32CubeWBA» описаны основные функции пакета микроконтроллера STM32CubeWBA.
    • Раздел 3 Архитектура STM32CubeWBA оконченаview обеспечивает болееview архитектуры STM32CubeWBA и структуры пакета MCU.

Общая информация

Пакет MCU STM32CubeWBA работает на 32-битных микроконтроллерах STM32 на базе процессора Arm® Cortex®-M33 с Arm® TrustZone® и FPU.
Примечание: Arm и TrustZone являются зарегистрированными товарными знаками Arm Limited (или ее дочерних компаний) в США и / или других странах.

Основные возможности STM32CubeWBA

  • Пакет MCU STM32CubeWBA работает на 32-битных микроконтроллерах STM32 на базе процессора Arm® Cortex®-M33 с TrustZone® и FPU.
  • STM32CubeWBA объединяет в одном пакете все стандартные встроенные программные компоненты, необходимые для разработки приложений для микроконтроллеров серии STM32WBA. В соответствии с инициативой STM32Cube этот набор компонентов легко переносится не только в микроконтроллеры серии STM32WBA, но и в другие серии STM32.
  • STM32CubeWBA полностью совместим с генератором кода STM32CubeMX для генерации кода инициализации. Пакет включает в себя API-интерфейсы низкого уровня (LL) и уровня аппаратной абстракции (HAL), которые охватывают аппаратное обеспечение микроконтроллера, а также обширный наборampфайлы, работающие на платах STMicroelectronics. Для удобства пользователей API-интерфейсы HAL и LL доступны в лицензии BSD с открытым исходным кодом.
  • Пакет MCU STM32CubeWBA также содержит комплексный компонент промежуточного программного обеспечения, созданный на основе промежуточного программного обеспечения Microsoft® Azure® RTOS, а также других стеков собственной разработки и с открытым исходным кодом, с соответствующими расширениями.ampлес.
  • Они поставляются с бесплатными и удобными условиями лицензии:
    • Интегрированная и полнофункциональная Azure® RTOS: Azure® RTOS ThreadX.
    • Реализация CMSIS-RTOS с Azure® RTOS ThreadX
    • Стеки USB-хоста и устройства включают множество классов: Azure® RTOS USBX
    • Передовой file система и уровень трансляции флэш-памяти: FileX / УровеньX
    • Сетевой стек промышленного уровня: оптимизирован для обеспечения производительности многих протоколов Интернета вещей: NetX Duo
    • Открыть загрузчик
    • Решение для интеграции Arm® Trusted Firmware-M (TF‑M)
    • библиотеки mbed-crypto
    • Сетевая библиотека ST
    • Решение для библиотеки сенсорного распознавания STTMTouch
  • Несколько приложений и демонстраций, реализующих все эти компоненты промежуточного программного обеспечения, также включены в пакет MCU STM32CubeWBA.
  • Компоновка компонентов пакета MCU STM32CubeWBA показана на рисунке 1. Компоненты пакета MCU STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Начало работы-рис-2

Архитектура STM32CubeWBA завершенаview

Решение пакета MCU STM32CubeWBA построено на трех независимых уровнях, которые легко взаимодействуют, как описано на рисунке 2. Архитектура пакета MCU STM32CubeWBA.

STMicroelectronics-STM32WBA-Series-Начало работы-рис-3

Уровень 0

Этот уровень разделен на три подслоя:

  • Пакет поддержки совета директоров (BSP).
  • Уровень аппаратной абстракции (HAL):
    • Драйверы периферийных устройств HAL
    • Драйверы низкого уровня
  • Базовое использование периферийных устройствampлес.

Пакет поддержки совета директоров (BSP)
Этот уровень предлагает набор API-интерфейсов, относящихся к аппаратным компонентам аппаратных плат (таким как драйверы ЖК-дисплея, аудио, microSD™ и MEMS). Он состоит из двух частей:

  • Драйвер компонента:
    Этот драйвер относится к внешнему устройству на плате, а не к устройству STM32. Драйвер компонента предоставляет определенные API для внешних компонентов драйвера BSP и может быть перенесен на любую другую плату.
  • Драйвер БСП:
    Драйвер BSP позволяет связать драйверы компонентов с конкретной платой и предоставляет набор удобных для пользователя
    API. Правило именования API — BSP_FUNCT_Action().
    Exampфайл: BSP_LED_Init(), BSP_LED_On()
    BSP основан на модульной архитектуре, позволяющей легко переносить его на любое оборудование путем простой реализации низкоуровневых процедур.

Уровень абстракции оборудования (HAL) и нижний уровень (LL)
STM32CubeWBA HAL и LL дополняют друг друга и охватывают широкий спектр требований приложений:

  • Драйверы HAL предлагают высокоуровневые функционально-ориентированные API с высокой переносимостью. Они скрывают от конечного пользователя сложность MCU и периферийных устройств.
    Драйверы HAL предоставляют общие многоэкземплярные функционально-ориентированные API, которые упрощают реализацию пользовательских приложений, предоставляя готовые к использованию процессы. Для бывшегоampДля периферийных устройств связи (I2S, UART и других) он предоставляет API, позволяющие инициализировать и настраивать периферийные устройства, управлять передачей данных на основе процесса опроса, прерывания или DMA, а также обрабатывать ошибки связи, которые могут возникнуть во время связи. API-интерфейсы драйверов HAL разделены на две категории:
    1. Общие API, которые предоставляют общие и универсальные функции для всех микроконтроллеров серии STM32.
    2. API-интерфейсы расширений, которые предоставляют конкретные и настраиваемые функции для определенного семейства или определенного номера детали.
  • Низкоуровневые API предоставляют низкоуровневые API на уровне регистров с лучшей оптимизацией, но меньшей переносимостью.
    • Они требуют глубоких знаний микроконтроллеров и характеристик периферийных устройств.
    • Драйверы LL созданы для обеспечения быстрого и легкого уровня, ориентированного на экспертов, который ближе к аппаратному обеспечению, чем HAL. В отличие от HAL, API-интерфейсы LL не предоставляются для периферийных устройств, для которых оптимизированный доступ не является ключевой функцией, или для тех, которые требуют сложной настройки программного обеспечения или сложного стека верхнего уровня.
    • Драйверы LL имеют следующие возможности:
      • Набор функций для инициализации основных функций периферии в соответствии с параметрами, указанными в структурах данных.
      • Набор функций для заполнения структур данных инициализации значениями сброса, соответствующими каждому полю.
      • Функция деинициализации периферии (регистры периферии восстанавливаются до значений по умолчанию).
      • Набор встроенных функций для прямого и атомарного доступа к регистрам.
      • Полная независимость от HAL и возможность использования в автономном режиме (без драйверов HAL).
      • Полный охват поддерживаемых периферийных функций.

Базовое использование периферийных устройствampле
Этот слой заключает в себе бывшийampфайлы, построенные на периферийных устройствах STM32 с использованием только ресурсов HAL и BSP.

Уровень 1

Этот уровень разделен на два подслоя:

  • Компоненты промежуточного программного обеспечения
  • Exampфайлы на основе компонентов промежуточного программного обеспечения

Компоненты промежуточного программного обеспечения

  • Промежуточное программное обеспечение представляет собой набор библиотек, охватывающих Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot и mbed-crypto.
  • Горизонтальное взаимодействие между компонентами этого уровня осуществляется путем вызова рекомендуемых API.
  • Вертикальное взаимодействие с драйверами нижнего уровня осуществляется посредством специальных обратных вызовов и статических макросов, реализованных в интерфейсе системных вызовов библиотеки.
  • Основные особенности каждого компонента промежуточного программного обеспечения следующие:
    • Microsoft® Azure® ОСРВ
      • Azure® RTOS ThreadX: операционная система реального времени (RTOS), разработанная для встроенных систем с двумя функциональными режимами.
        • Общий режим: общие функции RTOS, такие как управление потоками и синхронизация, управление пулом памяти, обмен сообщениями и обработка событий.
        • Режим модуля: расширенный пользовательский режим, который позволяет загружать и выгружать предварительно связанные модули ThreadX на лету через диспетчер модулей.
      • NetX Дуо
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): реализует протокол Bluetooth® Low Energy для уровней канала и стека.
    • MCUboot (программное обеспечение с открытым исходным кодом)
    • Протоколы Zigbee® для стека и связанных с ним кластеров.
    • Стек протоколов Thread® и канальный уровень.
    • Доверенная прошивка Arm®-M, TF‑M (программное обеспечение с открытым исходным кодом): эталонная реализация архитектуры безопасности платформы Arm® (PSA) для TrustZone® со соответствующими безопасными сервисами.
    • mbed-crypto (программное обеспечение с открытым исходным кодом). Промежуточное программное обеспечение mbed-crypto обеспечивает реализацию API шифрования PSA.
    • Библиотека сенсорных датчиков STM32: надежное емкостное сенсорное решение STMTouch, поддерживающее датчики приближения, сенсорные клавиши, линейные и поворотные сенсорные датчики. Он основан на проверенном принципе регистрации поверхностного переноса заряда.

Exampфайлы на основе компонентов промежуточного программного обеспечения
Каждый компонент промежуточного программного обеспечения поставляется с одним или несколькимиampфайлы (также называемые приложениями), показывающие, как их использовать. Интеграция exampТакже предоставляются файлы, использующие несколько компонентов промежуточного программного обеспечения.

Пакет прошивок STM32CubeWBA оконченview

Поддерживаемые устройства и оборудование серии STM32WBA

  • STM32Cube предлагает высокопереносимый уровень аппаратной абстракции (HAL), построенный на основе общей архитектуры. Это позволяет использовать принцип надстроенных слоев, например, использовать уровень промежуточного программного обеспечения для реализации своих функций без глубокого знания того, какой MCU используется. Это улучшает возможность повторного использования кода библиотеки и обеспечивает легкую переносимость на другие устройства.
  • Кроме того, благодаря своей многоуровневой архитектуре STM32CubeWBA предлагает полную поддержку всех серий STM32WBA.
  • Пользователю остается только определить правильный макрос в stm32wbaxx.h.
  • В таблице 1 показан макрос, который необходимо определить в зависимости от используемого устройства серии STM32WBA. Этот макрос также должен быть определен в препроцессоре компилятора.
    Таблица 1. Макросы для серии STM32WBA
    Макрос определен в stm32wbaxx.h Устройства серии STM32WBA
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA имеет богатый набор возможностей.ampфайлов и приложений на всех уровнях, что упрощает понимание и использование любого драйвера HAL или компонентов промежуточного программного обеспечения. Эти бывшиеampфайлы работают на платах STMicroelectronics, перечисленных в Таблице 2.
    Таблица 2. Платы серии STM32WBA
    Доска Устройства, поддерживаемые платой STM32WBA
    НУКЛЕО-WBA52CG STM32WBA52CGU6
    НУКЛЕО-WBA55CG STM32WBA55CGU6
    STM32WBA55-ДК1 STM32WBA55CGU7
  • Пакет микроконтроллера STM32CubeWBA может работать на любом совместимом оборудовании. Пользователь просто обновляет драйверы BSP для переноса предоставленного бывшегоampфайлы на плате, если последняя имеет такие же аппаратные функции (например, светодиод, ЖК-дисплей и кнопки).
Пакет прошивок закончилсяview
  • Пакетное решение STM32CubeWBA предоставляется в одном zip-архиве, структура которого показана на рисунке 3. Структура пакета встроенного ПО STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Начало работы-рис-4

  • Для каждой платы комплект экс.amples поставляется с предварительно настроенными проектами для инструментальных цепочек EWARM, MDK-ARM и STM32CubeIDE.
  • Рисунок 4. STM32CubeWBA exampзакончилисьview показана структура проекта для плат NUCLEO‑WBA52CG, NUCLEO-WBA55CG и STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Начало работы-рис-5

  • БывшийampФайлы классифицируются в зависимости от уровня STM32Cube, к которому они относятся, и называются следующим образом:
    • Уровень 0 exampфайлы называются Exampлес, бывшийamples_LL и Examples_MIX. Они используют соответственно драйверы HAL, драйверы LL и смесь драйверов HAL и LL без какого-либо компонента промежуточного программного обеспечения.
    • Уровень 1 exampфайлы называются Applications. Они предоставляют типичные варианты использования каждого компонента промежуточного программного обеспечения. Любое приложение прошивки для данной платы можно быстро собрать благодаря проектам шаблонов, доступным в каталогах Templates и Templates_LL.

Проекты с поддержкой TrustZone®

  • TrustZone® с поддержкой ExampИмена файлов содержат префикс _TrustZone. Правило применяется также к приложениям (кроме TFM и SBSFU, которые изначально предназначены для TrustZone®).
  • Ex с поддержкой TrustZone®ampФайлы и приложения имеют многопроектную структуру, состоящую из безопасных и незащищенных подпроектов, как показано на рисунке 5. Многопроектная безопасная и небезопасная структура проекта.
  • Проекты с поддержкой TrustZone® разрабатываются в соответствии с шаблоном устройства CMSIS-5, расширенным за счет включения заголовка системного разделения. file раздел_ .h, который в основном отвечает за настройку блока атрибутов безопасности (SAU), FPU и назначение безопасных/небезопасных прерываний в состоянии безопасного выполнения.
  • Эта настройка выполняется в защищенной функции CMSIS SystemInit(), которая вызывается при запуске перед входом в функцию main() защищенного приложения. См. документацию Arm® TrustZone®-M с рекомендациями по программному обеспечению.

    STMicroelectronics-STM32WBA-Series-Начало работы-рис-6

  • Пакет прошивки пакета STM32CubeWBA обеспечивает разбиение памяти по умолчанию в разделе _ .час fileОн доступен в папке: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates.
  • В этих разделах files, САУ по умолчанию отключена. Следовательно, отображение памяти IDAU используется для атрибуции безопасности. См. рисунок «Безопасное/небезопасное разделение с использованием технологии TrustZone®» в справочном руководстве RM0495.
  • Если пользователь включает SAU, конфигурация регионов SAU по умолчанию предварительно определена в разделе. fileвыглядит следующим образом:
    • Регион SAU 0: 0x08080000 – 0x081FFFFFF (незащищенная защищенная половина флэш-памяти (512 Кбайт))
    • Регион SAU 1: 0x0BF88000 – 0x0BF97FFF (незащищенная системная память)
    • Регион SAU 2: 0x0C07E000 – 0x0C07FFFF (безопасный, незащищенный вызов)
    • Регион SAU 3: 0x20010000 – 0x2001FFFF (незащищенная SRAM2 (64 Кбайт))
    • Регион SAU 4: 0x40000000 – 0x4FFFFFFFF (незащищенная отображаемая периферийная память)
  • Чтобы соответствовать разделению по умолчанию, в устройствах серии STM32WBAxx должны быть установлены следующие байты пользовательских опций:
    • TZEN = 1 (устройство с поддержкой TrustZone®)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 из 128 страниц внутренней флэш-памяти установлены как безопасные) Примечание. Внутренняя флэш-память по умолчанию полностью защищена в TZEN = 1. Байты пользовательских опций SECWM1_PSTRT/SECWM1_PEND должны быть установлены в соответствии с приложением. конфигурация памяти (регионы SAU, если SAU включен). Компоновщик проектов безопасных/небезопасных приложений files также должны быть выровнены.
  • Все эксampфайлы имеют одинаковую структуру:
    • Папка \Inc, содержащая весь заголовок files.
    • Папка Src, содержащая исходный код.
    • Папки \EWARM, \MDK-ARM и \STM32CubeIDE, содержащие предварительно настроенный проект для каждой цепочки инструментов.
    • readme.md и readme.html, описывающие бывшегоampповедение и необходимая среда, чтобы заставить его работать.
    • мок file что позволяет пользователям открывать большую часть прошивки, напримерampфайлы в STM32CubeMX.

Начало работы с STM32CubeWBA

Запуск первого бывшего HALample

В этом разделе объясняется, насколько просто запустить первый пример.ampфайл в STM32CubeWBA. В качестве иллюстрации используется создание простого переключателя светодиодов, работающего на плате NUCLEO-WBA52CG:

  1. Загрузите пакет микроконтроллера STM32CubeWBA.
  2. Разархивируйте его в каталог по вашему выбору.
  3. Обязательно не изменяйте структуру пакета, показанную на рисунке 1. Также рекомендуется скопировать пакет в папку, близкую к корневому тому (имеется в виду C:\ST или G:\Tests), так как в некоторых IDE возникают проблемы при указании пути. длина слишком велика.

Запуск первого экземпляра с поддержкой TrustZone®ample

  • Перед загрузкой и запуском программы с поддержкой TrustZone®ampле, обязательно прочитать бывшуюampчитай мне file для любой конкретной конфигурации, которая гарантирует включение безопасности, как описано в Разделе 4.2.1 Проекты с поддержкой TrustZone® (TZEN=1 (байт пользовательской опции)).
    1. Перейдите в \Projects\NUCLEO-WBA52CG\Ex.ampлес.
    2. Откройте папку \GPIO, затем \GPIO_IOToggle_TrustZone.
    3. Откройте проект с помощью предпочитаемой вами цепочки инструментов. Быстрый конецview о том, как открыть, построить и запустить бывшийample с поддерживаемыми инструментальными цепочками приведен ниже.
    4. Последовательно перестройте все безопасные и незащищенные проекты. files и загрузите безопасные и незащищенные изображения в целевую память.
    5. Беги бывшегоampНапример: регулярно защищенное приложение переключает LD2 каждую секунду, а незащищенное приложение переключает LD3 в два раза быстрее. Более подробную информацию можно найти в файле readme. file бывшегоampле.
  • Чтобы открыть, построить и запустить бывшийample с помощью поддерживаемых цепочек инструментов, выполните следующие действия:
    • ЭВАРМ:
      1. Под бывшимample, откройте подпапку \EWARM.
      2. Запустите рабочую область Project.eww.
      3. Пересоберите безопасный проект xxxxx_S. files: [Проект]>[Перестроить все].
      4. Установите незащищенный проект xxxxx_NS как активное приложение (щелкните правой кнопкой мыши проект xxxxx_NS [Установить как активное]).
      5. Пересоберите незащищенный проект xxxxx_NS. files: [Проект]>[Перестроить все].
      6. Запишите незащищенный двоичный файл с помощью [Проект]>[Загрузить]>[Загрузить активное приложение].
      7. Установите xxxxx_S как активное приложение (щелкните правой кнопкой мыши проект xxxxx_S [Установить как активное].
      8. Запустите защищенный двоичный файл с помощью кнопки [Загрузить и отладить] (Ctrl+D).
      9. Запустите программу: [Отладка]>[Go(F5)]
    • МДК-АРМ:
      1. Откройте цепочку инструментов \MDK-ARM.
      2. Откройте рабочую область «Мультипроекты». file Проект.uvmpw.
      3. Выберите проект xxxxx_s в качестве активного приложения ([Установить как активный проект]).
      4. Создайте проект xxxxx_s.
      5. Выберите проект xxxxx_ns в качестве активного проекта ([Установить как активный проект]).
      6. Создайте проект xxxxx_ns.
      7. Загрузите незащищенный двоичный файл ([F8]). При этом во флэш-память загружается \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf)
      8. Выберите проект Project_s в качестве активного проекта ([Установить как активный проект]).
      9. Загрузите безопасный двоичный файл ([F8]). При этом во флэш-память загружается \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf).
      10. Беги бывшегоampле.
    • STM32CubeIDE:
      1. Откройте набор инструментов STM32CubeIDE.
      2. Откройте рабочую область «Мультипроекты». file .проект.
      3. Пересоберите проект xxxxx_Secure.
      4. Пересоберите проект xxxxx_NonSecure.
      5. Запустите приложение [Отладка как STM32 Cortex-M C/C++] для безопасного проекта.
      6. В окне [Редактировать конфигурацию] выберите панель [Автозагрузка] и добавьте загрузку изображения и символов незащищенного проекта.
        Важный: Небезопасный проект должен быть загружен перед безопасным проектом.
      7. Нажмите [ОК].
      8. Беги бывшегоampо перспективе отладки.

Запуск первого отключенного объекта TrustZone®ample

  • Перед загрузкой и запуском отключенного ex TrustZone®ampле, обязательно прочитать бывшуюampчитай мне file для любой конкретной конфигурации. Если особых упоминаний нет, убедитесь, что на плате отключена защита (TZEN=0 (байт пользовательской опции)). См. FAQ для выполнения дополнительной регрессии до TZEN = 0.
    1. Перейдите в \Projects\NUCLEO-WBA52CG\Ex.ampлес.
    2. Откройте папку \GPIO, затем \GPIO_EXTI.
    3. Откройте проект с помощью предпочитаемой вами цепочки инструментов. Быстрый конецview о том, как открыть, построить и запустить бывшийample с поддерживаемыми инструментальными цепочками приведен ниже.
    4. Восстановить все files и загрузите изображение в целевую память.
    5. Беги бывшегоample: При каждом нажатии кнопки [USER] светодиод LD1 переключается. Более подробную информацию можно найти в файле readme. file бывшегоampле.
  • Чтобы открыть, построить и запустить бывшийample с помощью поддерживаемых цепочек инструментов, выполните следующие действия:
    • ЭВАРМ:
      1. Под бывшимample, откройте подпапку \EWARM.
      2. Запустите рабочую область Project.eww (имя рабочей области может измениться с прежнего).ampперешел к другому).
      3. Восстановить все files: [Проект]>[Перестроить все].
      4. Загрузите образ проекта: [Проект]>[Отладка].
      5. Запустите программу: [Отладка]>[Перейти (F5)].
    • МДК-АРМ:
      1. Под бывшимample, откройте подпапку \MDK-ARM.
      2. Запустите рабочую область Project.uvproj (имя рабочей области может измениться с прежнего).ampперешел к другому).
      3. Восстановить все files:[Проект]>[Перестроить все целевые объекты fileс].
      4. Загрузите образ проекта: [Отладка]>[Начать/остановить сеанс отладки].
      5. Запустите программу: [Отладка]>[Выполнить (F5)].
    • STM32CubeIDE:
      1. Откройте набор инструментов STM32CubeIDE.
      2. Щелкните [File]>[Переключить рабочую область]>[Другое] и перейдите в каталог рабочей области STM32CubeIDE.
      3. Щелкните [File]>[Импорт] , выберите [Общие]>[Существующие проекты в рабочую область], а затем нажмите [Далее].
      4. Перейдите в каталог рабочей области STM32CubeIDE и выберите проект.
      5. Перестроить весь проект files: выберите проект в окне [Проводник проектов], затем щелкните меню [Проект]>[Построить проект].
      6. Запустите программу: [Выполнить]>[Отладка (F11)]
Разработка индивидуального приложения

Примечание: Программное обеспечение должно включить кэш инструкций (ICACHE), чтобы получить выполнение состояния ожидания 0 из флэш-памяти и достичь максимальной производительности и лучшего энергопотребления.

Использование STM32CubeMX для разработки или обновления приложения.

  • В пакете MCU STM32CubeWBA почти все проектыampФайлы генерируются с помощью инструмента STM32CubeMX для инициализации системы, периферийных устройств и промежуточного программного обеспечения.
  • Прямое использование существующего проектаampДля файла из инструмента STM32CubeMX требуется STM32CubeMX 6.10.0 или выше:
    • После установки STM32CubeMX откройте и при необходимости обновите предлагаемый проект. Самый простой способ открыть существующий проект — дважды щелкнуть файл *.ioc. file чтобы STM32CubeMX автоматически открывал проект и его исходный код files.
    • STM32CubeMX генерирует исходный код инициализации таких проектов. Основной исходный код приложения содержится в комментариях «USER CODE BEGIN» и «USER CODE END». В случае изменения выбора и настройки IP-адреса STM32CubeMX обновляет инициализационную часть кода, но сохраняет основной исходный код приложения.
  • Для разработки собственного проекта в STM32CubeMX следуйте пошаговому процессу:
    1. Выберите микроконтроллер STM32, соответствующий необходимому набору периферийных устройств.
    2. Настройте все необходимое встроенное программное обеспечение с помощью средства разрешения конфликтов распиновки, помощника по настройке дерева часов, калькулятора энергопотребления и утилиты, выполняющей настройку периферийных устройств MCU (например, GPIO или USART) и стеков промежуточного программного обеспечения (например, USB).
    3. Сгенерируйте код инициализации C на основе выбранной конфигурации. Этот код готов к использованию в нескольких средах разработки. Код пользователя сохраняется при следующей генерации кода.
  • Для получения дополнительной информации о STM32CubeMX обратитесь к руководству пользователя STM32CubeMX для настройки и инициализации STM32, генерации кода C (UM1718).
  • Список доступных проектов exampфайлы для STM32CubeWBA см. в примечаниях по применению Прошивка STM32Cube exampфайлы для серии STM32WBA (AN5929).

Приложения для драйверов

HAL-приложение
В этом разделе описаны шаги, необходимые для создания собственного приложения HAL с использованием STM32CubeWBA:

  1. Создать проект
    • Чтобы создать новый проект, начните с проекта шаблона, предоставленного для каждой платы в папке \Projects\. \Templates или из любого доступного проекта в \Projects\. \Экзамены или \Проекты\ \Приложения (где относится к названию платы, например STM32CubeWBA).
    • Проект Template предоставляет пустую функцию основного цикла. Однако это хорошая отправная точка для понимания настроек проекта STM32CubeWBA. Шаблон имеет следующие характеристики:
      • Он содержит исходный код HAL, драйверы CMSIS и BSP, которые представляют собой минимальный набор компонентов, необходимых для разработки кода на данной плате.
      • Он содержит включенные пути для всех компонентов встроенного ПО.
      • Он определяет поддерживаемые устройства серии STM32WBA, позволяя правильно настроить драйверы CMSIS и HAL.
      • Он предоставляет пользователю готовый к использованию fileпредварительно настроено, как показано ниже:
        HAL инициализируется с базой времени по умолчанию с помощью ядра Arm® SysTick. SysTick ISR реализован для цели HAL_Delay().
        Примечание: При копировании существующего проекта в другое место убедитесь, что все включенные пути обновлены.
  2. Добавьте необходимое промежуточное ПО в пользовательский проект (необязательно)
    Чтобы определить источник files, которые нужно добавить в проект file список см. в документации, предоставленной для каждого промежуточного программного обеспечения. См. приложения в папке \Projects\STM32xxx_yyy\Applications\. (где относится к стеку промежуточного программного обеспечения, например ThreadX), чтобы узнать, какой источник files и включаемые пути должны быть добавлены.
  3. Настройка компонентов прошивки
    Компоненты HAL и промежуточного программного обеспечения предлагают набор параметров конфигурации во время сборки с использованием макросов #define, объявленных в заголовке. file. Конфигурация шаблона file предоставляется внутри каждого компонента, который необходимо скопировать в папку проекта (обычно это файл конфигурации). file называется xxx_conf_template.h, слово _template необходимо удалить при копировании в папку проекта). Конфигурация file предоставляет достаточно информации, чтобы понять влияние каждого параметра конфигурации. Более подробная информация доступна в документации, прилагаемой к каждому компоненту.
  4. Запустите библиотеку HAL
    После перехода к основной программе код приложения должен вызвать API HAL_Init() для инициализации библиотеки HAL, которая выполняет следующие задачи:
    • Настройка предварительной выборки флэш-памяти и приоритета прерывания SysTick (с помощью макросов, определенных в st m32wbaxx_hal_conf.h).
    • Настройка SysTick для генерации прерывания каждую миллисекунду с приоритетом прерывания SysTick TICK_INT_PRIO, определенным в stm32wbaxx_hal_conf.h.
    • Установка приоритета группы NVIC на 0.
    • Вызов функции обратного вызова HAL_MspInit(), определенной в пользователе stm32wbaxx_hal_msp.c file для выполнения глобальной низкоуровневой инициализации оборудования.
  5. Настройте системные часы
    Конфигурация системных часов выполняется путем вызова двух API, описанных ниже:
    • HAL_RCC_OscConfig(): этот API настраивает внутренние и внешние генераторы. Пользователь выбирает настройку одного или всех генераторов.
    • HAL_RCC_ClockConfig(): этот API настраивает источник системной синхронизации, задержку флэш-памяти и прескалеры AHB и APB.
  6. Инициализируйте периферийное устройство
    • Сначала напишите периферийную функцию HAL_PPP_MspInit. Действуйте следующим образом:
      • Включите периферийные часы.
      • Настройте периферийные GPIO.
      • Настройте канал DMA и включите прерывание DMA (при необходимости).
      • Включите периферийное прерывание (при необходимости).
    • При необходимости отредактируйте файл stm32xxx_it.c, чтобы вызвать необходимые обработчики прерываний (периферийные устройства и DMA).
    • Запишите функции обратного вызова для завершения процесса, если планируется использовать периферийное прерывание или DMA.
    • В пользователе main.c file, инициализируйте структуру дескриптора периферийного устройства, затем вызовите функцию HAL_PPP_Init() для инициализации периферийного устройства.
  7. Разработать приложение
    • В это сtagе, система готова и можно начинать разработку кода пользовательского приложения.
    • HAL предоставляет интуитивно понятные и готовые к использованию API для настройки периферийного устройства. Он поддерживает опрос, прерывания и модель программирования DMA для удовлетворения любых требований приложения. Более подробную информацию о том, как использовать каждое периферийное устройство, см. в богатом примере.ampнабор файлов, включенный в пакет MCU STM32CubeWBA.
      Осторожность: В реализации HAL по умолчанию таймер SysTick используется в качестве временной базы: он генерирует прерывания через регулярные промежутки времени. Если HAL_Delay() вызывается из периферийного процесса ISR, убедитесь, что прерывание SysTick имеет более высокий приоритет (числовой меньший), чем периферийное прерывание. В противном случае процесс ISR вызывающей стороны блокируется. Функции, влияющие на настройки временной шкалы, объявляются как __weak, чтобы сделать возможным переопределение в случае других реализаций пользователя. file (с использованием таймера общего назначения, напримерample или другой источник времени). Для получения более подробной информации обратитесь к примеру HAL_TimeBase.ampле.

Приложение LL
В этом разделе описаны шаги, необходимые для создания собственного приложения LL с использованием STM32CubeWBA.

  1. Создать проект
    • Чтобы создать новый проект, начните с проекта Templates_LL, предоставленного для каждой платы в папке \Projects\. \Templates_LL или из любого доступного проекта в папке \Projects\. \Бывшийamples_LL ( относится к названию платы, например NUCLEO-WBA32CG).
    • Шаблон проекта предоставляет пустую функцию основного цикла, которая является хорошей отправной точкой для понимания настроек проекта для STM32CubeWBA. Основные характеристики шаблона следующие:
      • Он содержит исходные коды драйверов LL и CMSIS, которые представляют собой минимальный набор компонентов, необходимых для разработки кода на данной плате.
      • Он содержит включенные пути для всех необходимых компонентов прошивки.
      • Он выбирает поддерживаемое устройство серии STM32WBA и позволяет правильно настроить драйверы CMSIS и LL.
      • Он предоставляет пользователю готовый к использованию files, которые предварительно настроены следующим образом:
        ◦ main.h: уровень абстракции определения светодиодов и USER_BUTTON.
        ◦ main.c: конфигурация системных часов для максимальной частоты.
  2. Перенос существующего проекта на другую доску
    Чтобы поддержать существующий проект на другой целевой плате, начните с проекта Templates_LL, предоставленного для каждой платы и доступного в разделе \Projects\. \Шаблоны_LL.
    • Выберите бывшего LLample: Найти доску, на которой LL exampфайлы развернуты, см. список LL exampфайл STM32CubeProjectsList.html.
  3. Портировать бывшего LLampль:
    • Скопируйте/вставьте папку Templates_LL – чтобы сохранить исходный источник – или напрямую обновите существующий проект Templates_LL.
    • Тогда портирование заключается в основном в замене Templates_LL files от Exampцелевой проект les_LL.
    • Сохраните все детали платы. Для ясности отдельные части платы помечены специальными значками. tags:

      STMicroelectronics-STM32WBA-Series-Начало работы-рис-7

    • Таким образом, основными этапами портирования являются следующие:
      • Замените stm32wbaxx_it.h. file
      • Замените stm32wbaxx_it.c. file
      • Замените main.h file и обновите его: сохраните определение светодиода и пользовательских кнопок шаблона LL в разделе «Конфигурация конкретной платы». tags.
      • Замените файл main.c file и обновите его:
    • Сохраните конфигурацию часов функции шаблона LL SystemClock_Config() в разделе «Конфигурация конкретной платы». tags.
    • В зависимости от определения светодиода замените каждое появление LDx другим LDy, доступным в файле main.h. file.
    • Благодаря этим изменениям бывшийample теперь работает на целевой доске

Приложения безопасности
Этот пакет поставляется с приложениями безопасности.

Заявки СБФУ

  • SBSFU предоставляет решение Root of Trust, включая функции безопасной загрузки и безопасного обновления прошивки (на основе MCUboot).
  • Решение используется перед выполнением приложения.
  • Решение обеспечиваетampфайл защищенного сервиса (переключатель GPIO), изолированного от незащищенного приложения. Небезопасное приложение во время выполнения все равно может использовать это решение.

Приложения ТФМ
TFM предоставляет решение Root of Trust, включая функции безопасной загрузки и безопасного обновления прошивки.
(на основе MCUboot). Решение используется перед выполнением приложения. Решение предоставляет безопасные сервисы TFM, изолированные от незащищенного приложения. Небезопасное приложение во время выполнения все равно может использовать это решение.

РЧ приложения
Радиочастотное приложение описано в примечаниях по применению: Создание беспроводных приложений с помощью микроконтроллеров серии STM32WBA (AN5928).

Получение обновлений выпуска STM32CubeWBA
Последние версии и исправления пакетов микроконтроллеров STM32CubeWBA доступны в серии STM32WBA. Их можно получить с помощью кнопки ПРОВЕРИТЬ ОБНОВЛЕНИЕ в STM32CubeMX. Для получения более подробной информации обратитесь к разделу 3 руководства пользователя STM32CubeMX для настройки STM32 и генерации кода C инициализации (UM1718).

Часто задаваемые вопросы

  • Когда мне следует использовать HAL вместо драйверов LL?
    • Драйверы HAL предлагают высокоуровневые функциональные API-интерфейсы с высоким уровнем переносимости. Сложность продукта или периферийного устройства скрыта от конечных пользователей.
    • Драйверы LL предлагают низкоуровневые API-интерфейсы уровня регистров с лучшей оптимизацией, но менее переносимые. Они требуют глубоких знаний характеристик продукции или IP-спецификаций.
  • Могу ли я использовать драйверы HAL и LL вместе? Если смогу, каковы ограничения?
    • Можно использовать как драйверы HAL, так и LL. Используйте HAL на этапе инициализации IP, а затем управляйте операциями ввода-вывода с помощью драйверов LL.
    • Основное различие между HAL и LL заключается в том, что драйверы HAL требуют создания и использования дескрипторов для управления операциями, в то время как драйверы LL работают непосредственно с регистрами периферии. Эксamples_MIX бывшийample иллюстрирует, как смешивать HAL и LL.
  • Как включены API инициализации LL?
    • Определение API-интерфейсов инициализации LL и связанных с ними ресурсов (структур, литералов и прототипов) обусловлено переключателем компиляции USE_FULL_LL_DRIVER.
    • Чтобы иметь возможность использовать API-интерфейсы инициализации LL, добавьте этот переключатель в препроцессор компилятора цепочки инструментов.
  • Как STM32CubeMX может генерировать код на основе встроенного программного обеспечения?
    STM32CubeMX имеет встроенные знания о микроконтроллерах STM32, включая их периферийные устройства и программное обеспечение, которые позволяют предоставлять пользователю графическое представление и генерировать файлы *.h или *.c. files на основе конфигурации пользователя.

ВАЖНОЕ УВЕДОМЛЕНИЕ – ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ

  • STMicroelectronics NV и ее дочерние компании («ST») оставляют за собой право вносить изменения, исправления, улучшения, модификации и усовершенствования в продукцию ST и/или в этот документ в любое время без предварительного уведомления. Покупатели должны получить последнюю соответствующую информацию о продукции ST перед размещением заказов. Продукция ST продается в соответствии с условиями продажи ST, действующими на момент подтверждения заказа.
  • Покупатели несут исключительную ответственность за выбор, отбор и использование продукции ST, и ST не несет ответственности за помощь в применении или конструкцию продукции покупателей.
  • Компания ST не предоставляет никаких лицензий, явных или подразумеваемых, на какие-либо права интеллектуальной собственности.
  • Перепродажа продукции ST с условиями, отличными от изложенных в настоящем документе, аннулирует любую гарантию, предоставленную ST на такую ​​продукцию.
  • ST и логотип ST являются товарными знаками ST. Дополнительную информацию о товарных знаках ST см. на сайте www.st.com/trademarks. Все остальные названия продуктов или услуг являются собственностью их соответствующих владельцев.
  • Информация в этом документе заменяет информацию, ранее предоставленную в предыдущих версиях этого документа.
  • © 2023 STMicroelectronics – Все права защищены

Документы/Ресурсы

Серия STMicroelectronics STM32WBA Начало работы [pdf] Руководство пользователя
Серия STM32WBA Начало работы, начало работы, начало

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *