STMicroelectronics-лого

STMicroelectronics STM32WBA серијата Започнување

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-1

Информации за производот

Спецификации:

  • Име на производ: STM32CubeWBA MCU пакет
  • Производител: STMicroelectronics
  • Компатибилност: Микроконтролери од серијата STM32WBA
  • Лиценцирање: BSD лиценца со отворен код

Упатство за употреба на производот

Главни карактеристики на пакетот STM32CubeWBA MCU:
STM32CubeWBA MCU пакетот ги обезбедува сите потребни вградени софтверски компоненти за развој на апликации на микроконтролери од серијата STM32WBA. Тој е многу пренослив во серијата STM32 и доаѓа со HAL и LL API, на прamples и компонентите на Middleware.

Архитектурата завршиview:
Архитектурата на STM32CubeWBA MCU пакетот се состои од три нивоа - Апликации, компоненти базирани на библиотека и протокол, слој за апстракција на хардверот, двигатели на BSP, Основни двигатели и API со низок слој.

Најчесто поставувани прашања

  • Што е вклучено во пакетот STM32CubeWBA MCU?
    Пакетот вклучува API со низок слој (LL) и слој за апстракција на хардвер (HAL), на прamples, апликации, Middleware компоненти како FileX/LevelX, NetX Duo, mbed-crypto библиотеки и многу повеќе.
  • Дали STM32CubeWBA MCU пакетот е компатибилен со генератор на код 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
      • STM32Cube нискослојни API, обезбедувајќи најдобри перформанси и отпечатоци со висок степен на корисничка контрола врз хардверот
      • Конзистентен сет на компоненти за среден софтвер како што е ThreadX, FileX / LevelX, NetX Duo, USBX, библиотека на допир, mbed-crypto, TFM, MCUboot, OpenBL и STM32_WPAN (вклучувајќи Bluetooth® Low Energy profiles и услуги, Mesh, Zigbee®, OpenThread, Matter и 802.15.4 MAC слој)
      • Сите вградени софтверски алатки со целосни комплети периферни и апликативни прampлес
    • STM32Cube Expansion пакети, кои содржат вградени софтверски компоненти кои ги надополнуваат функционалностите на STM32Cube MCU и MPU пакетите со:
      • Екстензии на Middleware и апликативни слоеви
      • Exampработи на некои специфични табли за развој на STMicroelectronics
  • Ова упатство за корисникот опишува како да започнете со STM32CubeWBA MCU пакетот.
    • Дел 2 Главни карактеристики STM32CubeWBA ги опишува главните карактеристики на STM32CubeWBA MCU пакетот.
    • Секција 3 STM32CubeWBA архитектура завршиview обезбедува надview на архитектурата STM32CubeWBA и структурата на пакетот MCU.

Општи информации

STM32CubeWBA MCU пакетот работи на STM32 32-битни микроконтролери базирани на процесорот Arm® Cortex®-M33 со Arm® TrustZone® и FPU.
Забелешка: Arm и TrustZone се регистрирани трговски марки на Arm Limited (или нејзините подружници) во САД и/или на друго место.

Главни карактеристики STM32CubeWBA

  • STM32CubeWBA MCU пакетот работи на STM32 32-битни микроконтролери базирани на Arm® Cortex®-M33 процесорот со TrustZone® и FPU.
  • STM32CubeWBA ги собира, во еден пакет, сите генерички вградени софтверски компоненти потребни за развој на апликација за микроконтролерите од серијата STM32WBA. Во согласност со иницијативата STM32Cube, овој сет на компоненти е многу пренослив, не само во рамките на микроконтролерите од серијата STM32WBA, туку и во другите серии STM32.
  • STM32CubeWBA е целосно компатибилен со генератор на код STM32CubeMX, за да се генерира код за иницијализација. Пакетот вклучува API со низок слој (LL) и слој за апстракција на хардверот (HAL) што го покриваат хардверот на микроконтролерот, заедно со широк сет на ексamples работи на STMicroelectronics табли. HAL и LL API се достапни во BSD лиценца со отворен код за погодност на корисниците.
  • Сл.ampлес.
  • Тие доаѓаат со бесплатни, кориснички услови за лиценца:
    • Интегриран и целосно опремен Azure® RTOS: Azure® RTOS ThreadX
    • Имплементација на CMSIS-RTOS со Azure® RTOS ThreadX
    • Купиштата на USB-домаќини и уреди доаѓаат со многу класи: Azure® RTOS USBX
    • Напредно file систем и слој за превод на блиц: FileX / НивоX
    • Стак за вмрежување од индустриско ниво: оптимизиран за перформанси што доаѓа со многу протоколи за IoT: NetX Duo
    • OpenBootloader
    • Решение за интеграција на Arm® Trusted Firmware-M (TF‑M).
    • mbed-крипто библиотеки
    • Библиотека ST Netwok
    • Решение за библиотека со сензори за допир STMT
  • Неколку апликации и демонстрации кои ги имплементираат сите овие компоненти на среден софтвер се исто така обезбедени во STM32CubeWBA MCU пакетот.
  • Распоредот на компонентата STM32CubeWBA MCU Package е илустриран на Слика 1. Компоненти на STM32CubeWBA MCU пакетот.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-2

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

Решението на пакетот STM32CubeWBA MCU е изградено околу три независни нивоа кои лесно комуницираат како што е опишано на Слика 2. Архитектура на пакетот STM32CubeWBA MCU.

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-3

Ниво 0

Ова ниво е поделено на три подслоеви:

  • Пакет за поддршка на одборот (BSP).
  • Хардверски апстракциски слој (HAL):
    • HAL периферни драјвери
    • Драјвери со низок слој
  • Основна употреба на периферни уреди прampлес.

Пакет за поддршка на одборот (BSP)
Овој слој нуди збир на API во однос на хардверските компоненти во хардверските табли (како што се драјверите за LCD, Audio,\ microSD™ и MEMS). Составен е од два дела:

  • Возач на компоненти:
    Овој драјвер е поврзан со надворешниот уред на плочката, а не со уредот STM32. Двигателот на компоненти обезбедува специфични API за надворешните компоненти на драјверот BSP и може да биде пренослив на која било друга плоча.
  • Возач на BSP:
    Двигателот BSP овозможува поврзување на двигателите на компонентите со одредена табла и обезбедува збир на прифатливи за корисниците
    API-и. Правилото за именување на API е BSP_FUNCT_Action().
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP се заснова на модуларна архитектура која овозможува лесно пренесување на кој било хардвер со само имплементирање на рутините на ниско ниво.

Хардверски апстракциски слој (HAL) и низок слој (LL)
STM32CubeWBA HAL и LL се комплементарни и покриваат широк опсег на барања за апликација:

  • HAL драјверите нудат високо преносливи API-ориентирани кон функциите на високо ниво. Тие ја кријат MCU и периферната комплексност на крајниот корисник.
    HAL двигателите обезбедуваат генерички API-ориентирани кон функции со повеќе инстанци, кои ја поедноставуваат имплементацијата на корисничката апликација преку обезбедување на процеси подготвени за употреба. За прample, за комуникациските периферни уреди (I2S, UART и други), обезбедува API кои овозможуваат иницијализирање и конфигурирање на периферниот уред, управување со пренос на податоци врз основа на процесот на гласање, прекинување или DMA и справување со комуникациските грешки што може да се појават за време на комуникацијата. АПИ-ата на драјверите на HAL се поделени во две категории:
    1. Генерички API, кои обезбедуваат заеднички и генерички функции на сите микроконтролери од серијата STM32.
    2. Екстензија API, кои обезбедуваат специфични и приспособени функции за одредено семејство или одреден број на дел.
  • Нискослојните API обезбедуваат API на ниско ниво на ниво на регистер, со подобра оптимизација, но помала преносливост.
    • Тие бараат длабоко познавање на MCU и спецификациите на периферните уреди.
    • LL драјверите се дизајнирани да понудат брз лесен слој ориентиран кон експертите кој е поблиску до хардверот отколку HAL. Спротивно на HAL, LL API не се обезбедени за периферни уреди каде оптимизираниот пристап не е клучна карактеристика, или за оние на кои им е потребна тешка софтверска конфигурација или сложен оџак од повисоко ниво.
    • Возачите на LL се карактеризираат со:
      • Збир на функции за иницијализирање на периферните главни карактеристики според параметрите наведени во структурите на податоци.
      • Збир на функции за пополнување на структурите на податоци за иницијализација со вредностите за ресетирање што одговараат на секое поле.
      • Функција за периферна деиницијализација (периферните регистри се вратени на нивните стандардни вредности).
      • Збир на вградени функции за директен и атомски пристап до регистарот.
      • Целосна независност од HAL и можност за користење во самостоен режим (без HAL драјвери).
      • Целосна покриеност на поддржаните периферни карактеристики.

Основна употреба на периферни уреди прampлес
Овој слој го опфаќа ексamples изградени преку периферните уреди STM32 користејќи само HAL и BSP ресурси.

Ниво 1

Ова ниво е поделено на два подслоеви:

  • Компоненти на Middleware
  • Examples базирани на компонентите на Middleware

Компоненти на Middleware

  • Средниот софтвер е збир на библиотеки што покриваат Bluetooth® ниска енергија (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot и mbed-crypto.
  • Хоризонталната интеракција помеѓу компонентите на овој слој се врши со повикување на истакнатите API.
  • Вертикалната интеракција со двигателите со низок слој се врши преку специфични повратни повици и статични макроа имплементирани во интерфејсот за повици на библиотечниот систем.
  • Главните карактеристики на секоја компонента на среден софтвер се како што следува:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: Оперативен систем во реално време (RTOS), дизајниран за вградени системи со два функционални режими.
        • Заеднички режим: вообичаени функционалности на RTOS како што се управување со нишки и синхронизација, управување со мемориски базен, размена на пораки и справување со настани.
        • Режим на модули: Напреден кориснички режим кој овозможува вчитување и растоварување на претходно поврзани ThreadX модули во лет преку менаџер на модули.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): го имплементира протоколот Bluetooth® Low Energy за слоевите Link и Stack.
    • MCUboot (софтвер со отворен код)
    • Zigbee® протоколи за стекот и сродните кластери.
    • Thread® протокол оџак и слој за поврзување.
    • Arm® доверлив фирмвер-M, TF‑M (софтвер со отворен код): Референтна имплементација на безбедносната архитектура на платформата Arm® (PSA) за TrustZone® со придружните безбедни услуги.
    • mbed-crypto (софтвер со отворен код): Средниот софтвер mbed-crypto обезбедува имплементација на API за криптографија на PSA.
    • STM32 библиотека со сензори за допир: робусно STMTouch капацитивно решение за сензори за допир, поддршка за близина, копчиња на допир, линеарни и ротирачки сензори за допир. Се заснова на докажан принцип на стекнување на пренос на површински полнеж.

Examples базирани на компонентите на Middleware
Секоја компонента на среден софтвер доаѓа со еден или повеќе ексamples (исто така наречени апликации) што покажува како да го користите. Интеграција прampОбезбедени се и оние кои користат неколку компоненти на среден софтвер.

Заврши пакетот за фирмверот STM32CubeWBAview

Поддржани уреди и хардвер од серијата 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
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • Пакетот STM32CubeWBA MCU може да работи на кој било компатибилен хардвер. Корисникот едноставно ги ажурира двигателите на BSP за да го пренесе дадениот прampна таблата, ако втората ги има истите хардверски карактеристики (како што се LED, LCD дисплеј и копчиња).
Пакетот на фирмверот завршиview
  • Решението на пакетот STM32CubeWBA е обезбедено во еден зип пакет со структурата прикажана на Слика 3. Структура на пакетот на фирмверот STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-4

  • За секоја табла, сет на прamples е обезбеден со претходно конфигурирани проекти за синџири со алатки EWARM, MDK-ARM и STM32CubeIDE.
  • Слика 4. STM32CubeWBA прampпомалкуview ја прикажува структурата на проектот за таблите NUCLEO-WBA52CG, NUCLEO-WBA55CG и STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-5

  • Поранешниотampлесовите се класифицирани во зависност од нивото STM32Cube на кое се применуваат и се именувани на следниов начин:
    • Ниво 0 прamples се нарекуваат Прampлес, прamples_LL, и прamples_MIX. Тие користат соодветно HAL драјвери, LL драјвери и мешавина од HAL и LL драјвери без никаква компонента за среден софтвер.
    • Ниво 1 прamples се нарекуваат Апликации. Тие обезбедуваат типични случаи на употреба на секоја компонента на среден софтвер. Секоја апликација за фирмвер за дадена табла може брзо да се изгради благодарение на проектите со шаблони достапни во директориумите Templ ates и Templates_LL.

Проекти со овозможен TrustZone®

  • Овозможено TrustZone® Прampимињата го содржат префиксот _TrustZone. Правилото се применува и за апликации (освен за TFM и SBSFU, кои се природно за TrustZone®).
  • TrustZone®-овозможено Прamples и Applications се обезбедени со мултипроектна структура составена од безбедни и небезбедни подпроекти како што е прикажано на Слика 5. Мултипроектна сигурна и небезбедна проектна структура.
  • Проектите со овозможен TrustZone® се развиени според шаблонот за уред CMSIS-5, проширен за да го вклучи заглавието за партиционирање на системот file партиција_ .h, кој е главно одговорен за поставувањето на единицата за безбеден атрибут (SAU), FPU и доделувањето безбедни/небезбедни прекини во безбедносната состојба на извршување.
  • Ова поставување се изведува во функцијата безбедна CMSIS SystemInit(), која се повикува при стартување пред да влезе во функцијата main() за безбедна апликација. Погледнете во Arm® TrustZone®-M документацијата за софтверски упатства.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-6

  • Пакетот фирмверски пакет STM32CubeWBA обезбедува стандардна партиција на меморија во партицијата _ .ч files достапни под: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • Во овие партиции files, SAU е стандардно оневозможен. Следствено, мапирањето на меморијата IDAU се користи за безбедносна атрибуција. Видете ја сликата Безбедна/небезбедна партиција со помош на технологијата TrustZone® во референтниот прирачник RM0495.
  • Ако корисникот го овозможи SAU, стандардната конфигурација на SAU регионите е предефинирана во партицијата fileе како што следува:
    • SAU регион 0: 0x08080000 – 0x081FFFFF (небезбедна безбедна половина од флеш меморијата (512 Kbytes))
    • SAU регион 1: 0x0BF88000 – 0x0BF97FFF (небезбедна системска меморија)
    • SAU регион 2: 0x0C07E000 – 0x0C07FFFF (безбеден, небезбеден може да се повика)
    • SAU регион 3: 0x20010000 – 0x2001FFFF (небезбеден SRAM2 (64 Kbytes))
    • SAU регион 4: 0x40000000 – 0x4FFFFFFF (небезбедна периферна мапирана меморија)
  • За да се совпадне со стандардната партиција, уредите од серијата 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однесувањето и потребната средина за да функционира.
    • ioc file што им овозможува на корисниците да отворат поголем дел од фирмверот на прamples во рамките на STM32CubeMX.

Започнуваме со STM32CubeWBA

Водење на првиот HAL ексample

Овој дел објаснува колку е едноставно да се изврши првиот ексample во рамките на STM32CubeWBA. Како илустрација го користи генерирањето на едноставен LED преклопник кој работи на плочката NUCLEO-WBA52CG:

  1. Преземете го пакетот STM32CubeWBA MCU.
  2. Отпакувајте го во директориум по ваш избор.
  3. Погрижете се да не ја менувате структурата на пакетот прикажана на Слика 1. Исто така, се препорачува да го копирате пакетот на локација блиску до вашиот корен волумен (што значи C:\ST или G:\Tests), бидејќи некои IDE наидуваат на проблеми кога патеката должината е премногу долга.

Водење на првиот TrustZone® овозможен на прample

  • Пред да вчитате и стартувате TrustZone® овозможено прampле, задолжително е да се прочита прampле читам file за која било специфична конфигурација, која гарантира дека безбедноста е овозможена како што е опишано во Дел 4.2.1 проекти овозможени TrustZone® (TZEN=1 (бајт за корисничка опција)).
    1. Прелистајте до \Проекти\NUCLEO-WBA52CG\Прampлес.
    2. Отворете ги папките \GPIO, а потоа \GPIO_IOToggle_TrustZone.
    3. Отворете го проектот со вашиот омилен синџир со алатки. Брзо завршувањеview за тоа како да отворите, изградите и водите ексampле со поддржаните синџири за алатки е дадено подолу.
    4. Обновете го во низа сите безбедни и небезбедни проекти files и вчитајте ги безбедните и небезбедните слики во целната меморија.
    5. Стартувај го бившиотample: редовно, безбедната апликација го префрла LD2 секоја секунда, а небезбедната апликација го менува LD3 двапати побрзо. За повеќе детали, погледнете го readme file на ексampле.
  • Да се ​​отвори, изгради и водите ексampсо поддржаните синџири со алатки, следете ги чекорите подолу:
    • EWARM:
      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. Трепкајте го безбедниот бинар со [Download and Debug] (Ctrl+D).
      9. Стартувај ја програмата: [Debug]>[Go(F5)]
    • МДК-АРМ:
      1. Отворете го синџирот со алатки \MDK-ARM.
      2. Отворете го работниот простор Multiprojects 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. Отворете го работниот простор Multiprojects file .проект.
      3. Обновете го проектот xxxxx_Secure.
      4. Обновете го проектот xxxxx_NonSecure.
      5. Стартувајте ја апликацијата [Debug as STM32 Cortex-M C/C++] за безбедниот проект.
      6. Во прозорецот [Уреди конфигурација], изберете го панелот [Startup] и додајте ја сликата и симболите на небезбедниот проект.
        Важно: Небезбедниот проект мора да се вчита пред безбедниот проект.
      7. Кликнете на [Ok].
      8. Стартувај го бившиотampле на перспектива за отстранување грешки.

Водење на првиот TrustZone® оневозможен прample

  • Пред да вчитате и стартувате TrustZone® оневозможен прampле, задолжително е да се прочита прampле читам file за која било специфична конфигурација. Ако нема конкретни спомнувања, проверете дали уредот на плочата има оневозможена безбедност (TZEN=0 (бајт за корисничка опција)). Видете ЧПП за правење опционална регресија до TZEN = 0
    1. Прелистајте до \Проекти\NUCLEO-WBA52CG\Прampлес.
    2. Отворете ги папките \GPIO, а потоа \GPIO_EXTI.
    3. Отворете го проектот со вашиот омилен синџир со алатки. Брзо завршувањеview за тоа како да отворите, изградите и водите ексampле со поддржаните синџири за алатки е дадено подолу.
    4. Обновете ги сите files и вчитајте ја вашата слика во целната меморија.
    5. Стартувај го бившиотample: Секогаш кога ќе се притисне копчето [КОРИСНИК], LD1 LED се префрла. За повеќе детали, погледнете го readme file на ексampле.
  • Да се ​​отвори, изгради и водите ексampсо поддржаните синџири со алатки, следете ги чекорите подолу:
    • EWARM:
      1. Под ексample папка, отворете ја подпапката \EWARM.
      2. Стартувајте го работниот простор Project.eww (името на работниот простор може да се промени од еден прampле на друг).
      3. Обновете ги сите files: [Проект]> [Повторно изградете ги сите].
      4. Вчитајте ја сликата на проектот: [Проект]> [Отстранување грешки].
      5. Стартувај програма: [Debug]>[Go (F5)].
    • МДК-АРМ:
      1. Под ексample папката, отворете ја подпапката \MDK-ARM.
      2. Стартувајте го работниот простор Project.uvproj (името на работниот простор може да се промени од едно прampле на друг).
      3. Обновете ги сите files:[Проект]>[Повторна изградба на целта fileс].
      4. Вчитајте ја сликата на проектот: [Debug]>[Start/Stop Debug Session].
      5. Стартувај програма: [Debug]>[Run (F5)].
    • STM32CubeIDE:
      1. Отворете го синџирот со алатки STM32CubeIDE.
      2. Кликнете [File]>[Префрли работен простор]>[Друго] и прелистајте до директориумот за работниот простор STM32CubeIDE.
      3. Кликнете [File]>[Увези] , изберете [Општо]>[Постоечки проекти во работен простор], а потоа кликнете [Следно].
      4. Прегледајте го директориумот на работниот простор STM32CubeIDE и изберете го проектот.
      5. Обнова на целиот проект files: Изберете го проектот во прозорецот [Project Explorer], а потоа кликнете на менито [Project]>[Build project].
      6. Стартувај ја програмата: [Run]>[Debug (F11)]
Развивање на сопствена апликација

Забелешка: Софтверот мора да овозможи инструкцискиот кеш (ICACHE) да добие извршување на состојба на чекање од 0 од флеш меморијата и да достигне максимални перформанси и подобра потрошувачка на енергија.

Користење на STM32CubeMX за развој или ажурирање апликација

  • Во пакетот STM32CubeWBA MCU, скоро сите проекти на прampлесовите се генерираат со алатката STM32CubeMX за иницијализирање на системот, периферните уреди и средниот софтвер.
  • Директната употреба на постоечки проект на прampЛе од алатката STM32CubeMX бара STM32CubeMX 6.10.0 или понова верзија:
    • По инсталирањето на STM32CubeMX, отворете и доколку е потребно ажурирајте го предложениот проект. Наједноставниот начин да се отвори постоечки проект е двоен клик на *.ioc file така што STM32CubeMX автоматски го отвора проектот и неговиот извор files.
    • STM32CubeMX го генерира изворниот код за иницијализација на таквите проекти. Главниот изворен код на апликацијата е содржан во коментарите „КОРИСНИЧКИ КОД ПОЧЕТ“ и „КОРИСНИЧКИ КОД КРАЈ“. Во случај изборот и поставката за IP да бидат изменети, STM32CubeMX го ажурира делот за иницијализација на кодот, но го зачувува главниот изворен код на апликацијата.
  • За развој на сопствен проект во STM32CubeMX, следете го процесот чекор-по-чекор:
    1. Изберете го микроконтролерот STM32 што одговара на потребниот сет на периферни уреди.
    2. Конфигурирајте го целиот потребен вграден софтвер со помош на решавач на конфликти со пинаути, помошник за поставување на часовникот, калкулатор за потрошувачка на енергија и алатката што врши периферна конфигурација на MCU (како што се GPIO или USART) и стекови среден софтвер (како што е USB).
    3. Генерирајте го кодот за иницијализација C врз основа на избраната конфигурација. Овој код е подготвен за употреба во неколку развојни околини. Корисничкиот код се чува при следната генерација на кодови.
  • За повеќе информации за STM32CubeMX, погледнете го упатството за корисникот STM32CubeMX за конфигурација и иницијализација на STM32 генерирање на кодови C (UM1718).
  • За список на достапниот проект прampза STM32CubeWBA, погледнете ја белешката за апликацијата STM32Cube фирмверот на пр.amples за STM32WBA серија (AN5929).

Апликации за драјвери

HAL апликација
Овој дел ги опишува чекорите потребни за креирање прилагодена HAL апликација со помош на STM32CubeWBA:

  1. Направете проект
    • За да креирате нов проект, започнете или од проектот Шаблон обезбеден за секоја табла под \Проекти\ \Шаблони или од кој било достапен проект под \Проекти\ \Испитни или \Проекти\ \ Апликации (каде се однесува на името на таблата, како што е STM32CubeWBA).
    • Проектот Шаблон обезбедува празна функција на главната јамка. Сепак, добра почетна точка е да се разберат поставките на проектот STM32CubeWBA. Шаблонот ги има следните карактеристики:
      • Содржи изворен код HAL, CMSIS и BSP двигатели, кои се минималниот сет на компоненти потребни за да се развие код на дадена табла.
      • Ги содржи вклучените патеки за сите компоненти на фирмверот.
      • Ги дефинира поддржаните уреди од серијата STM32WBA, дозволувајќи им на двигателите CMSIS и HAL да се конфигурираат правилно.
      • Обезбедува корисник подготвен за употреба fileе претходно конфигуриран како што е прикажано подолу:
        HAL иницијализирана со стандардната временска база со Arm® јадрото SysTick. SysTick ISR имплементиран за целта HAL_Delay().
        Забелешка: Кога копирате постоечки проект на друга локација, проверете дали се ажурирани сите вклучени патеки.
  2. Додајте го потребниот среден софтвер на корисничкиот проект (опционално)
    Да се ​​идентификува изворот fileда се додадат во проектот file листа, погледнете ја документацијата обезбедена за секој среден софтвер. Погледнете ги апликациите под \Projects\STM32xxx_yyyy\Applications\ (каде се однесува на стекот на среден софтвер, како што е ThreadX) за да се знае кој извор files и вклучуваат патеки мора да се додадат.
  3. Конфигурирајте ги компонентите на фирмверот
    Компонентите HAL и Middleware нудат збир на опции за конфигурација на време на изградба со користење макроа #define декларирани во заглавие file. Конфигурација на шаблон file е обезбедена во секоја компонента, која треба да се копира во проектната папка (обично конфигурацијата file е именуван xxx_conf_template.h, зборот _template треба да се отстрани кога се копира во проектната папка). Конфигурацијата file обезбедува доволно информации за да се разбере влијанието на секоја опција за конфигурација. Подетални информации се достапни во документацијата обезбедена за секоја компонента.
  4. Стартувајте ја библиотеката HAL
    По прескокнувањето на главната програма, кодот на апликацијата мора да повика HAL_Init() API за да ја иницијализира библиотеката 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.
    • Во корисничкиот главен.в file, иницијализирајте ја структурата на периферната рачка, а потоа повикајте ја функцијата HAL_PPP_Init() за да ја иницијализирате периферната опрема.
  7. Развијте апликација
    • На овој сtagд, системот е подготвен и може да започне развојот на кодот на корисничката апликација.
    • HAL обезбедува интуитивни и подготвени за употреба API за конфигурирање на периферниот уред. Поддржува гласање, прекини и програмски модел DMA, за да се приспособат на сите барања за апликација. За повеќе детали за тоа како да го користите секој периферен уред, погледнете го богатиот ексampСетот е обезбеден во пакетот STM32CubeWBA MCU.
      Внимание: Во стандардната имплементација на HAL, тајмерот SysTick се користи како временска база: тој генерира прекини во редовни временски интервали. Ако HAL_Delay() се повика од периферниот процес ISR, проверете дали прекинот SysTick има повисок приоритет (нумерички помал) од периферниот прекин. Во спротивно, процесот на ISR на повикувачот е блокиран. Функциите кои влијаат на конфигурациите на временската база се декларирани како __слаби за да се овозможи прескокнување во случај на други имплементации кај корисникот file (со користење на тајмер за општа намена, на прample, или друг временски извор). За повеќе детали, погледнете го пр. HAL_TimeBaseampле.

LL апликација
Овој дел ги опишува чекорите потребни за создавање приспособена LL апликација користејќи STM32CubeWBA.

  1. Направете проект
    • За да креирате нов проект, или започнете од проектот Templates_LL обезбеден за секоја табла под \Projects\ \Templates_LL, или од кој било достапен проект под \Projects\ \Прamples_LL ( се однесува на името на таблата, како што е NUCLEO-WBA32CG).
    • Шаблонскиот проект обезбедува празна функција за главна јамка, што е добра почетна точка за разбирање на поставките на проектот за STM32CubeWBA. Главните карактеристики на шаблонот се следните:
      • Ги содржи изворните кодови на двигателите LL и CMSIS, кои се минималниот сет на компоненти потребни за развивање код на дадена табла.
      • Ги содржи вклучените патеки за сите потребни компоненти на фирмверот.
      • Го избира поддржаниот уред од серијата STM32WBA и овозможува правилна конфигурација на двигателите CMSIS и LL.
      • Обезбедува корисник подготвен за употреба fileкои се претходно конфигурирани на следниов начин:
        ◦ main.h: LED и USER_BUTTON дефиниција на слој за апстракција.
        ◦ main.c: Конфигурација на системски часовник за максимална фреквенција.
  2. Префрли постоечки проект на друга табла
    За поддршка на постоечки проект на друга целна табла, почнете од проектот Templates_LL обезбеден за секоја табла и достапен под \Projects\ \Шаблони_LL.
    • Изберете LL example: Да се ​​најде таблата на која LL прamples се распоредени, погледнете ја листата на LL examples STM32CubeProjectsList.html.
  3. Префрлете го LL exampле:
    • Копирајте ја/залепете ја папката Templates_LL – за да го задржите почетниот извор – или директно ажурирајте го постоечкиот проект Temp lates_LL.
    • Потоа пренесувањето главно се состои во замена на Templates_LL files од страна на Examples_LL насочен проект.
    • Чувајте ги сите специфични делови на таблата. Заради јасност, одредени делови на таблата се означени со специфични tags:

      STMicroelectronics-STM32WBA-Series-Getting-Started-fig-7

    • Така, главните чекори за пренесување се следниве:
      • Заменете го stm32wbaxx_it.h file
      • Заменете го stm32wbaxx_it.c file
      • Заменете го главниот.ч file и ажурирајте го: чувајте ја дефиницијата на LED и корисничкото копче на шаблонот LL под СПЕЦИФИЧНА КОНФИГУРАЦИЈА НА ТАБЛАТА tags.
      • Заменете го главниот.в file и ажурирај го:
    • Чувајте ја конфигурацијата на часовникот на функцијата за шаблон SystemClock_Config() LL под BOARD SPECIFIC CONFIGURATION tags.
    • Во зависност од дефиницијата на LED, заменете ја секоја појава на LDx со друга LDy достапна во главната.h file.
    • Со овие модификации, ексample сега работи на целната табла

Безбедносни апликации
Овој пакет е испорачан со безбедносни апликации.

SBSFU апликации

  • SBSFU обезбедува решение Root of Trust, вклучувајќи ги функционалностите за безбедно подигање и безбедно ажурирање на фирмверот (врз основа на MCUboot).
  • Решението се користи пред да се изврши апликацијата.
  • Решението обезбедува ексampод безбедна услуга (префрлање GPIO), која е изолирана од небезбедната апликација. Небезбедната апликација при извршување сè уште може да го користи ова решение.

TFM апликации
TFM обезбедува решение Root of Trust вклучувајќи функционалности за безбедно подигање и безбедно ажурирање фирмвер
(врз основа на MCUboot). Решението се користи пред да се изврши апликацијата. Решението обезбедува TFM безбедни услуги кои се изолирани од небезбедната апликација. Небезбедната апликација при извршување сè уште може да го користи ова решение.

RF апликации
Апликацијата RF е опишана во оваа белешка за апликација: Изградба на безжични апликации со микроконтролери од серијата STM32WBA (AN5928).

Добивање ажурирања за изданието STM32CubeWBA
Најновите изданија на пакети STM32CubeWBA MCU и закрпи се достапни од серијата STM32WBA. Тие може да се преземат од копчето ПРОВЕРЛИ ЗА АЖУРИРАЊЕ во STM32CubeMX. За повеќе детали, погледнете во Дел 3 од упатството за употреба STM32CubeMX за конфигурација и иницијализација на STM32 генерирање на кодови C (UM1718).

Најчесто поставувани прашања

  • Кога треба да користам HAL наместо LL драјвери?
    • HAL драјверите нудат API-и на високо ниво и функционално ориентирани, со високо ниво на преносливост. Комплексноста на производот или периферната опрема е скриена за крајните корисници.
    • LL драјверите нудат API на ниво на регистер со низок слој, со подобра оптимизација, но помалку преносливи. Тие бараат длабинско познавање на спецификациите на производот или IP.
  • Може ли да ги користам драјверите за HAL и LL заедно? Ако можам, кои се ограничувањата?
    • Можно е да се користат и HAL и LL драјвери. Користете го HAL за фазата на иницијализација на IP и потоа управувајте со I/O операциите со LL драјвери.
    • Главната разлика помеѓу HAL и LL е тоа што HAL драјверите бараат да креираат и користат рачки за управување со операциите додека LL драјверите работат директно на периферните регистри. На Прamples_MIX прampле илустрира како да се мешаат HAL и LL.
  • Како се овозможени АПИ за иницијализација на LL?
    • Дефиницијата за иницијализација на LL API и придружните ресурси (Структури, буквали и прототипови) е условена од прекинувачот за компилација USE_FULL_LL_DRIVER.
    • За да можете да користите API за иницијализација на LL, додадете го овој прекинувач во препроцесорот на компајлерот на синџирот на алатки.
  • Како STM32CubeMX може да генерира код базиран на вграден софтвер?
    STM32CubeMX има вградено знаење за STM32 микроконтролери, вклучувајќи ги нивните периферни уреди и софтвер кој овозможува обезбедување графичка претстава за корисникот и генерирање *.h или *.c fileврз основа на конфигурацијата на корисникот.

ВАЖНО НАПОМЕНА – ПРОЧИТАЈТЕ ВНИМАТЕЛНО

  • 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 Почеток, Почеток, Почеток

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *