Logo STMicroelectronics

STMicroelectronics STM32WBA Series Začínáme

STMicroelectronics-STM32WBA-Series-Začínáme-obr-1

Informace o produktu

Specifikace:

  • Název produktu: Balíček MCU STM32CubeWBA
  • Výrobce: STMicroelectronics
  • Kompatibilita: Mikrokontroléry řady STM32WBA
  • Licence: Open-source BSD licence

Návod k použití produktu

Hlavní vlastnosti balíčku STM32CubeWBA MCU:
Balíček STM32CubeWBA MCU Package poskytuje všechny potřebné vestavěné softwarové komponenty pro vývoj aplikací na mikrokontrolérech řady STM32WBA. Je vysoce přenosný v rámci řady STM32 a je dodáván s HAL a LL API, napřampsoubory a komponenty middlewaru.

Konec architekturyview:
Architektura balíčku STM32CubeWBA MCU Package se skládá ze tří úrovní – aplikací, komponent založených na knihovnách a protokolech, abstrakce hardwaru, ovladačů BSP, ovladačů jádra a rozhraní API nízké vrstvy.

FAQ

  • Co je součástí balíčku STM32CubeWBA MCU Package?
    Balíček obsahuje rozhraní API pro nízkou vrstvu (LL) a hardwarovou abstraktní vrstvu (HAL), napřampsoubory, aplikace, komponenty middlewaru jako FileX/LevelX, NetX Duo, mbed-crypto knihovny a další.
  • Je balíček STM32CubeWBA MCU Package kompatibilní s generátorem kódu STM32CubeMX?
    Ano, balíček je plně kompatibilní s generátorem kódu STM32CubeMX pro generování inicializačního kódu.

Zavedení

  • STM32Cube je originální iniciativa STMicroelectronics, která výrazně zlepšuje produktivitu návrhářů snížením úsilí, času a nákladů na vývoj. STM32Cube pokrývá celé portfolio STM32.
    STM32Cube obsahuje:
    • Sada uživatelsky přívětivých nástrojů pro vývoj softwaru pro pokrytí vývoje projektu od koncepce po realizaci, mezi které patří:
      • STM32CubeMX, grafický softwarový konfigurační nástroj, který umožňuje automatické generování inicializačního kódu C pomocí grafických průvodců
      • STM32CubeIDE, vývojový nástroj vše v jednom s konfigurací periferií, generováním kódu, kompilací kódu a funkcemi ladění
      • STM32CubeCLT, sada nástrojů pro vývoj příkazového řádku vše v jednom s kompilací kódu, programováním desek a funkcemi ladění
      • STM32CubeProgrammer (STM32CubeProg), programovací nástroj dostupný v grafické verzi a verzi pro příkazový řádek
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), výkonné monitorovací nástroje pro jemné vyladění chování a výkonu aplikací STM32 v reálném čase
    • STM32Cube MCU a MPU Packages, komplexní vestavěné softwarové platformy specifické pro každou řadu mikrokontrolérů a mikroprocesorů (jako je STM32CubeWBA pro řadu STM32WBA), které zahrnují:
      • STM32Cube hardware abstraction layer (HAL), zajišťující maximální přenositelnost v rámci portfolia STM32
      • Nízkovrstvá rozhraní API STM32Cube zajišťující nejlepší výkon a nároky s vysokým stupněm uživatelské kontroly nad hardwarem
      • Konzistentní sada middlewarových komponent, jako je ThreadX, FileX / LevelX, NetX Duo, USBX, dotyková knihovna, mbed-crypto, TFM, MCUboot, OpenBL a STM32_WPAN (včetně Bluetooth® Low Energy profiles a služby, Mesh, Zigbee®, OpenThread, Matter a vrstva MAC 802.15.4)
      • Všechny vestavěné softwarové nástroje s úplnými sadami periferních a aplikačních examples
    • Rozšiřující balíčky STM32Cube, které obsahují vestavěné softwarové komponenty, které doplňují funkce balíčků STM32Cube MCU a MPU o:
      • Middleware rozšíření a aplikační vrstvy
      • Exampběží na některých specifických vývojových deskách STMicroelectronics
  • Tato uživatelská příručka popisuje, jak začít s balíčkem MCU STM32CubeWBA.
    • Sekce 2 Hlavní vlastnosti STM32CubeWBA popisuje hlavní vlastnosti balíčku STM32CubeWBA MCU Package.
    • Sekce 3 Architektura STM32CubeWBA skončilaview poskytuje přesview architektury STM32CubeWBA a struktury MCU Package.

Obecné informace

Balíček MCU STM32CubeWBA běží na 32bitových mikrokontrolérech STM32 založených na procesoru Arm® Cortex®-M33 s Arm® TrustZone® a FPU.
Poznámka: Arm a TrustZone jsou registrované ochranné známky společnosti Arm Limited (nebo jejích dceřiných společností) v USA a/nebo jinde.

Hlavní vlastnosti STM32CubeWBA

  • Balíček MCU STM32CubeWBA běží na 32bitových mikrokontrolérech STM32 založených na procesoru Arm® Cortex®-M33 s TrustZone® a FPU.
  • STM32CubeWBA shromažďuje v jediném balíčku všechny generické vestavěné softwarové komponenty potřebné k vývoji aplikace pro mikrokontroléry řady STM32WBA. V souladu s iniciativou STM32Cube je tato sada komponent vysoce přenosná, a to nejen v rámci mikrokontrolérů řady STM32WBA, ale také s jinými řadami STM32.
  • STM32CubeWBA je plně kompatibilní s generátorem kódu STM32CubeMX pro generování inicializačního kódu. Balíček obsahuje nízkovrstvová (LL) a hardwarová abstraktní vrstva (HAL) API, která pokrývají hardware mikrokontroléru, spolu s rozsáhlou sadou exampběžící na deskách STMicroelectronics. Rozhraní API HAL a LL jsou pro pohodlí uživatele k dispozici v licenci BSD s otevřeným zdrojovým kódem.
  • Balíček STM32CubeWBA MCU Package také obsahuje komplexní middlewarovou komponentu postavenou na middlewaru Microsoft® Azure® RTOS a dalších interních a open-source stacků s odpovídajícími examples.
  • Dodávají se s bezplatnými, uživatelsky přívětivými licenčními podmínkami:
    • Integrovaný a plně vybavený Azure® RTOS: Azure® RTOS ThreadX
    • Implementace CMSIS-RTOS s Azure® RTOS ThreadX
    • Zásobníky USB hostitelů a zařízení přicházejí s mnoha třídami: Azure® RTOS USBX
    • Moderní file systém a vrstva překladu flash: FileX / ÚroveňX
    • Síťový stack průmyslové úrovně: optimalizovaný pro výkon přicházející s mnoha protokoly IoT: NetX Duo
    • OpenBootloader
    • Integrační řešení Arm® Trusted Firmware-M (TF-M).
    • mbed-crypto knihovny
    • Knihovna ST Netwok
    • Řešení knihovny dotykového snímání STMTouch
  • Balíček STM32CubeWBA MCU Package obsahuje také několik aplikací a ukázek implementujících všechny tyto komponenty middlewaru.
  • Rozložení komponent STM32CubeWBA MCU Package je znázorněno na obrázku 1. Komponenty STM32CubeWBA MCU Package .

    STMicroelectronics-STM32WBA-Series-Začínáme-obr-2

Architektura STM32CubeWBA skončilaview

Řešení balíčku MCU STM32CubeWBA je postaveno na třech nezávislých úrovních, které se snadno ovlivňují, jak je popsáno na obrázku 2. Architektura balíčku MCU STM32CubeWBA.

STMicroelectronics-STM32WBA-Series-Začínáme-obr-3

Úroveň 0

Tato úroveň je rozdělena do tří podvrstev:

  • Balíček podpory desky (BSP).
  • Vrstva abstrakce hardwaru (HAL):
    • Ovladače periferií HAL
    • Nízkovrstvé ovladače
  • Základní použití periferií napřamples.

Balíček podpory desky (BSP)
Tato vrstva nabízí sadu rozhraní API vzhledem k hardwarovým komponentám na hardwarových deskách (jako jsou ovladače LCD, Audio,\ microSD™ a MEMS). Skládá se ze dvou částí:

  • Ovladač součásti:
    Tento ovladač souvisí s externím zařízením na desce, nikoli se zařízením STM32. Ovladač komponent poskytuje specifická API externím komponentám ovladače BSP a mohl by být přenosný na jakékoli jiné desce.
  • Ovladač BSP:
    Ovladač BSP umožňuje připojení ovladačů komponent ke konkrétní desce a poskytuje sadu uživatelsky přívětivých
    API. Pravidlo pro pojmenování API je BSP_FUNCT_Action().
    Exampsoubor: BSP_LED_Init(), BSP_LED_On()
    BSP je založeno na modulární architektuře, která umožňuje snadné portování na jakýkoli hardware pouhou implementací nízkoúrovňových rutin.

Hardwarová abstraktní vrstva (HAL) a nízká vrstva (LL)
STM32CubeWBA HAL a LL se vzájemně doplňují a pokrývají širokou škálu aplikačních požadavků:

  • Ovladače HAL nabízejí vysoce přenosná rozhraní API orientovaná na funkce na vysoké úrovni. Koncovému uživateli skrývají složitost MCU a periferií.
    Ovladače HAL poskytují obecná rozhraní API orientovaná na více instancí, která zjednodušují implementaci uživatelských aplikací tím, že poskytují procesy připravené k použití. NapřampPro komunikační periferie (I2S, UART a další) poskytuje rozhraní API umožňující inicializaci a konfiguraci periferie, správu přenosu dat na základě dotazování, přerušení nebo procesu DMA a řešení komunikačních chyb, které mohou nastat během komunikace. Rozhraní API ovladače HAL jsou rozdělena do dvou kategorií:
    1. Obecná API, která poskytují společné a obecné funkce všem mikrokontrolérům řady STM32.
    2. Rozhraní API rozšíření, která poskytují specifické a přizpůsobené funkce pro konkrétní rodinu nebo konkrétní číslo dílu.
  • Nízkovrstvá API poskytují nízkoúrovňová API na úrovni registru s lepší optimalizací, ale menší přenositelností.
    • Vyžadují hluboké znalosti MCU a specifikací periferií.
    • Ovladače LL jsou navrženy tak, aby nabízely rychlou lehkou expertně orientovanou vrstvu, která je blíže hardwaru než HAL. Na rozdíl od HAL nejsou LL API poskytována pro periferní zařízení, kde optimalizovaný přístup není klíčovou funkcí, nebo pro ty, které vyžadují náročnou softwarovou konfiguraci nebo komplexní zásobník vyšší úrovně.
    • Funkce ovladačů LL:
      • Sada funkcí pro inicializaci hlavních funkcí periferie podle parametrů specifikovaných v datových strukturách.
      • Sada funkcí pro vyplnění inicializačních datových struktur resetovanými hodnotami odpovídajícími každému poli.
      • Funkce pro deinicializaci periferií (obnovení periferních registrů na výchozí hodnoty).
      • Sada inline funkcí pro přímý a atomický přístup k registru.
      • Plná nezávislost na HAL a možnost použití v samostatném režimu (bez ovladačů HAL).
      • Plné pokrytí podporovaných periferních funkcí.

Základní použití periferií napřamples
Tato vrstva uzavírá exampsoubory postavené na periferních zařízeních STM32 využívající pouze prostředky HAL a BSP.

Úroveň 1

Tato úroveň je rozdělena na dvě podvrstvy:

  • Middlewarové komponenty
  • Exampsoubory založené na komponentách middlewaru

Middlewarové komponenty

  • Middleware je sada knihoven pokrývajících Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot a mbed-crypto.
  • Horizontální interakce mezi komponentami této vrstvy se provádí voláním doporučených rozhraní API.
  • Vertikální interakce s ovladači nízké vrstvy se provádí prostřednictvím specifických zpětných volání a statických maker implementovaných v rozhraní volání systému knihovny.
  • Hlavní vlastnosti každé komponenty middlewaru jsou následující:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: Operační systém v reálném čase (RTOS) určený pro vestavěné systémy se dvěma funkčními režimy.
        • Běžný režim: Běžné funkce RTOS, jako je správa a synchronizace vláken, správa fondu paměti, zasílání zpráv a zpracování událostí.
        • Modulový režim: Pokročilý uživatelský režim, který umožňuje načítání a vyjímání předem propojených modulů ThreadX za běhu prostřednictvím správce modulů.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): Implementuje protokol Bluetooth® Low Energy pro vrstvy Link a Stack.
    • MCUboot (software s otevřeným zdrojovým kódem)
    • Protokoly Zigbee® pro zásobník a související clustery.
    • Zásobník protokolů Thread® a linková vrstva.
    • Důvěryhodný firmware Arm®-M, TF-M (open-source software): Referenční implementace architektury zabezpečení platformy Arm® (PSA) pro TrustZone® s přidruženými zabezpečenými službami.
    • mbed-crypto (software s otevřeným zdrojovým kódem): Middleware mbed-crypto poskytuje implementaci PSA kryptografického API.
    • Knihovna dotykového snímání STM32: Robustní řešení kapacitního dotykového snímání STMTouch s podporou přiblížení, dotykových tlačítek, lineárních a rotačních dotykových snímačů. Je založen na osvědčeném principu získávání povrchového přenosu náboje.

Exampsoubory založené na komponentách middlewaru
Každá komponenta middlewaru je dodávána s jedním nebo více exampsoubory (také nazývané aplikace), které ukazují, jak je používat. Integrace napřampK dispozici jsou také soubory, které používají několik komponent middlewaru.

Balíček firmwaru STM32CubeWBA skončilview

Podporovaná zařízení a hardware řady STM32WBA

  • STM32Cube nabízí vysoce přenosnou hardwarovou abstraktní vrstvu (HAL) postavenou na obecné architektuře. Umožňuje princip build-na-layers, jako je použití middlewarové vrstvy k implementaci jejich funkcí, aniž bychom do hloubky věděli, jaký MCU se používá. To zlepšuje znovupoužitelnost kódu knihovny a zajišťuje snadnou přenositelnost na jiná zařízení.
  • Navíc díky své vrstvené architektuře nabízí STM32CubeWBA plnou podporu všech sérií STM32WBA.
  • Uživatel musí pouze definovat správné makro v stm32wbaxx.h.
  • Tabulka 1 ukazuje makro, které je třeba definovat v závislosti na použitém zařízení řady STM32WBA. Toto makro musí být také definováno v preprocesoru kompilátoru.
    Tabulka 1. Makra pro řadu STM32WBA
    Makro definované v stm32wbaxx.h Zařízení řady STM32WBA
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA obsahuje bohatou sadu exampsouborů a aplikací na všech úrovních, což usnadňuje pochopení a používání jakéhokoli ovladače HAL nebo komponent middlewaru. Tyto exampsoubory běží na deskách STMicroelectronics uvedených v tabulce 2.
    Tabulka 2. Desky pro řadu STM32WBA
    Rada Deska STM32WBA podporovaná zařízení
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • Balíček STM32CubeWBA MCU může běžet na jakémkoli kompatibilním hardwaru. Uživatel jednoduše aktualizuje ovladače BSP, aby přenesly poskytnuté exampna desce, pokud deska má stejné hardwarové funkce (jako je LED, LCD displej a tlačítka).
Balíček firmwaru skončilview
  • Řešení balíčku STM32CubeWBA je poskytováno v jediném balíčku zip se strukturou znázorněnou na obrázku 3. Struktura balíčku firmwaru STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Začínáme-obr-4

  • Pro každou desku sada examples je vybaven předkonfigurovanými projekty pro nástrojové řetězce EWARM, MDK-ARM a STM32CubeIDE.
  • Obrázek 4. STM32CubeWBA exampkonecview ukazuje strukturu projektu pro desky NUCLEO‑WBA52CG, NUCLEO-WBA55CG a STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Začínáme-obr-5

  • Bývalýampsoubory jsou klasifikovány v závislosti na úrovni STM32Cube, na kterou se vztahují, a jsou pojmenovány takto:
    • Úroveň 0 examplesy se nazývají Přamples, Přamples_LL a Přamples_MIX. Používají ovladače HAL, ovladače LL a kombinaci ovladačů HAL a LL bez jakékoli komponenty middlewaru.
    • Úroveň 1 exampsoubory se nazývají Aplikace. Poskytují typické případy použití každé komponenty middlewaru. Libovolnou aplikaci firmwaru pro danou desku lze rychle sestavit díky projektům šablon dostupným v adresářích Templ ates a Templates_LL.

Projekty s podporou TrustZone®

  • Podpora TrustZone® Přampnázvy souborů obsahují předponu _TrustZone. Pravidlo platí i pro Aplikace (kromě TFM a SBSFU, které jsou nativně pro TrustZone®).
  • S podporou TrustZone® Přampsoubory a aplikace jsou poskytovány s víceprojektovou strukturou složenou ze zabezpečených a nezabezpečených podprojektů, jak je znázorněno na obrázku 5. Struktura zabezpečených a nezabezpečených projektů pro více projektů.
  • Projekty s podporou TrustZone® jsou vyvíjeny podle šablony zařízení CMSIS-5, rozšířené o hlavičku rozdělení systému file rozdělit_ .h, který je hlavně zodpovědný za nastavení jednotky bezpečných atributů (SAU), FPU a přiřazení zabezpečených/nezabezpečených přerušení ve stavu zabezpečeného provádění.
  • Toto nastavení se provádí v zabezpečené funkci CMSIS SystemInit(), která se volá při spuštění před zadáním funkce main() zabezpečené aplikace. Viz dokumentace k softwaru Arm® TrustZone®-M.

    STMicroelectronics-STM32WBA-Series-Začínáme-obr-6

  • Balíček firmwaru balíčku STM32CubeWBA poskytuje výchozí rozdělení paměti v oddílu _ .h files dostupné pod: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • V těchto oddílech files, SAU je ve výchozím nastavení zakázána. V důsledku toho se pro přiřazení zabezpečení používá mapování paměti IDAU. Viz obrázek Zabezpečené/nezabezpečené rozdělení pomocí technologie TrustZone® v referenční příručce RM0495.
  • Pokud uživatel povolí SAU, je v oddílu předdefinována výchozí konfigurace oblastí SAU files takto:
    • Oblast SAU 0: 0x08080000 – 0x081FFFFF (nezabezpečená zabezpečená polovina paměti flash (512 kB))
    • Oblast SAU 1: 0x0BF88000 – 0x0BF97FFF (nezabezpečená systémová paměť)
    • Oblast SAU 2: 0x0C07E000 – 0x0C07FFFF (zabezpečené, nezabezpečené volání)
    • Oblast SAU 3: 0x20010000 – 0x2001FFFF (nezabezpečená SRAM2 (64 kB))
    • Oblast SAU 4: 0x40000000 – 0x4FFFFFFF (nezabezpečená periferní mapovaná paměť)
  • Aby odpovídalo výchozímu rozdělení, musí mít zařízení řady STM32WBAxx nastaveny následující bajty uživatelské volby:
    • TZEN = 1 (zařízení s podporou TrustZone®)
    • SECWM1_PSRTT = 0x0 SECWM1_PEND = 0x3F (64 ze 128 stránek interní flash paměti nastaveno jako zabezpečené) Poznámka: Interní flash paměť je ve výchozím nastavení plně zabezpečena v TZEN = 1. Byty uživatelské volby SECWM1_PSRTT/ SECWM1_PEND musí být nastaveny podle aplikace konfigurace paměti (oblasti SAU, pokud je SAU povoleno). Linker projektu zabezpečené/nezabezpečené aplikace files musí být také zarovnány.
  • Vše examplesy mají stejnou strukturu:
    • \Inc složka obsahující všechna záhlaví files.
    • Složka Src obsahující zdrojový kód.
    • Složky \EWARM, \MDK-ARM a \STM32CubeIDE obsahující předkonfigurovaný projekt pro každý toolchain.
    • readme.md a readme.html popisující exampchování a potřebné prostředí, aby to fungovalo.
    • ioc file který uživatelům umožňuje otevřít většinu firmwaru napřampsouborů v rámci STM32CubeMX.

Začínáme s STM32CubeWBA

Spuštění prvního HAL example

Tato část vysvětluje, jak jednoduché je spustit první example v rámci STM32CubeWBA. Jako ilustraci používá generaci jednoduchého přepínače LED běžícího na desce NUCLEO-WBA52CG:

  1. Stáhněte si balíček STM32CubeWBA MCU.
  2. Rozbalte jej do vámi zvoleného adresáře.
  3. Ujistěte se, že jste neupravovali strukturu balíčku zobrazenou na obrázku 1. Také se doporučuje zkopírovat balíček do umístění blízko kořenového svazku (což znamená C:\ST nebo G:\Tests), protože některá IDE narážejí na problémy, když cesta délka je příliš dlouhá.

Spuštění prvního TrustZone® povoleného napřample

  • Před načtením a spuštěním TrustZone® povoleným napřample, je povinné číst example readme file pro jakoukoli konkrétní konfiguraci, která zajistí, že zabezpečení je povoleno, jak je popsáno v části 4.2.1 Projekty s podporou TrustZone® (TZEN=1 (byte uživatelské volby)).
    1. Přejděte do \Projects\NUCLEO-WBA52CG\Examples.
    2. Otevřete složky \GPIO a poté \GPIO_IOToggle_TrustZone.
    3. Otevřete projekt pomocí preferované sady nástrojů. Rychlý konecview o tom, jak otevřít, vytvořit a spustit example s podporovanými nástrojovými řetězci je uveden níže.
    4. Přestavte postupně všechny zabezpečené a nezabezpečené projekty files a nahrajte zabezpečené a nezabezpečené obrazy do cílové paměti.
    5. Spustit example: zabezpečená aplikace pravidelně přepíná LD2 každou sekundu a nezabezpečená aplikace přepíná LD3 dvakrát rychleji. Další podrobnosti naleznete v readme file z example.
  • Chcete-li otevřít, vytvořit a spustit examps podporovanými nástrojovými řetězci postupujte podle následujících kroků:
    • EWARM:
      1. Pod example, otevřete podsložku \EWARM.
      2. Spusťte pracovní prostor Project.eww
      3. Znovu vytvořte zabezpečený projekt xxxxx_S files: [Project]>[Rebuild all].
      4. Nastavte nezabezpečený projekt xxxxx_NS jako aktivní aplikaci (klikněte pravým tlačítkem na projekt xxxxx_NS [Nastavit jako aktivní])
      5. Znovu vytvořte nezabezpečený projekt xxxxx_NS files: [Project]>[Rebuild all].
      6. Flash nezabezpečený binární soubor pomocí [Projekt]>[Stáhnout]>[Stáhnout aktivní aplikaci] .
      7. Nastavte aplikaci xxxxx_S jako aktivní (klikněte pravým tlačítkem na projekt xxxxx_S [Set as Active].
      8. Flash zabezpečené binární soubory pomocí [Stáhnout a ladit] (Ctrl+D).
      9. Spusťte program: [Debug]>[Go(F5)]
    • MDK-ARM:
      1. Otevřete \MDK-ARM toolchain.
      2. Otevřete pracovní plochu Multiprojects file Project.uvmpw.
      3. Vyberte projekt xxxxx_s jako aktivní aplikaci ([Set as Active Project]).
      4. Sestavte projekt xxxxx_s.
      5. Vyberte projekt xxxxx_ns jako aktivní projekt ([Set as Active Project]).
      6. Sestavte projekt xxxxx_ns.
      7. Načtěte nezabezpečený binární soubor ([F8]). Toto stáhne \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf do paměti flash)
      8. Vyberte projekt Project_s jako aktivní projekt ([Set as Active Project]).
      9. Načtěte zabezpečený binární soubor ([F8]). Tím se stáhne \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf do paměti flash).
      10. Spustit example.
    • STM32CubeIDE:
      1. Otevřete toolchain STM32CubeIDE.
      2. Otevřete pracovní plochu Multiprojects file .projekt.
      3. Znovu vytvořte projekt xxxxx_Secure.
      4. Znovu sestavit projekt xxxxx_NonSecure.
      5. Spusťte aplikaci [Debug as STM32 Cortex-M C/C++] pro zabezpečený projekt.
      6. V okně [Edit configuration] vyberte panel [Startup] a přidejte načíst obrázek a symboly nezabezpečeného projektu.
        Důležité: Nezabezpečený projekt musí být načten před zabezpečeným projektem.
      7. Klikněte na [OK].
      8. Spustit example na perspektivě ladění.

Spuštění prvního deaktivovaného TrustZone®, napřample

  • Před načtením a spuštěním vypnuté TrustZone® napřample, je povinné číst example readme file pro jakoukoli konkrétní konfiguraci. Pokud nejsou žádné konkrétní zmínky, ujistěte se, že zařízení na desce má deaktivované zabezpečení (TZEN=0 (byte uživatelské volby)). Viz FAQ pro provedení volitelné regrese na TZEN = 0
    1. Přejděte do \Projects\NUCLEO-WBA52CG\Examples.
    2. Otevřete složky \GPIO a poté \GPIO_EXTI.
    3. Otevřete projekt pomocí preferované sady nástrojů. Rychlý konecview o tom, jak otevřít, vytvořit a spustit example s podporovanými nástrojovými řetězci je uveden níže.
    4. Vše znovu postavit files a načtěte svůj obrázek do cílové paměti.
    5. Spustit example: Při každém stisknutí tlačítka [USER] se LED dioda LD1 přepne. Další podrobnosti naleznete v readme file z example.
  • Chcete-li otevřít, vytvořit a spustit examps podporovanými nástrojovými řetězci postupujte podle následujících kroků:
    • EWARM:
      1. Pod example, otevřete podsložku \EWARM.
      2. Spusťte pracovní prostor Project.eww (název pracovního prostoru se může změnit z jednoho example jinému).
      3. Vše znovu postavit files: [Project]>[Rebuild all].
      4. Načtěte obraz projektu: [Project]>[Debug].
      5. Spusťte program: [Debug]>[Go (F5)].
    • MDK-ARM:
      1. Pod example, otevřete podsložku \MDK-ARM.
      2. Spusťte pracovní plochu Project.uvproj (název pracovní plochy se může změnit z jednoho example jinému).
      3. Vše znovu postavit files:[Project]>[Rebuild all target files].
      4. Načtěte obraz projektu: [Debug]>[Start/Stop Debug Session].
      5. Spusťte program: [Debug]>[Spustit (F5)].
    • STM32CubeIDE:
      1. Otevřete toolchain STM32CubeIDE.
      2. Klikněte na [File]>[Přepnout pracovní prostor]>[Jiné] a přejděte do adresáře pracovního prostoru STM32CubeIDE.
      3. Klikněte na [File]>[Importovat], vyberte [Obecné]>[Existující projekty do pracovního prostoru] a poté klikněte na [Další].
      4. Přejděte do adresáře pracovního prostoru STM32CubeIDE a vyberte projekt.
      5. Obnovit celý projekt files: Vyberte projekt v okně [Project Explorer] a poté klikněte na nabídku [Project]>[Build project].
      6. Spusťte program: [Spustit]>[Ladit (F11)]
Vývoj vlastní aplikace

Poznámka: Software musí povolit mezipaměť instrukcí (ICACHE), aby z paměti flash získala spuštění ve stavu čekání 0 a dosáhla maximálního výkonu a lepší spotřeby energie.

Použití STM32CubeMX k vývoji nebo aktualizaci aplikace

  • V balíčku STM32CubeWBA MCU jsou téměř všechny projekty exampsoubory jsou generovány pomocí nástroje STM32CubeMX pro inicializaci systému, periferií a middlewaru.
  • Přímé použití existujícího projektu napřample z nástroje STM32CubeMX vyžaduje STM32CubeMX 6.10.0 nebo vyšší:
    • Po instalaci STM32CubeMX otevřete a v případě potřeby aktualizujte navrhovaný projekt. Nejjednodušší způsob, jak otevřít existující projekt, je poklepat na *.ioc file takže STM32CubeMX automaticky otevře projekt a jeho zdroj files.
    • STM32CubeMX generuje inicializační zdrojový kód takových projektů. Hlavní zdrojový kód aplikace je obsažen v komentářích „USER CODE BEGIN“ a „USER CODE END“. V případě, že se změní výběr a nastavení IP, STM32CubeMX aktualizuje inicializační část kódu, ale zachová hlavní zdrojový kód aplikace.
  • Pro vývoj vlastního projektu v STM32CubeMX postupujte krok za krokem:
    1. Vyberte mikrokontrolér STM32, který odpovídá požadované sadě periferií.
    2. Nakonfigurujte veškerý požadovaný vestavěný software pomocí řešení konfliktů pinoutů, pomocníka pro nastavení hodinového stromu, kalkulátoru spotřeby energie a nástroje provádějícího konfiguraci periferií MCU (jako je GPIO nebo USART) a zásobníků middlewaru (jako je USB).
    3. Vygenerujte inicializační C kód na základě zvolené konfigurace. Tento kód je připraven k použití v několika vývojových prostředích. Uživatelský kód je uchován při příštím generování kódu.
  • Další informace o STM32CubeMX naleznete v uživatelské příručce STM32CubeMX pro konfiguraci STM32 a generování inicializačního kódu C (UM1718).
  • Pro seznam dostupných projektů napřampsoubory pro STM32CubeWBA, viz aplikační poznámka STM32Cube firmware exampsoubory pro řadu STM32WBA (AN5929).

Aplikace pro ovladače

Aplikace HAL
Tato část popisuje kroky potřebné k vytvoření vlastní aplikace HAL pomocí STM32CubeWBA:

  1. Vytvořte projekt
    • Chcete-li vytvořit nový projekt, začněte buď z projektu šablony poskytnutého pro každou nástěnku pod \Projects\ \Šablony nebo z libovolného dostupného projektu pod \Projekty\ \Příklady nebo \Projekty\ \Aplikace (kde odkazuje na název desky, například STM32CubeWBA).
    • Projekt Template poskytuje prázdnou funkci hlavní smyčky. Je to však dobrý výchozí bod pro pochopení nastavení projektu STM32CubeWBA. Šablona má následující vlastnosti:
      • Obsahuje zdrojový kód HAL, ovladače CMSIS a BSP, což je minimální sada komponent potřebných k vývoji kódu na dané desce.
      • Obsahuje zahrnuté cesty pro všechny součásti firmwaru.
      • Definuje podporovaná zařízení řady STM32WBA a umožňuje správnou konfiguraci ovladačů CMSIS a HAL.
      • Poskytuje uživatele připraveného k použití fileje předkonfigurováno, jak je znázorněno níže:
        HAL inicializován s výchozí časovou základnou s jádrem Arm® SysTick. SysTick ISR implementovaný pro účely HAL_Delay().
        Poznámka: Při kopírování existujícího projektu do jiného umístění se ujistěte, že jsou aktualizovány všechny zahrnuté cesty.
  2. Přidejte potřebný middleware do uživatelského projektu (volitelné)
    K identifikaci zdroje files, které mají být přidány do projektu file seznam naleznete v dokumentaci poskytnuté pro každý middleware. Viz aplikace pod \Projects\STM32xxx_yyy\Applications\ (kde odkazuje na zásobník middlewaru, jako je ThreadX), aby zjistil, který zdroj fileMusí být přidány cesty s a include.
  3. Nakonfigurujte součásti firmwaru
    Komponenty HAL a middleware nabízejí sadu možností konfigurace v době sestavení pomocí maker #define deklarovaných v záhlaví file. Konfigurace šablony file je k dispozici v rámci každé komponenty, kterou je třeba zkopírovat do složky projektu (obvykle konfigurace file se jmenuje xxx_conf_template.h, slovo _template je třeba při kopírování do složky projektu odstranit). Konfigurace file poskytuje dostatek informací k pochopení dopadu každé možnosti konfigurace. Podrobnější informace jsou k dispozici v dokumentaci k jednotlivým komponentům.
  4. Spusťte knihovnu HAL
    Po přechodu do hlavního programu musí kód aplikace zavolat HAL_Init() API pro inicializaci knihovny HAL, která provádí následující úlohy:
    • Konfigurace prefetch paměti flash a priority přerušení SysTick (prostřednictvím maker definovaných v st m32wbaxx_hal_conf.h).
    • Konfigurace SysTick pro generování přerušení každou milisekundu s prioritou přerušení SysTick TICK_INT_PRIO definované v stm32wbaxx_hal_conf.h.
    • Nastavení priority skupiny NVIC na 0.
    • Volání funkce zpětného volání HAL_MspInit() definované v uživateli stm32wbaxx_hal_msp.c file provádět globální nízkoúrovňové hardwarové inicializace.
  5. Nakonfigurujte systémové hodiny
    Konfigurace systémových hodin se provádí voláním dvou níže popsaných rozhraní API:
    • HAL_RCC_OscConfig(): toto API konfiguruje interní a externí oscilátory. Uživatel si zvolí konfiguraci jednoho nebo všech oscilátorů.
    • HAL_RCC_ClockConfig(): toto API konfiguruje zdroj systémových hodin, latenci flash paměti a předděličky AHB a APB.
  6. Inicializujte periferní zařízení
    • Nejprve napište periferní funkci HAL_PPP_MspInit. Postupujte následovně:
      • Povolte periferní hodiny.
      • Nakonfigurujte periferní GPIO.
      • Nakonfigurujte kanál DMA a povolte přerušení DMA (v případě potřeby).
      • Povolit periferní přerušení (je-li potřeba).
    • V případě potřeby upravte soubor stm32xxx_it.c tak, aby volal požadované obslužné rutiny přerušení (periferní a DMA).
    • Zapište proces kompletního zpětného volání, pokud se plánuje použití periferního přerušení nebo DMA.
    • V uživatelském main.c file, inicializujte strukturu úchytu periferie a poté zavolejte funkci HAL_PPP_Init() k inicializaci periferie.
  7. Vyvinout aplikaci
    • Při této stage, systém je připraven a vývoj kódu uživatelské aplikace může začít.
    • HAL poskytuje intuitivní a připravená rozhraní API pro konfiguraci periferie. Podporuje dotazování, přerušení a programovací model DMA, aby vyhovoval jakýmkoli požadavkům aplikace. Další podrobnosti o tom, jak používat jednotlivé periferie, najdete v bohatém exampSada je součástí balení STM32CubeWBA MCU.
      Pozor: Ve výchozí implementaci HAL se jako časová základna používá časovač SysTick: generuje přerušení v pravidelných časových intervalech. Pokud je HAL_Delay() volána z periferního procesu ISR, ujistěte se, že přerušení SysTick má vyšší prioritu (číselně nižší) než periferní přerušení. Jinak je proces ISR volajícího zablokován. Funkce ovlivňující konfigurace časové základny jsou deklarovány jako __weak, aby bylo možné přepsání v případě jiných implementací v uživateli file (pomocí univerzálního časovače, napřample nebo jiný zdroj času). Další podrobnosti najdete v HAL_TimeBase example.

Aplikace LL
Tato část popisuje kroky potřebné k vytvoření vlastní aplikace LL pomocí STM32CubeWBA.

  1. Vytvořte projekt
    • Chcete-li vytvořit nový projekt, začněte buď z projektu Templates_LL poskytnutého pro každou desku pod \Projects\ \Templates_LL nebo z jakéhokoli dostupného projektu pod \Projects\ \Příkladamples_LL ( odkazuje na název desky, například NUCLEO-WBA32CG).
    • Projekt šablony poskytuje prázdnou funkci hlavní smyčky, což je dobrý výchozí bod pro pochopení nastavení projektu pro STM32CubeWBA. Hlavní vlastnosti šablony jsou následující:
      • Obsahuje zdrojové kódy ovladačů LL a CMSIS, což je minimální sada komponent potřebných pro vývoj kódu na dané desce.
      • Obsahuje zahrnuté cesty pro všechny požadované součásti firmwaru.
      • Vybere podporované zařízení řady STM32WBA a umožní správnou konfiguraci ovladačů CMSIS a LL.
      • Poskytuje uživatele připravené k použití files, které jsou předkonfigurovány takto:
        ◦ main.h: definiční abstraktní vrstva LED a USER_BUTTON.
        ◦ main.c: Konfigurace systémových hodin pro maximální frekvenci.
  2. Port existujícího projektu na jinou desku
    Chcete-li podpořit existující projekt na jiné cílové desce, začněte od projektu Templates_LL, který je k dispozici pro každou desku a je dostupný pod \Projects\ \Templates_LL.
    • Vyberte LL example: Najít desku, na které LL exampsoubory jsou nasazeny, viz seznam LL exampsoubor STM32CubeProjectsList.html.
  3. Port LL exampten:
    • Zkopírujte/vložte složku Templates_LL – pro zachování původního zdroje – nebo přímo aktualizujte existující projekt Temp lates_LL.
    • Pak portování spočívá hlavně v nahrazení Templates_LL files od Exampcílený projekt les_LL.
    • Uschovejte všechny specifické části desky. Z důvodu srozumitelnosti jsou části specifické pro desku označeny příznakem specific tags:

      STMicroelectronics-STM32WBA-Series-Začínáme-obr-7

    • Hlavní kroky portování jsou tedy následující:
      • Nahraďte soubor stm32wbaxx_it.h file
      • Nahraďte soubor stm32wbaxx_it.c file
      • Vyměňte hlavní.h file a aktualizujte ji: Ponechte definici LED a uživatelského tlačítka šablony LL pod KONFIGURACE SPECIFICKOU DESKY tags.
      • Vyměňte hlavní.c file a aktualizujte to:
    • Ponechte konfiguraci hodin funkce šablony SystemClock_Config() LL v části KONFIGURACE SPECIFICKÁ PRO DESKU tags.
    • V závislosti na definici LED nahraďte každý výskyt LDx jiným LDy dostupným v main.h file.
    • S těmito úpravami example nyní běží na cílové desce

Bezpečnostní aplikace
Tento balíček je dodáván s bezpečnostními aplikacemi.

Aplikace SBSFU

  • SBSFU poskytuje řešení Root of Trust, včetně funkcí Secure Boot a Secure Firmware Update (založené na MCUboot).
  • Řešení se použije před spuštěním aplikace.
  • Řešení poskytuje exampsoubor zabezpečené služby (přepínač GPIO), který je izolován od nezabezpečené aplikace. Nezabezpečená aplikace za běhu může toto řešení stále používat.

TFM aplikace
TFM poskytuje řešení Root of Trust včetně funkcí Secure Boot a Secure Firmware Update
(založeno na MCUboot). Řešení se použije před spuštěním aplikace. Řešení poskytuje zabezpečené služby TFM, které jsou izolované od nezabezpečené aplikace. Nezabezpečená aplikace za běhu může toto řešení stále používat.

RF aplikace
RF aplikace je popsána v této aplikační poznámce: Vytváření bezdrátových aplikací s mikrokontroléry řady STM32WBA (AN5928).

Získávání aktualizací vydání STM32CubeWBA
Nejnovější verze balíčků MCU STM32CubeWBA a opravy jsou k dispozici ze série STM32WBA. Lze je získat pomocí tlačítka CHECK FOR UPDATE v STM32CubeMX. Další podrobnosti naleznete v části 3 uživatelské příručky STM32CubeMX pro konfiguraci a inicializaci C kódu STM32 (UM1718).

FAQ

  • Kdy bych měl použít HAL místo ovladačů LL?
    • Ovladače HAL nabízejí API na vysoké úrovni a orientované na funkce s vysokou úrovní přenositelnosti. Složitost produktu nebo periferie je pro koncové uživatele skryta.
    • Ovladače LL nabízejí rozhraní API na úrovni registrů s lepší optimalizací, ale méně přenosné. Vyžadují důkladnou znalost specifikací produktu nebo IP.
  • Mohu používat ovladače HAL a LL společně? Pokud mohu, jaká jsou omezení?
    • Je možné použít ovladače HAL i LL. Použijte HAL pro fázi inicializace IP a poté spravujte I/O operace pomocí ovladačů LL.
    • Hlavní rozdíl mezi HAL a LL spočívá v tom, že ovladače HAL vyžadují vytvoření a používání ovladačů pro řízení provozu, zatímco ovladače LL pracují přímo na periferních registrech. Examples_MIX example ukazuje, jak smíchat HAL a LL.
  • Jak jsou povolena inicializační API LL?
    • Definice inicializačních API LL a souvisejících prostředků (struktur, literálů a prototypů) je podmíněna přepínačem kompilace USE_FULL_LL_DRIVER.
    • Abyste mohli používat inicializační API LL, přidejte tento přepínač do preprocesoru kompilátoru toolchain.
  • Jak může STM32CubeMX generovat kód založený na vestavěném softwaru?
    STM32CubeMX má vestavěné znalosti mikrokontrolérů STM32, včetně jejich periferií a softwaru, který umožňuje poskytnout uživateli grafické znázornění a generovat *.h nebo *.c files na základě uživatelské konfigurace.

DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ

  • STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky.
  • Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících.
  • Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
  • Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.
  • ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST najdete na www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.
  • Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.
  • © 2023 STMicroelectronics – Všechna práva vyhrazena

Dokumenty / zdroje

STMicroelectronics STM32WBA Series Začínáme [pdfUživatelská příručka
Řada STM32WBA Začínáme, Začínáme, Začínáme

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *