STMicroelectronics Séria STM32WBA Začíname
Informácie o produkte
špecifikácie:
- Názov produktu: Balík STM32CubeWBA MCU
- Výrobca: STMicroelectronics
- Kompatibilita: Mikrokontroléry série STM32WBA
- Licencovanie: Licencia BSD s otvoreným zdrojom
Návod na použitie produktu
Hlavné vlastnosti balíka STM32CubeWBA MCU:
Balík STM32CubeWBA MCU Package poskytuje všetky potrebné vstavané softvérové komponenty pre vývoj aplikácií na mikrokontroléroch série STM32WBA. Je vysoko prenosný v rámci série STM32 a dodáva sa s HAL a LL API, naprampsúbory a komponenty midlvéru.
Koniec architektúryview:
Architektúra balíka STM32CubeWBA MCU Package pozostáva z troch úrovní – Aplikácie, Knižnica a komponenty založené na protokoloch, Vrstva abstrakcie hardvéru, Ovládače BSP, Ovládače jadra a Rozhrania API nízkej vrstvy.
FAQ
- Čo je súčasťou balenia STM32CubeWBA MCU Package?
Balík obsahuje rozhrania API nízkej vrstvy (LL) a hardvérovej abstraktnej vrstvy (HAL), naprampsúbory, aplikácie, komponenty midlvéru ako FileX/LevelX, NetX Duo, mbed-crypto knižnice a ďalšie. - Je balík STM32CubeWBA MCU Package kompatibilný s generátorom kódu STM32CubeMX?
Áno, balík je plne kompatibilný s generátorom kódu STM32CubeMX na generovanie inicializačného kódu.
Úvod
- STM32Cube je originálna iniciatíva STMicroelectronics na výrazné zlepšenie produktivity dizajnérov znížením úsilia, času a nákladov na vývoj. STM32Cube pokrýva celé portfólio STM32.
STM32Cube obsahuje:- Sada užívateľsky prívetivých nástrojov na vývoj softvéru na pokrytie vývoja projektu od koncepcie až po realizáciu, medzi ktoré patria:
- STM32CubeMX, grafický softvérový konfiguračný nástroj, ktorý umožňuje automatické generovanie inicializačného kódu C pomocou grafických sprievodcov
- STM32CubeIDE, vývojový nástroj typu všetko v jednom s periférnou konfiguráciou, generovaním kódu, kompiláciou kódu a funkciami ladenia
- STM32CubeCLT, súprava vývojových nástrojov pre príkazový riadok typu všetko v jednom s kompiláciou kódu, programovaním dosiek a funkciami ladenia
- STM32CubeProgrammer (STM32CubeProg), programovací nástroj dostupný v grafickej verzii a verzii s príkazovým riadkom
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), výkonné monitorovacie nástroje na jemné ladenie správania a výkonu aplikácií STM32 v reálnom čase
- Balíky STM32Cube MCU a MPU, komplexné vstavané softvérové platformy špecifické pre každý rad mikrokontrolérov a mikroprocesorov (napríklad STM32CubeWBA pre sériu STM32WBA), ktoré zahŕňajú:
- STM32Cube hardvérová abstraktná vrstva (HAL), ktorá zaisťuje maximálnu prenosnosť v rámci portfólia STM32
- Nízkovrstvové API STM32Cube zaisťujúce najlepší výkon a nároky s vysokým stupňom užívateľskej kontroly nad hardvérom
- Konzistentná sada komponentov middlewaru, ako je ThreadX, FileX / LevelX, NetX Duo, USBX, dotyková knižnica, mbed-crypto, TFM, MCUboot, OpenBL a STM32_WPAN (vrátane Bluetooth® Low Energy profilea služby, Mesh, Zigbee®, OpenThread, Matter a vrstva MAC 802.15.4)
- Všetky vstavané softvérové nástroje s úplnými sadami periférnych a aplikačných napramples
- Rozširujúce balíky STM32Cube, ktoré obsahujú vstavané softvérové komponenty, ktoré dopĺňajú funkcie balíkov MCU a MPU STM32Cube o:
- Middlevérové rozšírenia a aplikačné vrstvy
- Exampbeží na niektorých špecifických vývojových doskách STMicroelectronics
- Sada užívateľsky prívetivých nástrojov na vývoj softvéru na pokrytie vývoja projektu od koncepcie až po realizáciu, medzi ktoré patria:
- Táto používateľská príručka popisuje, ako začať s balíkom MCU STM32CubeWBA.
- Časť 2 Hlavné funkcie STM32CubeWBA popisuje hlavné funkcie balíka STM32CubeWBA MCU Package.
- Časť 3 Architektúra STM32CubeWBA skončilaview poskytuje overview architektúry STM32CubeWBA a štruktúry MCU Package.
Všeobecné informácie
Balík MCU STM32CubeWBA beží na 32-bitových mikrokontroléroch STM32 založených na procesore Arm® Cortex®-M33 s Arm® TrustZone® a FPU.
Poznámka: Arm a TrustZone sú registrované ochranné známky spoločnosti Arm Limited (alebo jej dcérskych spoločností) v USA a/alebo inde.
Hlavné funkcie STM32CubeWBA
- Balík MCU STM32CubeWBA beží na 32-bitových mikrokontroléroch STM32 založených na procesore Arm® Cortex®-M33 s TrustZone® a FPU.
- STM32CubeWBA zhromažďuje v jednom balíku všetky generické vstavané softvérové komponenty potrebné na vývoj aplikácie pre mikrokontroléry série STM32WBA. V súlade s iniciatívou STM32Cube je táto sada komponentov vysoko prenosná, a to nielen v rámci mikrokontrolérov série STM32WBA, ale aj do iných sérií STM32.
- STM32CubeWBA je plne kompatibilný s generátorom kódu STM32CubeMX na generovanie inicializačného kódu. Balík obsahuje nízkovrstvové (LL) a hardvérové abstrakcie (HAL) API, ktoré pokrývajú hardvér mikrokontroléra, spolu s rozsiahlou sadou exampbežiace na doskách STMicroelectronics. Rozhrania API HAL a LL sú pre pohodlie používateľa dostupné v licencii BSD s otvoreným zdrojom.
- Balík STM32CubeWBA MCU Package tiež obsahuje komplexný middleware komponent postavený na middleware Microsoft® Azure® RTOS a ďalšie interné a open-source balíky s príslušnými examples.
- Dodávajú sa s bezplatnými, užívateľsky prívetivými licenčnými podmienkami:
- Integrovaný a plne vybavený Azure® RTOS: Azure® RTOS ThreadX
- Implementácia CMSIS-RTOS s Azure® RTOS ThreadX
- Hromady USB hostiteľov a zariadení s mnohými triedami: Azure® RTOS USBX
- Pokročilé file systémová a flash prekladová vrstva: FileX / ÚroveňX
- Sieťový zásobník priemyselnej úrovne: optimalizovaný pre výkon prichádzajúci s mnohými protokolmi IoT: NetX Duo
- OpenBootloader
- Integračné riešenie Arm® Trusted Firmware-M (TF-M).
- mbed-crypto knižnice
- Knižnica ST Netwok
- Riešenie knižnice dotykového snímania STMTouch
- Balík STM32CubeWBA MCU Package obsahuje aj niekoľko aplikácií a ukážok implementujúcich všetky tieto komponenty middlewaru.
- Rozloženie komponentov balíka MCU STM32CubeWBA je znázornené na obrázku 1. Komponenty balíka MCU STM32CubeWBA .
Architektúra STM32CubeWBA skončilaview
Riešenie balíka STM32CubeWBA MCU je postavené na troch nezávislých úrovniach, ktoré sa ľahko vzájomne ovplyvňujú, ako je popísané na obrázku 2. Architektúra balíka STM32CubeWBA MCU.
Úroveň 0
Táto úroveň je rozdelená na tri podvrstvy:
- Balík podpory dosky (BSP).
- Vrstva abstrakcie hardvéru (HAL):
- HAL periférne ovládače
- Nízkovrstvové ovládače
- Základné periférne použitie napramples.
Balík podpory dosky (BSP)
Táto vrstva ponúka sadu rozhraní API vo vzťahu k hardvérovým komponentom na hardvérových doskách (ako sú ovládače LCD, Audio,\ microSD™ a MEMS). Skladá sa z dvoch častí:
- Ovládač komponentu:
Tento ovládač súvisí s externým zariadením na doske a nie so zariadením STM32. Ovládač komponentu poskytuje špecifické API pre externé komponenty ovládača BSP a môže byť prenosný na akejkoľvek inej doske. - BSP ovládač:
Ovládač BSP umožňuje prepojenie ovládačov komponentov s konkrétnou doskou a poskytuje sadu užívateľsky prívetivých
API. Pravidlo pre pomenovanie API je BSP_FUNCT_Action().
Exampsúbor: BSP_LED_Init(), BSP_LED_On()
BSP je založený na modulárnej architektúre, ktorá umožňuje jednoduché prenesenie na akýkoľvek hardvér jednoduchou implementáciou nízkoúrovňových rutín.
Vrstva abstrakcie hardvéru (HAL) a nízka vrstva (LL)
STM32CubeWBA HAL a LL sa navzájom dopĺňajú a pokrývajú širokú škálu aplikačných požiadaviek:
- Ovládače HAL ponúkajú funkčne orientované vysoko prenosné API na vysokej úrovni. Koncovému používateľovi skryjú zložitosť MCU a periférnych zariadení.
Ovládače HAL poskytujú generické viacinštancie funkčne orientované API, ktoré zjednodušujú implementáciu používateľských aplikácií poskytovaním procesov pripravených na použitie. Naprample pre komunikačné periférie (I2S, UART a iné) poskytuje API umožňujúce inicializáciu a konfiguráciu periférie, riadenie prenosu dát na základe dopytovania, prerušenia alebo procesu DMA a riešenie komunikačných chýb, ktoré môžu nastať počas komunikácie. Rozhrania API ovládača HAL sú rozdelené do dvoch kategórií:- Generické API, ktoré poskytujú spoločné a všeobecné funkcie všetkým mikrokontrolérom série STM32.
- Rozhrania API rozšírenia, ktoré poskytujú špecifické a prispôsobené funkcie pre konkrétnu rodinu alebo konkrétne číslo dielu.
- Nízkovrstvové API poskytujú nízkoúrovňové API na úrovni registrov s lepšou optimalizáciou, ale menšou prenosnosťou.
- Vyžadujú hlboké znalosti o špecifikáciách MCU a periférnych zariadení.
- Ovládače LL sú navrhnuté tak, aby ponúkali rýchlu ľahkú expertne orientovanú vrstvu, ktorá je bližšie k hardvéru ako HAL. Na rozdiel od HAL, LL API nie sú poskytované pre periférne zariadenia, kde optimalizovaný prístup nie je kľúčovou funkciou, alebo pre tie, ktoré vyžadujú náročnú konfiguráciu softvéru alebo komplexný zásobník vyššej úrovne.
- Vlastnosti ovládačov LL:
- Sada funkcií na inicializáciu hlavných funkcií periférnych zariadení podľa parametrov špecifikovaných v dátových štruktúrach.
- Sada funkcií na vyplnenie inicializačných dátových štruktúr resetovanými hodnotami zodpovedajúcimi každému poľu.
- Funkcia pre deinicializáciu periférií (obnovenie periférnych registrov na ich predvolené hodnoty).
- Sada inline funkcií pre priamy a atómový prístup k registrom.
- Úplná nezávislosť od HAL a možnosť použitia v samostatnom režime (bez ovládačov HAL).
- Úplné pokrytie podporovaných periférnych funkcií.
Základné periférne použitie napramples
Táto vrstva uzatvára exampsúbory postavené na periférnych zariadeniach STM32 s použitím iba prostriedkov HAL a BSP.
Úroveň 1
Táto úroveň je rozdelená na dve podvrstvy:
- Komponenty middlewaru
- Exampsúbory založené na komponentoch midlvéru
Komponenty middlewaru
- Middleware je sada knižníc pokrývajúcich Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot a mbed-crypto.
- Horizontálna interakcia medzi komponentmi tejto vrstvy sa vykonáva volaním odporúčaných rozhraní API.
- Vertikálna interakcia s ovládačmi nízkej vrstvy sa uskutočňuje prostredníctvom špecifických spätných volaní a statických makier implementovaných v rozhraní volania systému knižnice.
- Hlavné vlastnosti každého komponentu middlewaru sú nasledovné:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Operačný systém v reálnom čase (RTOS) navrhnutý pre vstavané systémy s dvoma funkčnými režimami.
- Bežný režim: Bežné funkcie RTOS, ako je správa a synchronizácia vlákien, správa pamäťovej oblasti, zasielanie správ a spracovanie udalostí.
- Modulový režim: Pokročilý používateľský režim, ktorý umožňuje načítanie a odoberanie vopred prepojených modulov ThreadX za behu prostredníctvom správcu modulov.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Operačný systém v reálnom čase (RTOS) navrhnutý pre vstavané systémy s dvoma funkčnými režimami.
- Bluetooth® Low Energy (BLE): Implementuje protokol Bluetooth® Low Energy pre vrstvy Link a Stack.
- MCUboot (softvér s otvoreným zdrojom)
- Protokoly Zigbee® pre zásobník a súvisiace klastre.
- Zásobník protokolov Thread® a spojovacia vrstva.
- Dôveryhodný firmvér Arm®-M, TF-M (softvér s otvoreným zdrojom): Referenčná implementácia bezpečnostnej architektúry platformy Arm® (PSA) pre TrustZone® s pridruženými zabezpečenými službami.
- mbed-crypto (softvér s otvoreným zdrojom): Middleware mbed-crypto poskytuje implementáciu API kryptografie PSA.
- Knižnica snímania dotyku STM32: Robustné riešenie kapacitného snímania dotyku STMTouch, podporujúce senzor priblíženia, dotykové tlačidlo, lineárne a rotačné dotykové senzory. Je založený na osvedčenom princípe získavania povrchového prenosu náboja.
- Microsoft® Azure® RTOS
Exampsúbory založené na komponentoch midlvéru
Každý komponent middleware sa dodáva s jedným alebo viacerými exampsúbory (nazývané aj aplikácie), ktoré ukazujú, ako ich používať. Integrácia naprampK dispozícii sú aj súbory, ktoré používajú niekoľko komponentov middlewaru.
Skončil sa balík firmvéru STM32CubeWBAview
Podporované zariadenia a hardvér série STM32WBA
- STM32Cube ponúka vysoko prenosnú hardvérovú abstraktnú vrstvu (HAL) postavenú na generickej architektúre. Umožňuje princíp postavenia na vrstvách, ako je použitie vrstvy middleware na implementáciu ich funkcií bez toho, aby sme do hĺbky vedeli, aký MCU sa používa. To zlepšuje opätovnú použiteľnosť kódu knižnice a zabezpečuje jednoduchú prenosnosť na iné zariadenia.
- Navyše vďaka vrstvenej architektúre ponúka STM32CubeWBA plnú podporu všetkých sérií STM32WBA.
- Užívateľ musí iba definovať správne makro v stm32wbaxx.h.
- Tabuľka 1 zobrazuje makro na definovanie v závislosti od použitého zariadenia série STM32WBA. Toto makro musí byť tiež definované v preprocesore kompilátora.
Tabuľka 1. Makrá pre sériu STM32WBAMakro definované v stm32wbaxx.h Zariadenia série STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA obsahuje bohatú sadu exampsúborov a aplikácií na všetkých úrovniach, čo uľahčuje pochopenie a používanie akéhokoľvek ovládača HAL alebo komponentov middlewaru. Tieto exampsúbory bežia na doskách STMicroelectronics uvedených v tabuľke 2.
Tabuľka 2. Dosky pre sériu STM32WBArady Doska STM32WBA podporované zariadenia NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - Balík STM32CubeWBA MCU môže bežať na akomkoľvek kompatibilnom hardvéri. Používateľ jednoducho aktualizuje ovládače BSP na port poskytnutých exampna doske, ak má tá istá hardvérová funkcia (napríklad LED, LCD displej a tlačidlá).
Skončil sa balík firmvéruview
- Riešenie balíka STM32CubeWBA sa dodáva v jednom balíku zip so štruktúrou znázornenou na obrázku 3. Štruktúra balíka firmvéru STM32CubeWBA.
- Pre každú dosku je sada examples je vybavený predkonfigurovanými projektmi pre nástrojové reťazce EWARM, MDK-ARM a STM32CubeIDE.
- Obrázok 4. STM32CubeWBA exampkoniecview zobrazuje štruktúru projektu pre dosky NUCLEO‑WBA52CG, NUCLEO-WBA55CG a STM32WBA55G-DK1.
- Bývalýampsúbory sú klasifikované v závislosti od úrovne STM32Cube, na ktorú sa vzťahujú, a sú pomenované takto:
- Úroveň 0 napramplesy sa nazývajú Pramples, napramples_LL a Pramples_MIX. Používajú HAL ovládače, LL ovládače a kombináciu ovládačov HAL a LL bez akéhokoľvek middlewarového komponentu.
- Úroveň 1 naprampsúbory sa nazývajú aplikácie. Poskytujú typické prípady použitia každého komponentu middlewaru. Akákoľvek aplikácia firmvéru pre danú dosku môže byť rýchlo zostavená vďaka projektom šablón dostupným v adresároch Templ ates a Templates_LL.
Projekty s podporou TrustZone®
- Podpora TrustZone® Naprampnázvy súborov obsahujú predponu _TrustZone. Pravidlo platí aj pre Aplikácie (okrem TFM a SBSFU, ktoré sú natívne pre TrustZone®).
- S podporou TrustZone® napramplesy a aplikácie sú vybavené štruktúrou viacerých projektov zloženou zo zabezpečených a nezabezpečených podprojektov, ako je znázornené na obrázku 5. Štruktúra zabezpečeného a nezabezpečeného projektu s viacerými projektmi.
- Projekty s podporou TrustZone® sa vyvíjajú podľa šablóny zariadenia CMSIS-5, ktorá je rozšírená o hlavičku rozdelenia systému file oddiel_ .h, ktorý je zodpovedný hlavne za nastavenie jednotky bezpečných atribútov (SAU), FPU a priradenia bezpečných/nezabezpečených prerušení v stave bezpečného vykonania.
- Toto nastavenie sa vykonáva v bezpečnej funkcii CMSIS SystemInit(), ktorá sa volá pri spustení pred vstupom do funkcie main() zabezpečenej aplikácie. Pozrite si dokumentáciu k softvéru Arm® TrustZone®-M.
- Balík firmvéru balíka STM32CubeWBA poskytuje predvolené rozdelenie pamäte na oddiely _ .h files dostupné pod: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- V týchto oddieloch files, SAU je predvolene vypnutá. V dôsledku toho sa na priradenie zabezpečenia používa mapovanie pamäte IDAU. Pozrite si obrázok Bezpečné/nezabezpečené rozdelenie pomocou technológie TrustZone® v referenčnej príručke RM0495.
- Ak užívateľ povolí SAU, v oddiele je preddefinovaná predvolená konfigurácia oblastí SAU files takto:
- Oblasť SAU 0: 0x08080000 – 0x081FFFFF (nezabezpečená zabezpečená polovica pamäte flash (512 kB))
- Oblasť SAU 1: 0x0BF88000 – 0x0BF97FFF (nezabezpečená systémová pamäť)
- Oblasť SAU 2: 0x0C07E000 – 0x0C07FFFF (zabezpečené, nezabezpečené volateľné)
- Oblasť SAU 3: 0x20010000 – 0x2001FFFF (nezabezpečená SRAM2 (64 kB))
- Oblasť SAU 4: 0x40000000 – 0x4FFFFFFF (nezabezpečená periférna mapovaná pamäť)
- Aby sa zosúladilo predvolené rozdelenie, zariadenia série STM32WBAxx musia mať nastavené nasledujúce bajty užívateľskej voľby:
- TZEN = 1 (zariadenie s podporou TrustZone®)
- SECWM1_PSRTT = 0x0 SECWM1_PEND = 0x3F (64 zo 128 stránok internej flash pamäte je nastavených ako zabezpečených) Poznámka: Interná flash pamäť je štandardne plne zabezpečená v TZEN = 1. Byty užívateľskej voľby SECWM1_PSRTT/ SECWM1_PEND musia byť nastavené podľa aplikácie konfigurácia pamäte (regióny SAU, ak je povolená SAU). Linker projektu bezpečných/nezabezpečených aplikácií files musí byť tiež zarovnané.
- všetko exampmajú rovnakú štruktúru:
- \Inc priečinok obsahujúci všetky hlavičky files.
- Priečinok Src obsahujúci zdrojový kód.
- Priečinky \EWARM, \MDK-ARM a \STM32CubeIDE obsahujúce predkonfigurovaný projekt pre každý reťazec nástrojov.
- readme.md a readme.html popisujúce exampsprávanie a potrebné prostredie, aby to fungovalo.
- ioc file ktorý umožňuje používateľom otvoriť väčšinu firmvéru naprampsúborov v rámci STM32CubeMX.
Začíname s STM32CubeWBA
Spustenie prvého HAL example
Táto časť vysvetľuje, aké jednoduché je spustiť prvý example v rámci STM32CubeWBA. Ako ilustráciu používa vygenerovanie jednoduchého prepínača LED bežiaceho na doske NUCLEO-WBA52CG:
- Stiahnite si balík STM32CubeWBA MCU.
- Rozbaľte ho do adresára podľa vášho výberu.
- Uistite sa, že ste neupravovali štruktúru balíka znázornenú na obrázku 1. Odporúča sa tiež skopírovať balík na miesto blízko koreňového zväzku (čo znamená C:\ST alebo G:\Tests), pretože niektoré IDE majú problémy, keď cestu dĺžka je príliš dlhá.
Spustenie prvého spustenia TrustZone® naprample
- Pred načítaním a spustením TrustZone® povolenej naprample, je povinné čítať example readme file pre akúkoľvek špecifickú konfiguráciu, ktorá zaisťuje, že zabezpečenie je povolené, ako je popísané v časti 4.2.1 Projekty s podporou TrustZone® (TZEN=1 (bajt používateľskej možnosti)).
- Prejdite na \Projects\NUCLEO-WBA52CG\Examples.
- Otvorte priečinky \GPIO a potom \GPIO_IOToggle_TrustZone.
- Otvorte projekt pomocou preferovaného súboru nástrojov. Rýchly koniecview o tom, ako otvoriť, vybudovať a spustiť example s podporovanými nástrojmi je uvedený nižšie.
- Postupne prestavte všetky zabezpečené a nezabezpečené projekty files a načítajte zabezpečené a nezabezpečené obrázky do cieľovej pamäte.
- Spustite example: zabezpečená aplikácia pravidelne prepína LD2 každú sekundu a nezabezpečená aplikácia prepína LD3 dvakrát rýchlejšie. Ďalšie podrobnosti nájdete v readme file z example.
- Ak chcete otvoriť, vytvoriť a spustiť exampAk používate podporované reťazce nástrojov, postupujte podľa nasledujúcich krokov:
- EWARM:
- Pod example, otvorte podpriečinok \EWARM.
- Spustite pracovný priestor Project.eww
- Obnovte zabezpečený projekt xxxxx_S files: [Projekt]>[Prebudovať všetko].
- Nastavte nezabezpečený projekt xxxxx_NS ako aktívnu aplikáciu (kliknite pravým tlačidlom myši na projekt xxxxx_NS [Nastaviť ako aktívny])
- Obnovte nezabezpečený projekt xxxxx_NS files: [Projekt]>[Prebudovať všetko].
- Flash nezabezpečený binárny súbor pomocou [Projekt]>[Stiahnuť]>[Stiahnuť aktívnu aplikáciu] .
- Nastavte aplikáciu xxxxx_S ako aktívnu (kliknite pravým tlačidlom myši na projekt xxxxx_S [Set as Active].
- Flash zabezpečený binárny súbor pomocou [Stiahnuť a ladiť] (Ctrl+D).
- Spustite program: [Debug]>[Go(F5)]
- MDK-ARM:
- Otvorte reťazec nástrojov \MDK-ARM.
- Otvorte pracovný priestor Multiprojects file Project.uvmpw.
- Vyberte projekt xxxxx_s ako aktívnu aplikáciu ([Set as Active Project]).
- Zostavte projekt xxxxx_s.
- Vyberte projekt xxxxx_ns ako aktívny projekt ([Set as Active Project]).
- Zostavte projekt xxxxx_ns.
- Načítajte nezabezpečený binárny súbor ([F8]). Toto stiahne \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf do pamäte flash)
- Vyberte projekt Project_s ako aktívny projekt ([Set as Active Project]).
- Načítajte zabezpečený binárny súbor ([F8]). Týmto sa stiahne \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf do pamäte flash).
- Spustite example.
- STM32CubeIDE:
- Otvorte reťazec nástrojov STM32CubeIDE.
- Otvorte pracovný priestor Multiprojects file .projekt.
- Obnovte projekt xxxxx_Secure.
- Obnovte projekt xxxxx_NonSecure.
- Spustite aplikáciu [Debug as STM32 Cortex-M C/C++] pre zabezpečený projekt.
- V okne [Upraviť konfiguráciu] vyberte panel [Spustenie] a pridajte obrázok a symboly nezabezpečeného projektu.
Dôležité: Nezabezpečený projekt sa musí načítať pred zabezpečeným projektom. - Kliknite na [OK].
- Spustite example o perspektíve ladenia.
- EWARM:
Spustenie prvého vypnutého TrustZone® naprample
- Pred načítaním a spustením vypnutej TrustZone® naprample, je povinné čítať example readme file pre akúkoľvek špecifickú konfiguráciu. Ak neexistujú žiadne konkrétne zmienky, uistite sa, že zariadenie dosky má vypnuté zabezpečenie (TZEN=0 (bajt používateľskej voľby)). Pozrite si časté otázky o vykonaní voliteľnej regresie na TZEN = 0
- Prejdite na \Projects\NUCLEO-WBA52CG\Examples.
- Otvorte priečinky \GPIO a potom \GPIO_EXTI.
- Otvorte projekt pomocou preferovaného súboru nástrojov. Rýchly koniecview o tom, ako otvoriť, vybudovať a spustiť example s podporovanými nástrojmi je uvedený nižšie.
- Obnoviť všetky files a nahrajte svoj obrázok do cieľovej pamäte.
- Spustite example: Pri každom stlačení tlačidla [USER] sa LED dióda LD1 prepne. Ďalšie podrobnosti nájdete v readme file z example.
- Ak chcete otvoriť, vytvoriť a spustiť exampAk používate podporované reťazce nástrojov, postupujte podľa nasledujúcich krokov:
- EWARM:
- Pod example, otvorte podpriečinok \EWARM.
- Spustite pracovný priestor Project.eww (názov pracovného priestoru sa môže zmeniť z jedného naprample inému).
- Obnoviť všetky files: [Projekt]>[Prebudovať všetko].
- Načítajte obraz projektu: [Project]>[Debug].
- Spustite program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod example, otvorte podpriečinok \MDK-ARM.
- Spustite pracovný priestor Project.uvproj (názov pracovného priestoru sa môže zmeniť z jedného naprample inému).
- Obnoviť všetky files:[Projekt]>[Znovu zostaviť všetky ciele files].
- Načítajte obraz projektu: [Debug]>[Start/Stop Debug Session].
- Spustite program: [Debug]>[Spustiť (F5)].
- STM32CubeIDE:
- Otvorte reťazec nástrojov STM32CubeIDE.
- Kliknite na [File]>[Prepnúť pracovný priestor]>[Iné] a prejdite do adresára pracovného priestoru STM32CubeIDE.
- Kliknite na [File]>[Importovať], vyberte [Všeobecné]>[Existujúce projekty do pracovného priestoru] a potom kliknite na [Ďalej].
- Prejdite do adresára pracovného priestoru STM32CubeIDE a vyberte projekt.
- Obnoviť celý projekt files: Vyberte projekt v okne [Project Explorer] a potom kliknite na ponuku [Project]>[Build project].
- Spustite program: [Spustiť]>[Ladenie (F11)]
- EWARM:
Vývoj vlastnej aplikácie
Poznámka: Softvér musí povoliť vyrovnávaciu pamäť inštrukcií (ICACHE), aby získala spustenie čakacieho stavu 0 z pamäte flash a dosiahla maximálny výkon a lepšiu spotrebu energie.
Použitie STM32CubeMX na vývoj alebo aktualizáciu aplikácie
- V balíku STM32CubeWBA MCU sú takmer všetky projekty naprampsúbory sa generujú pomocou nástroja STM32CubeMX na inicializáciu systému, periférií a midlvéru.
- Priame využitie existujúceho projektu naprample z nástroja STM32CubeMX vyžaduje STM32CubeMX 6.10.0 alebo vyšší:
- Po inštalácii STM32CubeMX otvorte av prípade potreby aktualizujte navrhovaný projekt. Najjednoduchší spôsob, ako otvoriť existujúci projekt, je dvakrát kliknúť na súbor *.ioc file takže STM32CubeMX automaticky otvorí projekt a jeho zdroj files.
- STM32CubeMX generuje inicializačný zdrojový kód takýchto projektov. Hlavný zdrojový kód aplikácie je obsiahnutý v komentároch „USER CODE BEGIN“ a „USER CODE END“. V prípade, že sa zmení výber a nastavenie IP, STM32CubeMX aktualizuje inicializačnú časť kódu, ale zachová hlavný zdrojový kód aplikácie.
- Ak chcete vytvoriť vlastný projekt v STM32CubeMX, postupujte krok za krokom:
- Vyberte mikrokontrolér STM32, ktorý zodpovedá požadovanej sade periférnych zariadení.
- Nakonfigurujte všetok požadovaný vstavaný softvér pomocou riešenia konfliktov pinoutov, pomocníka na nastavenie hodinového stromu, kalkulačky spotreby energie a pomôcky na konfiguráciu periférnych zariadení MCU (napríklad GPIO alebo USART) a zásobníkov middlewaru (napríklad USB).
- Vygenerujte inicializačný kód C na základe zvolenej konfigurácie. Tento kód je pripravený na použitie v niekoľkých vývojových prostrediach. Používateľský kód sa uchová pri ďalšom generovaní kódu.
- Ďalšie informácie o STM32CubeMX nájdete v používateľskej príručke STM32CubeMX pre konfiguráciu a inicializáciu STM32 generovania kódu C (UM1718).
- Pre zoznam dostupných projektov naprampsúbory pre STM32CubeWBA, pozrite si aplikačnú poznámku Firmvér STM32Cube examples pre sériu STM32WBA (AN5929).
Aplikácie ovládačov
Aplikácia HAL
Táto časť popisuje kroky potrebné na vytvorenie vlastnej aplikácie HAL pomocou STM32CubeWBA:
- Vytvorte projekt
- Ak chcete vytvoriť nový projekt, začnite buď z projektu šablóny poskytnutého pre každú nástenku pod \Projects\ \Šablóny alebo z akéhokoľvek dostupného projektu v časti \Projekty\ \Príklady alebo \Projekty\ \Aplikácie (kde odkazuje na názov dosky, ako napríklad STM32CubeWBA).
- Projekt Template poskytuje prázdnu funkciu hlavnej slučky. Je to však dobrý východiskový bod na pochopenie nastavení projektu STM32CubeWBA. Šablóna má nasledujúce vlastnosti:
- Obsahuje zdrojový kód HAL, ovládače CMSIS a BSP, čo je minimálna sada komponentov potrebných na vývoj kódu na danej doske.
- Obsahuje zahrnuté cesty pre všetky komponenty firmvéru.
- Definuje podporované zariadenia série STM32WBA, čo umožňuje správnu konfiguráciu ovládačov CMSIS a HAL.
- Poskytuje používateľovi pripraveného na použitie fileje vopred nakonfigurovaný, ako je znázornené nižšie:
HAL inicializovaný s predvolenou časovou základňou s jadrom Arm® SysTick. SysTick ISR implementovaný na účely HAL_Delay().
Poznámka: Pri kopírovaní existujúceho projektu na iné miesto sa uistite, že sú aktualizované všetky zahrnuté cesty.
- Pridajte potrebný middleware do používateľského projektu (voliteľné)
Na identifikáciu zdroja files, ktoré sa majú pridať do projektu file zoznam, pozrite si dokumentáciu poskytnutú pre každý middleware. Pozrite si aplikácie v časti \Projects\STM32xxx_yyy\Applications\ (kde odkazuje na zásobník middlewaru, ako je ThreadX), aby vedel, ktorý zdroj filemusia byť pridané cesty s a zahŕňajúce. - Nakonfigurujte komponenty firmvéru
Komponenty HAL a middleware ponúkajú sadu možností konfigurácie počas zostavovania pomocou makier #define deklarovaných v hlavičke file. Konfigurácia šablóny file je k dispozícii v rámci každého komponentu, ktorý je potrebné skopírovať do priečinka projektu (zvyčajne konfigurácia file má názov xxx_conf_template.h, pri kopírovaní do priečinka projektu je potrebné odstrániť slovo _template). Konfigurácia file poskytuje dostatok informácií na pochopenie vplyvu každej možnosti konfigurácie. Podrobnejšie informácie sú k dispozícii v dokumentácii poskytnutej pre každý komponent. - Spustite knižnicu HAL
Po skoku do hlavného programu musí kód aplikácie zavolať HAL_Init() API na inicializáciu knižnice HAL, ktorá vykonáva nasledujúce úlohy:- Konfigurácia prefetch pamäte flash a priority prerušenia SysTick (prostredníctvom makier definovaných v st m32wbaxx_hal_conf.h).
- Konfigurácia SysTick na generovanie prerušenia každú milisekundu s prioritou prerušenia SysTick TICK_INT_PRIO definovanou v stm32wbaxx_hal_conf.h.
- Nastavenie priority skupiny NVIC na 0.
- Volanie funkcie spätného volania HAL_MspInit() definovanej v používateľovi stm32wbaxx_hal_msp.c file vykonávať globálne nízkoúrovňové hardvérové inicializácie.
- Nakonfigurujte systémové hodiny
Konfigurácia systémových hodín sa vykonáva volaním dvoch rozhraní API popísaných nižšie:- HAL_RCC_OscConfig(): toto API konfiguruje interné a externé oscilátory. Používateľ sa rozhodne nakonfigurovať jeden alebo všetky oscilátory.
- HAL_RCC_ClockConfig(): toto API konfiguruje zdroj systémových hodín, latenciu pamäte flash a preddeličky AHB a APB.
- Inicializujte periférne zariadenie
- Najprv napíšte periférnu funkciu HAL_PPP_MspInit. Postupujte nasledovne:
- Zapnite periférne hodiny.
- Nakonfigurujte periférne GPIO.
- Nakonfigurujte kanál DMA a povoľte prerušenie DMA (ak je to potrebné).
- Povoliť periférne prerušenie (ak je to potrebné).
- Ak je to potrebné, upravte súbor stm32xxx_it.c tak, aby volal požadované obslužné programy prerušenia (periférne a DMA).
- Zapíšte proces úplného spätného volania, ak sa plánuje použitie periférneho prerušenia alebo DMA.
- V užívateľskom main.c file, inicializujte štruktúru rukoväte periférneho zariadenia a potom zavolajte funkciu HAL_PPP_Init() na inicializáciu periférneho zariadenia.
- Najprv napíšte periférnu funkciu HAL_PPP_MspInit. Postupujte nasledovne:
- Vyvinúť aplikáciu
- Pri tejto stage, systém je pripravený a vývoj kódu používateľskej aplikácie môže začať.
- HAL poskytuje intuitívne a na použitie pripravené API na konfiguráciu periférneho zariadenia. Podporuje dopytovanie, prerušenia a programovací model DMA, aby vyhovoval akýmkoľvek požiadavkám aplikácie. Ďalšie podrobnosti o tom, ako používať jednotlivé periférne zariadenia, nájdete v bohatom exampSada je súčasťou balenia STM32CubeWBA MCU.
Pozor: V predvolenej implementácii HAL sa ako časová základňa používa časovač SysTick: generuje prerušenia v pravidelných časových intervaloch. Ak sa HAL_Delay() volá z periférneho procesu ISR, uistite sa, že prerušenie SysTick má vyššiu prioritu (číselne nižšiu) ako periférne prerušenie. V opačnom prípade je proces ISR volajúceho zablokovaný. Funkcie ovplyvňujúce konfigurácie časovej základne sú deklarované ako __weak, aby bolo možné ich prepísanie v prípade iných implementácií v používateľovi file (pomocou univerzálneho časovača, naprample alebo iný zdroj času). Ďalšie podrobnosti nájdete v dokumente HAL_TimeBase example.
Aplikácia LL
Táto časť popisuje kroky potrebné na vytvorenie vlastnej aplikácie LL pomocou STM32CubeWBA.
- Vytvorte projekt
- Ak chcete vytvoriť nový projekt, začnite buď z projektu Templates_LL, ktorý je k dispozícii pre každú nástenku pod \Projects\ \Templates_LL alebo z akéhokoľvek dostupného projektu pod \Projects\ \Napramples_LL ( odkazuje na názov dosky, ako napríklad NUCLEO-WBA32CG).
- Projekt šablóny poskytuje prázdnu funkciu hlavnej slučky, ktorá je dobrým východiskovým bodom na pochopenie nastavení projektu pre STM32CubeWBA. Hlavné charakteristiky šablóny sú nasledujúce:
- Obsahuje zdrojové kódy ovládačov LL a CMSIS, čo je minimálna sada komponentov potrebných na vývoj kódu na danej doske.
- Obsahuje zahrnuté cesty pre všetky požadované komponenty firmvéru.
- Vyberie podporované zariadenie série STM32WBA a umožní správnu konfiguráciu ovládačov CMSIS a LL.
- Poskytuje používateľovi pripraveného na použitie files, ktoré sú vopred nakonfigurované takto:
◦ main.h: definičná abstrakcia LED a USER_BUTTON.
◦ main.c: Konfigurácia systémových hodín pre maximálnu frekvenciu.
- Port existujúceho projektu na inú dosku
Ak chcete podporiť existujúci projekt na inej cieľovej nástenke, začnite od projektu Templates_LL poskytnutého pre každú nástenku a dostupného pod \Projects\ \Templates_LL.- Vyberte LL example: Nájsť dosku, na ktorej LL exampsúbory sú nasadené, pozrite si zoznam LL exampsúbor STM32CubeProjectsList.html.
- Port LL example:
- Skopírujte/prilepte priečinok Templates_LL – aby ste zachovali pôvodný zdroj – alebo priamo aktualizujte existujúci projekt Temp lates_LL.
- Potom portovanie spočíva hlavne v nahradení Templates_LL files od Examples_LL cielený projekt.
- Ponechajte si všetky časti špecifické pre dosku. Z dôvodu prehľadnosti sú časti špecifické pre dosku označené špecifickým tags:
- Hlavné kroky prenosu sú teda nasledovné:
- Nahraďte súbor stm32wbaxx_it.h file
- Nahraďte súbor stm32wbaxx_it.c file
- Vymeňte hlavný.h file a aktualizujte ju: Ponechajte definíciu LED a používateľského tlačidla šablóny LL pod KONFIGURÁCIOU ŠPECIFICKEJ DOSKY tags.
- Vymeňte hlavný.c file a aktualizujte ho:
- Ponechajte konfiguráciu hodín funkcie šablóny SystemClock_Config() LL v časti KONFIGURÁCIA ŠPECIFICKÁ PRE DOSKU tags.
- V závislosti od definície LED nahraďte každý výskyt LDx iným LDy dostupným v hlavnom.h file.
- S týmito úpravami sa example teraz beží na cieľovej hracej ploche
Bezpečnostné aplikácie
Tento balík sa dodáva s bezpečnostnými aplikáciami.
aplikácie SBSFU
- SBSFU poskytuje riešenie Root of Trust vrátane funkcií Secure Boot a Secure Firmware Update (založené na MCUboot).
- Riešenie sa používa pred spustením aplikácie.
- Riešenie poskytuje exampsúbor zabezpečenej služby (prepínač GPIO), ktorý je izolovaný od nezabezpečenej aplikácie. Nezabezpečená aplikácia za behu môže toto riešenie stále používať.
aplikácie TFM
TFM poskytuje riešenie Root of Trust vrátane funkcií Secure Boot a Secure Firmware Update
(založené na MCUboot). Riešenie sa používa pred spustením aplikácie. Riešenie poskytuje zabezpečené služby TFM, ktoré sú izolované od nezabezpečenej aplikácie. Nezabezpečená aplikácia za behu môže toto riešenie stále používať.
RF aplikácie
RF aplikácia je popísaná v tejto aplikačnej poznámke: Vytváranie bezdrôtových aplikácií s mikrokontrolérmi série STM32WBA (AN5928).
Získavanie aktualizácií vydania STM32CubeWBA
Najnovšie vydania a opravy MCU STM32CubeWBA sú dostupné zo série STM32WBA. Možno ich získať pomocou tlačidla CHECK FOR UPDATE v STM32CubeMX. Ďalšie podrobnosti nájdete v časti 3 používateľskej príručky STM32CubeMX pre konfiguráciu STM32 a generovanie kódu C inicializácie (UM1718).
FAQ
- Kedy by som mal použiť HAL namiesto ovládačov LL?
- Ovládače HAL ponúkajú API na vysokej úrovni a orientované na funkcie s vysokou úrovňou prenosnosti. Produktová alebo periférna zložitosť je pre koncových používateľov skrytá.
- Ovládače LL ponúkajú rozhrania API na úrovni registrov s lepšou optimalizáciou, ale menej prenosné. Vyžadujú si dôkladnú znalosť špecifikácií produktu alebo IP.
- Môžem používať ovládače HAL a LL spolu? Ak môžem, aké sú obmedzenia?
- Je možné použiť ovládače HAL aj LL. Použite HAL na fázu inicializácie IP a potom spravujte I/O operácie pomocou ovládačov LL.
- Hlavný rozdiel medzi HAL a LL je v tom, že ovládače HAL vyžadujú vytvorenie a používanie rukovätí na riadenie prevádzky, zatiaľ čo ovládače LL pracujú priamo na periférnych registroch. Examples_MIX naprample ilustruje, ako miešať HAL a LL.
- Ako sú povolené inicializačné API LL?
- Definícia inicializačných API LL a pridružených prostriedkov (štruktúry, literály a prototypy) je podmienená prepínačom kompilácie USE_FULL_LL_DRIVER.
- Aby ste mohli používať inicializačné API LL, pridajte tento prepínač do preprocesora kompilátora toolchain.
- Ako môže STM32CubeMX generovať kód na základe vstavaného softvéru?
STM32CubeMX má vstavané znalosti mikrokontrolérov STM32, vrátane ich periférnych zariadení a softvéru, ktorý umožňuje poskytnúť používateľovi grafické znázornenie a vygenerovať *.h alebo *.c files na základe konfigurácie používateľa.
DÔLEŽITÉ UPOZORNENIE – POZORNE ČÍTAJTE
- STMicroelectronics NV a jej dcérske spoločnosti (“ST”) si vyhradzujú právo vykonávať zmeny, opravy, vylepšenia, úpravy a vylepšenia produktov ST a/alebo tohto dokumentu kedykoľvek bez upozornenia. Kupujúci by mali pred zadaním objednávky získať najnovšie relevantné informácie o produktoch ST. Produkty ST sa predávajú v súlade s obchodnými podmienkami ST platnými v čase potvrdenia objednávky.
- Kupujúci sú výhradne zodpovední za výber, výber a používanie produktov ST a ST nepreberá žiadnu zodpovednosť za pomoc pri aplikácii alebo dizajn produktov kupujúcich.
- Spoločnosť ST tu neudeľuje žiadnu licenciu, výslovnú ani implicitnú, na akékoľvek právo duševného vlastníctva.
- Opätovný predaj produktov ST s ustanoveniami odlišnými od informácií uvedených v tomto dokumente ruší akúkoľvek záruku poskytnutú spoločnosťou ST na takýto produkt.
- ST a logo ST sú ochranné známky spoločnosti ST. Ďalšie informácie o ochranných známkach ST nájdete na stránke www.st.com/trademarks. Všetky ostatné názvy produktov alebo služieb sú majetkom ich príslušných vlastníkov.
- Informácie v tomto dokumente nahrádzajú a nahrádzajú informácie predtým uvedené v akýchkoľvek predchádzajúcich verziách tohto dokumentu.
- © 2023 STMicroelectronics – Všetky práva vyhradené
Dokumenty / zdroje
![]() |
STMicroelectronics Séria STM32WBA Začíname [pdfPoužívateľská príručka Séria STM32WBA Začíname, začíname, začíname |