Začetek serije STMicroelectronics STM32WBA
Informacije o izdelku
Tehnični podatki:
- Ime izdelka: Paket MCU STM32CubeWBA
- Proizvajalec: STMicroelectronics
- Združljivost: Mikrokontrolerji serije STM32WBA
- Licenciranje: Odprtokodna licenca BSD
Navodila za uporabo izdelka
Glavne značilnosti paketa STM32CubeWBA MCU:
Paket MCU STM32CubeWBA zagotavlja vse potrebne komponente vdelane programske opreme za razvoj aplikacij na mikrokrmilnikih serije STM32WBA. Je zelo prenosljiv znotraj serije STM32 in prihaja z API-ji HAL in LL, nprampdatoteke in komponente vmesne programske opreme.
Arhitektura Konecview:
Arhitektura paketa STM32CubeWBA MCU je sestavljena iz treh ravni – aplikacije, komponente, ki temeljijo na knjižnici in protokolu, plast abstrakcije strojne opreme, gonilniki BSP, gonilniki jedra in API-ji nizke plasti.
pogosta vprašanja
- Kaj je vključeno v paket STM32CubeWBA MCU?
Paket vključuje API-je nizke plasti (LL) in plasti abstrakcije strojne opreme (HAL), nprampdatoteke, aplikacije, komponente vmesne programske opreme, kot je FileX/LevelX, NetX Duo, knjižnice mbed-crypto in drugo. - Ali je paket MCU STM32CubeWBA združljiv z generatorjem kod STM32CubeMX?
Da, paket je popolnoma združljiv z generatorjem kod STM32CubeMX za generiranje inicializacijske kode.
Uvod
- STM32Cube je izvirna pobuda STMicroelectronics za znatno izboljšanje produktivnosti oblikovalca z zmanjšanjem truda, časa in stroškov pri razvoju. STM32Cube pokriva celoten portfelj STM32.
STM32Cube vključuje:- Nabor uporabniku prijaznih orodij za razvoj programske opreme, ki pokrivajo razvoj projekta od zasnove do realizacije, med katerimi so:
- STM32CubeMX, orodje za konfiguracijo grafične programske opreme, ki omogoča samodejno generiranje inicializacijske kode C z uporabo grafičnih čarovnikov
- STM32CubeIDE, vse-v-enem razvojno orodje s periferno konfiguracijo, generiranjem kode, prevajanjem kode in funkcijami za odpravljanje napak
- STM32CubeCLT, vse-v-enem nabor orodij za razvoj ukazne vrstice s prevajanjem kode, programiranjem plošč in funkcijami za odpravljanje napak
- STM32CubeProgrammer (STM32CubeProg), programsko orodje, ki je na voljo v grafični različici in različici ukazne vrstice
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), zmogljiva nadzorna orodja za natančno nastavitev obnašanja in delovanja aplikacij STM32 v realnem času
- Paketi STM32Cube MCU in MPU, celovite platforme vgrajene programske opreme, specifične za vsako serijo mikrokrmilnika in mikroprocesorja (kot je STM32CubeWBA za serijo STM32WBA), ki vključujejo:
- Abstrakcijski sloj strojne opreme STM32Cube (HAL), ki zagotavlja maksimalno prenosljivost v celotnem portfelju STM32
- Nizkoplastni API-ji STM32Cube, ki zagotavljajo najboljšo zmogljivost in odtise z visoko stopnjo uporabniškega nadzora nad strojno opremo
- Dosleden nabor komponent vmesne programske opreme, kot je ThreadX, FileX / LevelX, NetX Duo, USBX, knjižnica na dotik, mbed-crypto, TFM, MCUboot, OpenBL in STM32_WPAN (vključno z Bluetooth® Low Energy profiles in storitve, Mesh, Zigbee®, OpenThread, Matter in sloj MAC 802.15.4)
- Vsi vgrajeni pripomočki programske opreme s popolnimi nabori perifernih in aplikativnih examples
- Razširitveni paketi STM32Cube, ki vsebujejo vgrajene programske komponente, ki dopolnjujejo funkcionalnosti paketov STM32Cube MCU in MPU z:
- Razširitve vmesne programske opreme in aplikativne plasti
- Examples, ki deluje na nekaterih posebnih razvojnih ploščah STMicroelectronics
- Nabor uporabniku prijaznih orodij za razvoj programske opreme, ki pokrivajo razvoj projekta od zasnove do realizacije, med katerimi so:
- Ta uporabniški priročnik opisuje, kako začeti uporabljati paket MCU STM32CubeWBA.
- Razdelek 2 Glavne funkcije STM32CubeWBA opisuje glavne funkcije paketa STM32CubeWBA MCU.
- Razdelek 3 Arhitektura STM32CubeWBA je končanaview zagotavlja nadview arhitekture STM32CubeWBA in strukture paketa MCU.
Splošne informacije
Paket STM32CubeWBA MCU deluje na 32-bitnih mikrokontrolerjih STM32, ki temeljijo na procesorju Arm® Cortex®-M33 z Arm® TrustZone® in FPU.
Opomba: Arm in TrustZone sta registrirani blagovni znamki družbe Arm Limited (ali njenih podružnic) v ZDA in/ali drugje.
Glavne značilnosti STM32CubeWBA
- Paket STM32CubeWBA MCU deluje na 32-bitnih mikrokontrolerjih STM32, ki temeljijo na procesorju Arm® Cortex®-M33 s TrustZone® in FPU.
- STM32CubeWBA združuje v enem samem paketu vse generične komponente vdelane programske opreme, potrebne za razvoj aplikacije za mikrokontrolerje serije STM32WBA. V skladu s pobudo STM32Cube je ta niz komponent zelo prenosljiv, ne samo znotraj mikrokrmilnikov serije STM32WBA, ampak tudi za druge serije STM32.
- STM32CubeWBA je popolnoma združljiv z generatorjem kode STM32CubeMX za ustvarjanje inicializacijske kode. Paket vključuje API-je nizke plasti (LL) in plasti abstrakcije strojne opreme (HAL), ki pokrivajo strojno opremo mikrokrmilnika, skupaj z obsežnim naborom exampki se izvajajo na ploščah STMicroelectronics. API-ja HAL in LL sta za udobje uporabnika na voljo v odprtokodni licenci BSD.
- Paket STM32CubeWBA MCU vsebuje tudi obsežno komponento vmesne programske opreme, zgrajeno okoli vmesne programske opreme Microsoft® Azure® RTOS, in drugih internih in odprtokodnih skladov z ustreznimi examples.
- Imajo brezplačne, uporabniku prijazne licenčne pogoje:
- Integriran in polno opremljen Azure® RTOS: Azure® RTOS ThreadX
- Implementacija CMSIS-RTOS z Azure® RTOS ThreadX
- Skladi gostiteljev in naprav USB, ki prihajajo s številnimi razredi: Azure® RTOS USBX
- Napredno file sistem in prevajalska plast flash: FileX / RavenX
- Omrežni sklad industrijskega razreda: optimiziran za zmogljivost, ki prihaja s številnimi IoT protokoli: NetX Duo
- OpenBootloader
- Integracijska rešitev Arm® Trusted Firmware-M (TF‑M).
- knjižnice mbed-crypto
- Knjižnica ST Network
- Rešitev knjižnice za zaznavanje dotika STMTouch
- V paketu STM32CubeWBA MCU je na voljo tudi več aplikacij in predstavitev, ki izvajajo vse te komponente vmesne programske opreme.
- Postavitev komponente paketa STM32CubeWBA MCU je prikazana na sliki 1. Komponente paketa STM32CubeWBA MCU.
Konec arhitekture STM32CubeWBAview
Paketna rešitev STM32CubeWBA MCU je zgrajena okoli treh neodvisnih ravni, ki zlahka medsebojno delujejo, kot je opisano na sliki 2. Arhitektura paketa STM32CubeWBA MCU.
0. stopnja
Ta raven je razdeljena na tri podsloje:
- Paket podpore za plošče (BSP).
- Sloj abstrakcije strojne opreme (HAL):
- gonilniki perifernih naprav HAL
- Nizkoslojni gonilniki
- Osnovna uporaba perifernih naprav npramples.
Paket podpore za plošče (BSP)
Ta plast ponuja niz API-jev glede na komponente strojne opreme v ploščah strojne opreme (kot so gonilniki LCD, Audio,\ microSD™ in MEMS). Sestavljen je iz dveh delov:
- Gonilnik komponente:
Ta gonilnik je povezan z zunanjo napravo na plošči in ne z napravo STM32. Gonilnik komponente ponuja posebne API-je zunanjim komponentam gonilnika BSP in je lahko prenosljiv na katero koli drugo ploščo. - Gonilnik BSP:
Gonilnik BSP omogoča povezovanje gonilnikov komponente z določeno ploščo in zagotavlja nabor uporabniku prijaznih
API-ji. Pravilo za poimenovanje API-ja je BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP temelji na modularni arhitekturi, ki omogoča enostavno prenašanje na katero koli strojno opremo s samo implementacijo nizkonivojskih rutin.
Abstrakcija strojne opreme (HAL) in nizka plast (LL)
STM32CubeWBA HAL in LL se dopolnjujeta in pokrivata širok razpon aplikacijskih zahtev:
- Gonilniki HAL ponujajo zelo prenosljive API-je na visoki ravni, ki so usmerjeni v funkcije. Končnemu uporabniku skrijejo MCU in periferno zapletenost.
Gonilniki HAL zagotavljajo generične večinstančne API-je, usmerjene v funkcije, ki poenostavijo implementacijo uporabniške aplikacije z zagotavljanjem procesov, pripravljenih za uporabo. Na primerample, za komunikacijske periferne naprave (I2S, UART in druge) ponuja API-je, ki omogočajo inicializacijo in konfiguracijo perifernih naprav, upravljanje prenosa podatkov na podlagi postopka anketiranja, prekinitve ali DMA in obravnavanje komunikacijskih napak, ki se lahko pojavijo med komunikacijo. API-ji gonilnika HAL so razdeljeni v dve kategoriji:- Generični API-ji, ki zagotavljajo skupne in generične funkcije za vse mikrokontrolerje serije STM32.
- Razširitveni API-ji, ki zagotavljajo posebne in prilagojene funkcije za določeno družino ali določeno številko dela.
- API-ji nizke ravni zagotavljajo API-je nizke ravni na ravni registra z boljšo optimizacijo, vendar manjšo prenosljivostjo.
- Zahtevajo poglobljeno poznavanje specifikacij MCU in perifernih naprav.
- Gonilniki LL so zasnovani tako, da nudijo hitro in lahko strokovno usmerjeno plast, ki je bližje strojni opremi kot HAL. V nasprotju s HAL API-ji LL niso na voljo za zunanje naprave, kjer optimiziran dostop ni ključna lastnost, ali za tiste, ki zahtevajo konfiguracijo težke programske opreme ali kompleksen sklad na višji ravni.
- Lastnosti gonilnikov LL:
- Niz funkcij za inicializacijo glavnih funkcij perifernih naprav v skladu s parametri, določenimi v podatkovnih strukturah.
- Nabor funkcij za zapolnitev inicializacijskih podatkovnih struktur z vrednostmi ponastavitve, ki ustrezajo vsakemu polju.
- Funkcija za deinicializacijo perifernih naprav (periferni registri se povrnejo na privzete vrednosti).
- Niz vgrajenih funkcij za neposredni in atomski dostop do registra.
- Popolna neodvisnost od HAL in zmožnost uporabe v samostojnem načinu (brez gonilnikov HAL).
- Popolna pokritost podprtih perifernih funkcij.
Osnovna uporaba perifernih naprav npramples
Ta plast obdaja exampdatoteke, zgrajene prek perifernih naprav STM32 z uporabo samo virov HAL in BSP.
1. stopnja
Ta raven je razdeljena na dve podplasti:
- Komponente vmesne programske opreme
- Exampdatoteke, ki temeljijo na komponentah vmesne programske opreme
Komponente vmesne programske opreme
- Vmesna programska oprema je nabor knjižnic, ki pokrivajo Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot in mbed-crypto.
- Horizontalna interakcija med komponentami tega sloja poteka s klicanjem predstavljenih API-jev.
- Navpična interakcija z gonilniki nižje plasti poteka prek posebnih povratnih klicev in statičnih makrov, implementiranih v klicnem vmesniku knjižničnega sistema.
- Glavne značilnosti vsake komponente vmesne programske opreme so naslednje:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: operacijski sistem v realnem času (RTOS), zasnovan za vgrajene sisteme z dvema funkcionalnima načinoma.
- Običajni način: skupne funkcije RTOS, kot so upravljanje niti in sinhronizacija, upravljanje pomnilniškega področja, sporočanje in obravnavanje dogodkov.
- Način modula: Napredni uporabniški način, ki omogoča sprotno nalaganje in odstranjevanje vnaprej povezanih modulov ThreadX prek upravitelja modulov.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: operacijski sistem v realnem času (RTOS), zasnovan za vgrajene sisteme z dvema funkcionalnima načinoma.
- Bluetooth® Low Energy (BLE): Izvaja protokol Bluetooth® Low Energy za sloj povezave in sklada.
- MCUboot (odprtokodna programska oprema)
- Protokoli Zigbee® za sklad in povezane gruče.
- Sklad protokolov Thread® in povezovalna plast.
- Arm® trusted firmware-M, TF‑M (odprtokodna programska oprema): referenčna izvedba varnostne arhitekture platforme Arm® (PSA) za TrustZone® s povezanimi varnimi storitvami.
- mbed-crypto (odprtokodna programska oprema): vmesna programska oprema mbed-crypto zagotavlja implementacijo API-ja za kriptografijo PSA.
- Knjižnica za zaznavanje dotika STM32: robustna kapacitivna rešitev za zaznavanje dotika STMTouch, ki podpira senzorje bližine, tipke na dotik, linearne in rotacijske senzorje na dotik. Temelji na dokazanem principu pridobivanja površinskega prenosa naboja.
- Microsoft® Azure® RTOS
Exampdatoteke, ki temeljijo na komponentah vmesne programske opreme
Vsaka komponenta vmesne programske opreme ima enega ali več exampdatoteke (imenovane tudi aplikacije), ki prikazujejo, kako ga uporabljati. Integracija exampNa voljo so tudi datoteke, ki uporabljajo več komponent vmesne programske opreme.
Konec paketa vdelane programske opreme STM32CubeWBAview
Podprte naprave in strojna oprema serije STM32WBA
- STM32Cube ponuja visoko prenosljivo plast abstrakcije strojne opreme (HAL), zgrajeno okoli generične arhitekture. Omogoča načelo nadgradnje plasti, kot je uporaba plasti vmesne programske opreme za izvajanje njihovih funkcij, ne da bi podrobno vedeli, kateri MCU se uporablja. To izboljša možnost ponovne uporabe kode knjižnice in zagotavlja enostavno prenosljivost na druge naprave.
- Poleg tega STM32CubeWBA zaradi svoje večplastne arhitekture ponuja popolno podporo za vse serije STM32WBA.
- Uporabnik mora samo definirati pravi makro v stm32wbaxx.h.
- Tabela 1 prikazuje makro, ki ga je treba definirati glede na uporabljeno napravo serije STM32WBA. Ta makro mora biti definiran tudi v predprocesorju prevajalnika.
Tabela 1. Makri za serijo STM32WBAMakro je definiran v stm32wbaxx.h Naprave serije STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA vsebuje bogat nabor exampdatotek in aplikacij na vseh ravneh, kar olajša razumevanje in uporabo katerega koli gonilnika HAL ali komponent vmesne programske opreme. Ti bivšiampizvajajo na ploščah STMicroelectronics, navedenih v tabeli 2.
Tabela 2. Plošče za serijo STM32WBADeska Naprave, ki podpirajo ploščo STM32WBA NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - Paket STM32CubeWBA MCU lahko deluje na kateri koli združljivi strojni opremi. Uporabnik preprosto posodobi gonilnike BSP za prenos priloženega exampdatoteke na plošči, če ima slednja enake lastnosti strojne opreme (kot so LED, LCD zaslon in gumbi).
Konec paketa vdelane programske opremeview
- Paketna rešitev STM32CubeWBA je na voljo v enem paketu zip s strukturo, prikazano na sliki 3. Struktura paketa vdelane programske opreme STM32CubeWBA.
- Za vsako ploščo je komplet examples je opremljen s predhodno konfiguriranimi projekti za verige orodij EWARM, MDK-ARM in STM32CubeIDE.
- Slika 4. STM32CubeWBA examples konecview prikazuje strukturo projekta za plošče NUCLEO‑WBA52CG, NUCLEO-WBA55CG in STM32WBA55G-DK1.
- BivšiampDatoteke so razvrščene glede na raven STM32Cube, za katero veljajo, in so poimenovane na naslednji način:
- Raven 0 nprampse imenujejo Examples, npramples_LL in Examples_MIX. Uporabljajo gonilnike HAL, gonilnike LL in mešanico gonilnikov HAL in LL brez kakršne koli komponente vmesne programske opreme.
- Raven 1 nprampdatoteke se imenujejo aplikacije. Zagotavljajo tipične primere uporabe vsake komponente vmesne programske opreme. Vsako aplikacijo vdelane programske opreme za določeno ploščo je mogoče hitro sestaviti zahvaljujoč projektom predlog, ki so na voljo v imenikih Templ ates in Templates_LL.
Projekti, ki podpirajo TrustZone®
- TrustZone® omogočen nprampimena datotek vsebujejo predpono _TrustZone. Pravilo velja tudi za aplikacije (razen za TFM in SBSFU, ki sta izvorno za TrustZone®).
- z omogočenim TrustZone® nprampDatoteke in aplikacije so opremljene z večprojektno strukturo, sestavljeno iz varnih in nevarnih podprojektov, kot je prikazano na sliki 5. Večprojektna varna in nevarna struktura projekta.
- Projekti, ki podpirajo TrustZone®, so razviti v skladu s predlogo naprave CMSIS-5, razširjeno tako, da vključuje glavo sistemske particije file particija_ .h, ki je v glavnem odgovoren za nastavitev varne atributne enote (SAU), FPU in dodelitev varnih/nevarnih prekinitev v stanju varnega izvajanja.
- Ta nastavitev se izvede v varni funkciji CMSIS SystemInit(), ki se pokliče ob zagonu pred vstopom v funkcijo main() varne aplikacije. Za smernice za programsko opremo glejte dokumentacijo Arm® TrustZone®-M.
- Paket vdelane programske opreme paketa STM32CubeWBA zagotavlja privzeto particioniranje pomnilnika v particiji _ .h filena voljo pod: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- V teh particijah files, je SAU privzeto onemogočen. Posledično se preslikava pomnilnika IDAU uporablja za varnostno dodeljevanje. Glejte sliko Varno/nevarno particioniranje s tehnologijo TrustZone® v referenčnem priročniku RM0495.
- Če uporabnik omogoči SAU, je v particiji vnaprej določena konfiguracija privzetih regij SAU files kot sledi:
- Regija SAU 0: 0x08080000 – 0x081FFFFF (nevarna varna polovica bliskovnega pomnilnika (512 Kbajtov))
- Regija SAU 1: 0x0BF88000 – 0x0BF97FFF (nezaščiten sistemski pomnilnik)
- Regija SAU 2: 0x0C07E000 – 0x0C07FFFF (varno, nevarno klicno)
- Regija SAU 3: 0x20010000 – 0x2001FFFF (nezaščiten SRAM2 (64 Kbajtov))
- Regija SAU 4: 0x40000000 – 0x4FFFFFFF (nezaščiten periferni preslikani pomnilnik)
- Za ujemanje s privzetim particioniranjem morajo imeti naprave serije STM32WBAxx nastavljene naslednje bajte uporabniških možnosti:
- TZEN = 1 (naprava, ki podpira TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 od 128 strani notranjega bliskovnega pomnilnika je nastavljenih kot varnih) Opomba: Notranji bliskovni pomnilnik je privzeto popolnoma varen v TZEN = 1. Bajti uporabniških možnosti SECWM1_PSTRT/ SECWM1_PEND morajo biti nastavljeni glede na aplikacijo konfiguracija pomnilnika (regije SAU, če je SAU omogočen). Povezovalnik projekta varnih/nevarnih aplikacij files mora biti tudi poravnan.
- vse exampimajo enako strukturo:
- \Inc mapa, ki vsebuje celotno glavo files.
- Mapa Src, ki vsebuje izvorno kodo.
- \EWARM, \MDK-ARM in \STM32CubeIDE mape, ki vsebujejo vnaprej konfiguriran projekt za vsako orodno verigo.
- readme.md in readme.html, ki opisujeta exampvedenje in potrebno okolje, da deluje.
- ioc file ki uporabnikom omogoča odpiranje večine vdelane programske opreme, nprampdatoteke znotraj STM32CubeMX.
Kako začeti s STM32CubeWBA
Izvajanje prvega HAL example
V tem razdelku je razloženo, kako preprosto je zagnati prvi example znotraj STM32CubeWBA. Kot ilustracijo uporablja generiranje preprostega preklopnika LED, ki deluje na plošči NUCLEO-WBA52CG:
- Prenesite paket STM32CubeWBA MCU.
- Razpakirajte ga v imenik po vaši izbiri.
- Pazite, da ne spremenite strukture paketa, prikazane na sliki 1. Priporočljivo je tudi, da paket kopirate na lokacijo blizu vašega korenskega nosilca (kar pomeni C:\ST ali G:\Tests), saj nekateri IDE naletijo na težave, ko pot dolžina je predolga.
Zagon prvega omogočenega TrustZone® example
- Preden naložite in zaženete TrustZone® omogočeno nprample, obvezno prebrati prample readme file za katero koli specifično konfiguracijo, ki zagotavlja, da je varnost omogočena, kot je opisano v razdelku 4.2.1 Projekti, ki podpirajo TrustZone® (TZEN=1 (bajt uporabniške možnosti)).
- Prebrskajte do \Projects\NUCLEO-WBA52CG\Examples.
- Odprite mapo \GPIO, nato \GPIO_IOToggle_TrustZone.
- Odprite projekt z želeno verigo orodij. Na hitro čezview o tem, kako odpreti, zgraditi in zagnati exampdatoteka s podprtimi orodnimi verigami je podana spodaj.
- Zaporedoma ponovno zgradite vse varne in nevarne projekte files in naloži varne in nezaščitene slike v ciljni pomnilnik.
- Zaženi example: redno varna aplikacija preklopi LD2 vsako sekundo, nezaščitena aplikacija pa dvakrat hitreje preklopi LD3. Za več podrobnosti glejte readme file bivšegaample.
- Če želite odpreti, zgraditi in zagnati examps podprtimi orodnimi verigami, sledite spodnjim korakom:
- EWARM:
- Pod bivšimampmapo, odprite podmapo \EWARM.
- Zaženite delovni prostor Project.eww
- Ponovno zgradite varen projekt xxxxx_S files: [Projekt]>[Obnovi vse].
- Nastavite nezaščiten projekt xxxxx_NS kot aktivno aplikacijo (desni klik na projekt xxxxx_NS [Nastavi kot aktivno])
- Znova zgradite nezaščiten projekt xxxxx_NS files: [Projekt]>[Obnovi vse].
- Flash nezaščitene binarne datoteke z [Projekt]>[Prenos]>[Prenos aktivne aplikacije].
- Nastavite xxxxx_S kot aktivno aplikacijo (desni klik na projekt xxxxx_S [Nastavi kot aktivno].
- Utripajte varno binarno datoteko s [Prenos in odpravljanje napak] (Ctrl+D).
- Zaženite program: [Debug]>[Go(F5)]
- MDK-ARM:
- Odprite verigo orodij \MDK-ARM.
- Odprite delovni prostor Multiprojects file Projekt.uvmpw.
- Izberite projekt xxxxx_s kot aktivno aplikacijo ([Nastavi kot aktivni projekt]).
- Zgradite projekt xxxxx_s.
- Izberite projekt xxxxx_ns kot aktivni projekt ([Nastavi kot aktivni projekt]).
- Zgradite projekt xxxxx_ns.
- Naloži nezaščiteno dvojiško datoteko ([F8]). To prenese \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf v bliskovni pomnilnik)
- Izberite projekt Project_s kot aktivni projekt ([Nastavi kot aktivni projekt]).
- Naloži varno dvojiško datoteko ([F8]). To prenese \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf v bliskovni pomnilnik).
- Zaženi example.
- STM32CubeIDE:
- Odprite verigo orodij STM32CubeIDE.
- Odprite delovni prostor Multiprojects file .projekt.
- Ponovno zgradite projekt xxxxx_Secure.
- Ponovno zgradite projekt xxxxx_NonSecure.
- Zaženite aplikacijo [Debug as STM32 Cortex-M C/C++] za varen projekt.
- V oknu [Uredi konfiguracijo] izberite ploščo [Zagon] in dodajte naložite sliko in simbole nezaščitenega projekta.
Pomembno: Nezaščiten projekt je treba naložiti pred varnim projektom. - Kliknite [V redu].
- Zaženi example z vidika odpravljanja napak.
- EWARM:
Zagon prvega onemogočenega TrustZone® example
- Pred nalaganjem in zagonom onemogočenega TrustZone® example, obvezno prebrati prample readme file za katero koli posebno konfiguracijo. Če ni nobenih posebnih omemb, zagotovite, da je varnost naprave plošče onemogočena (TZEN=0 (bajt uporabniške možnosti)). Oglejte si pogosta vprašanja za izvedbo neobvezne regresije na TZEN = 0
- Prebrskajte do \Projects\NUCLEO-WBA52CG\Examples.
- Odprite mapo \GPIO, nato \GPIO_EXTI.
- Odprite projekt z želeno verigo orodij. Na hitro čezview o tem, kako odpreti, zgraditi in zagnati exampdatoteka s podprtimi orodnimi verigami je podana spodaj.
- Ponovno zgradite vse files in naložite svojo sliko v ciljni pomnilnik.
- Zaženi example: Vsakič, ko pritisnete gumb [USER], se lučka LED LD1 preklopi. Za več podrobnosti glejte readme file bivšegaample.
- Če želite odpreti, zgraditi in zagnati examps podprtimi orodnimi verigami, sledite spodnjim korakom:
- EWARM:
- Pod bivšimampmapo, odprite podmapo \EWARM.
- Zaženite delovni prostor Project.eww (ime delovnega prostora se lahko spremeni iz enega nprample drugemu).
- Ponovno zgradite vse files: [Projekt]>[Obnovi vse].
- Naložite sliko projekta: [Projekt]>[Odpravljanje napak].
- Zaženite program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod bivšimampda, odprite podmapo \MDK-ARM.
- Zaženite delovni prostor Project.uvproj (ime delovnega prostora se lahko spremeni iz enega nprample drugemu).
- Ponovno zgradite vse files:[Projekt]>[Obnovi vse cilje files].
- Naložite sliko projekta: [Debug]>[Start/Stop Debug Session].
- Zaženite program: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Odprite verigo orodij STM32CubeIDE.
- Kliknite [File]>[Switch Workspace]>[Other] in poiščite imenik delovnega prostora STM32CubeIDE.
- Kliknite [File]>[Uvozi] , izberite [Splošno]>[Obstoječi projekti v delovni prostor] in kliknite [Naprej].
- Poiščite imenik delovnega prostora STM32CubeIDE in izberite projekt.
- Obnovite ves projekt files: Izberite projekt v oknu [Project Explorer] in kliknite meni [Project]>[Build project].
- Zaženite program: [Zaženi]>[Odpravljanje napak (F11)]
- EWARM:
Razvoj aplikacije po meri
Opomba: Programska oprema mora omogočiti predpomnilnik navodil (ICACHE), da iz bliskovnega pomnilnika pridobi izvedbo v stanju čakanja 0 ter doseže največjo zmogljivost in boljšo porabo energije.
Uporaba STM32CubeMX za razvoj ali posodobitev aplikacije
- V paketu STM32CubeWBA MCU so skoraj vsi projekti nprampdatoteke so ustvarjene z orodjem STM32CubeMX za inicializacijo sistema, zunanjih naprav in vmesne programske opreme.
- Neposredna uporaba obstoječega projekta nprampdatoteka iz orodja STM32CubeMX zahteva STM32CubeMX 6.10.0 ali novejšo različico:
- Po namestitvi STM32CubeMX odprite in po potrebi posodobite predlagani projekt. Najenostavnejši način za odpiranje obstoječega projekta je dvoklik na *.ioc file tako da STM32CubeMX samodejno odpre projekt in njegov izvor files.
- STM32CubeMX ustvari inicializacijsko izvorno kodo takih projektov. Glavno izvorno kodo aplikacije vsebujeta komentarja »UPORABNIŠKA KODA ZAČETEK« in »KONEC UPORABNIŠKE KODE«. V primeru, da se izbira in nastavitev IP spremenita, STM32CubeMX posodobi inicializacijski del kode, vendar ohrani izvorno kodo glavne aplikacije.
- Za razvoj projekta po meri v STM32CubeMX sledite postopku po korakih:
- Izberite mikrokrmilnik STM32, ki ustreza zahtevanemu naboru zunanjih naprav.
- Konfigurirajte vso zahtevano vdelano programsko opremo z reševalnikom navzkrižij pinout, pomočnikom za nastavitev drevesa ure, kalkulatorjem porabe energije in pripomočkom, ki izvaja konfiguracijo periferne enote MCU (kot je GPIO ali USART) in nizov vmesne programske opreme (kot je USB).
- Generirajte inicializacijsko kodo C na podlagi izbrane konfiguracije. Ta koda je pripravljena za uporabo v več razvojnih okoljih. Uporabniška koda se ohrani pri naslednji generaciji kode.
- Za več informacij o STM32CubeMX glejte uporabniški priročnik STM32CubeMX za generiranje kode C za konfiguracijo in inicializacijo STM32 (UM1718).
- Za seznam razpoložljivih projektov nprampdatoteke za STM32CubeWBA, glejte opombo o aplikaciji STM32Cube firmware exampdatoteke za serijo STM32WBA (AN5929).
Vozniške aplikacije
HAL aplikacija
Ta razdelek opisuje korake, potrebne za ustvarjanje aplikacije HAL po meri z uporabo STM32CubeWBA:
- Ustvarite projekt
- Če želite ustvariti nov projekt, začnite s projektom predloge, ki je na voljo za vsako ploščo pod \Projekti\ \Predloge ali iz katerega koli razpoložljivega projekta pod \Projekti\ \Primeri ali \Projekti\ \Aplikacije (kjer se nanaša na ime plošče, kot je STM32CubeWBA).
- Projekt Template nudi prazno funkcijo glavne zanke. Vendar pa je dobro izhodišče za razumevanje nastavitev projekta STM32CubeWBA. Predloga ima naslednje značilnosti:
- Vsebuje izvorno kodo HAL, gonilnike CMSIS in BSP, ki so minimalni nabor komponent, potrebnih za razvoj kode na določeni plošči.
- Vsebuje vključene poti za vse komponente vdelane programske opreme.
- Določa podprte naprave serije STM32WBA, kar omogoča pravilno konfiguracijo gonilnikov CMSIS in HAL.
- Zagotavlja uporabnika, pripravljenega za uporabo fileje vnaprej konfiguriran, kot je prikazano spodaj:
HAL je inicializiran s privzeto časovno osnovo z Arm® jedrom SysTick. SysTick ISR implementiran za namen HAL_Delay().
Opomba: Pri kopiranju obstoječega projekta na drugo lokacijo se prepričajte, da so vse vključene poti posodobljene.
- Uporabniškemu projektu dodajte potrebno vmesno programsko opremo (izbirno)
Za identifikacijo vira fileje treba dodati projektu file seznam, glejte dokumentacijo, ki je priložena za vsako vmesno programsko opremo. Glejte aplikacije pod \Projekti\STM32xxx_yyy\Aplikacije\ (kje nanaša na sklad vmesne programske opreme, kot je ThreadX), da bi vedeli, kateri vir files in vključiti je treba poti. - Konfigurirajte komponente vdelane programske opreme
Komponente HAL in vmesne programske opreme ponujajo nabor konfiguracijskih možnosti v času gradnje z uporabo makrov #define, navedenih v glavi file. Konfiguracija predloge file je na voljo znotraj vsake komponente, ki jo je treba kopirati v mapo projekta (običajno konfiguracija file se imenuje xxx_conf_template.h, je treba besedo _template odstraniti, ko jo kopirate v mapo projekta). Konfiguracija file zagotavlja dovolj informacij za razumevanje vpliva vsake konfiguracijske možnosti. Podrobnejše informacije so na voljo v dokumentaciji, ki je priložena posamezni komponenti. - Zaženite knjižnico HAL
Po skoku v glavni program mora koda aplikacije poklicati API HAL_Init() za inicializacijo knjižnice HAL, ki izvaja naslednje naloge:- Konfiguracija vnaprejšnjega pridobivanja pomnilnika flash in prioritete prekinitev SysTick (prek makrov, definiranih v st m32wbaxx_hal_conf.h).
- Konfiguracija SysTick za ustvarjanje prekinitve vsako milisekundo pri prioriteti prekinitve SysTick TICK_INT_PRIO, definirani v stm32wbaxx_hal_conf.h.
- Nastavitev prioritete skupine NVIC na 0.
- Klic funkcije povratnega klica HAL_MspInit(), definiran v uporabniku stm32wbaxx_hal_msp.c file za izvedbo globalnih nizkonivojskih inicializacij strojne opreme.
- Konfigurirajte sistemsko uro
Konfiguracija sistemske ure se izvede s klicem dveh API-jev, opisanih spodaj:- HAL_RCC_OscConfig(): ta API konfigurira notranje in zunanje oscilatorje. Uporabnik se odloči za konfiguracijo enega ali vseh oscilatorjev.
- HAL_RCC_ClockConfig(): ta API konfigurira vir sistemske ure, zakasnitev bliskovnega pomnilnika ter preddelilnike AHB in APB.
- Inicializirajte periferijo
- Najprej napišite periferno funkcijo HAL_PPP_MspInit. Nadaljujte kot sledi:
- Omogoči periferno uro.
- Konfigurirajte periferne GPIO.
- Konfigurirajte kanal DMA in omogočite prekinitev DMA (če je potrebno).
- Omogoči periferno prekinitev (če je potrebno).
- Uredite stm32xxx_it.c za klic zahtevanih upravljavcev prekinitev (perifernih in DMA), če je potrebno.
- Zapišite proces popolnih povratnih funkcij, če je načrtovana uporaba periferne prekinitve ali DMA.
- V uporabniški main.c file, inicializirajte periferno strukturo ročaja in nato pokličite funkcijo HAL_PPP_Init(), da inicializirate periferno napravo.
- Najprej napišite periferno funkcijo HAL_PPP_MspInit. Nadaljujte kot sledi:
- Razvijte aplikacijo
- Pri tem stage, sistem je pripravljen in lahko se začne razvoj kode uporabniške aplikacije.
- HAL ponuja intuitivne in za uporabo pripravljene API-je za konfiguracijo zunanje opreme. Podpira anketiranje, prekinitve in programski model DMA, da se prilagodi vsem zahtevam aplikacije. Za več podrobnosti o uporabi vsake zunanje naprave glejte rich exampnabor datotek, ki je na voljo v paketu STM32CubeWBA MCU.
Pozor: V privzeti izvedbi HAL se časovnik SysTick uporablja kot časovna osnova: ustvarja prekinitve v rednih časovnih intervalih. Če je HAL_Delay() poklican iz perifernega procesa ISR, se prepričajte, da ima prekinitev SysTick višjo prioriteto (številčno nižjo) kot periferna prekinitev. V nasprotnem primeru je postopek ISR klicatelja blokiran. Funkcije, ki vplivajo na konfiguracije časovne baze, so deklarirane kot __šibke, da omogočijo preglasitev v primeru drugih implementacij v uporabniku file (z uporabo splošnega časovnika, nprample ali drug časovni vir). Za več podrobnosti glejte primer HAL_TimeBaseample.
LL aplikacija
V tem razdelku so opisani koraki, potrebni za ustvarjanje aplikacije LL po meri z uporabo STM32CubeWBA.
- Ustvarite projekt
- Če želite ustvariti nov projekt, bodisi začnite s projektom Templates_LL, ki je na voljo za vsako ploščo pod \Projekti\ \Templates_LL ali iz katerega koli razpoložljivega projekta pod \Projects\ \Npramples_LL ( se nanaša na ime plošče, kot je NUCLEO-WBA32CG).
- Projekt predloge ponuja prazno funkcijo glavne zanke, ki je dobro izhodišče za razumevanje nastavitev projekta za STM32CubeWBA. Glavne značilnosti predloge so naslednje:
- Vsebuje izvorne kode gonilnikov LL in CMSIS, ki so minimalni nabor komponent, potrebnih za razvoj kode na določeni plošči.
- Vsebuje vključene poti za vse potrebne komponente vdelane programske opreme.
- Izbere podprto napravo serije STM32WBA in omogoči pravilno konfiguracijo gonilnikov CMSIS in LL.
- Zagotavlja uporabnika, pripravljenega za uporabo fileki so vnaprej konfigurirani na naslednji način:
◦ main.h: sloj abstrakcije definicije LED in USER_BUTTON.
◦ main.c: Konfiguracija sistemske ure za največjo frekvenco.
- Prenesite obstoječi projekt na drugo ploščo
Če želite podpreti obstoječi projekt na drugi ciljni plošči, začnite s projektom Templates_LL, ki je na voljo za vsako ploščo in je na voljo pod \Projekti\ \Templates_LL.- Izberite LL example: Poiskati tablo, na kateri je LL exampdatoteke nameščene, glejte seznam LL examples STM32CubeProjectsList.html.
- Priključite LL example:
- Kopirajte/prilepite mapo Templates_LL – da obdržite začetni vir – ali neposredno posodobite obstoječi projekt Templates_LL.
- Nato je prenos v glavnem sestavljen iz zamenjave Templates_LL files strani Examples_LL ciljni projekt.
- Ohranite vse dele, specifične za ploščo. Zaradi jasnosti so posamezni deli plošče označeni s posebnimi tags:
- Tako so glavni koraki prenosa naslednji:
- Zamenjajte stm32wbaxx_it.h file
- Zamenjajte stm32wbaxx_it.c file
- Zamenjajte glavni.h file in jo posodobite: obdržite definicijo LED in uporabniškega gumba predloge LL pod POSAMEZNO KONFIGURACIJO PLOŠČE tags.
- Zamenjajte glavno.c file in ga posodobite:
- Ohranite konfiguracijo ure funkcije predloge SystemClock_Config() LL pod POSAMEZNO KONFIGURACIJO PLOŠČE tags.
- Odvisno od definicije LED zamenjajte vsak pojav LDx z drugim LDy, ki je na voljo v main.h file.
- S temi spremembami je example se zdaj izvaja na ciljni plošči
Varnostne aplikacije
Ta paket je dostavljen z varnostnimi aplikacijami.
SBSFU aplikacije
- SBSFU ponuja rešitev Root of Trust, vključno s funkcionalnostmi varnega zagona in varne posodobitve vdelane programske opreme (na osnovi MCUboot).
- Rešitev se uporabi pred izvedbo aplikacije.
- Rešitev zagotavlja exampvarne storitve (preklop GPIO), ki je izolirana od nevarne aplikacije. Nevarna aplikacija med izvajanjem lahko še vedno uporablja to rešitev.
TFM aplikacije
TFM zagotavlja rešitev Root of Trust, vključno s funkcijami varnega zagona in varne posodobitve vdelane programske opreme
(temelji na MCUboot). Rešitev se uporabi pred izvedbo aplikacije. Rešitev zagotavlja varne storitve TFM, ki so izolirane od nevarne aplikacije. Nevarna aplikacija med izvajanjem lahko še vedno uporablja to rešitev.
RF aplikacije
RF aplikacija je opisana v tej opombi o aplikaciji: Gradnja brezžičnih aplikacij z mikrokrmilniki serije STM32WBA (AN5928).
Pridobivanje posodobitev izdaje STM32CubeWBA
Najnovejše izdaje in popravki paketov STM32CubeWBA MCU so na voljo v seriji STM32WBA. Lahko jih pridobite z gumbom PREVERI ZA POSODOBITEV v STM32CubeMX. Za več podrobnosti glejte razdelek 3 uporabniškega priročnika STM32CubeMX za generiranje kode C za konfiguracijo in inicializacijo STM32 (UM1718).
pogosta vprašanja
- Kdaj naj namesto gonilnikov LL uporabim HAL?
- Gonilniki HAL ponujajo visokonivojske in funkcionalno usmerjene API-je z visoko stopnjo prenosljivosti. Kompleksnost izdelka ali periferne opreme je skrita za končne uporabnike.
- Gonilniki LL ponujajo nizkoplastne API-je na ravni registra z boljšo optimizacijo, vendar manj prenosljivi. Zahtevajo poglobljeno poznavanje specifikacij izdelka ali IP.
- Ali lahko uporabljam gonilnika HAL in LL skupaj? Če lahko, kakšne so omejitve?
- Možna je uporaba gonilnikov HAL in LL. Uporabite HAL za fazo inicializacije IP in nato upravljajte V/I operacije z gonilniki LL.
- Glavna razlika med HAL in LL je, da gonilniki HAL zahtevajo ustvarjanje in uporabo ročajev za upravljanje operacij, medtem ko gonilniki LL delujejo neposredno na perifernih registrih. Nekdanjiamples_MIX nprample ponazarja, kako mešati HAL in LL.
- Kako so omogočeni API-ji za inicializacijo LL?
- Definicija API-jev za inicializacijo LL in povezanih virov (strukture, literali in prototipi) je pogojena s stikalom prevajanja USE_FULL_LL_DRIVER.
- Če želite uporabljati API-je za inicializacijo LL, dodajte to stikalo v predprocesorju prevajalnika orodne verige.
- Kako lahko STM32CubeMX ustvari kodo na podlagi vdelane programske opreme?
STM32CubeMX ima vgrajeno znanje o mikrokontrolerjih STM32, vključno z njihovimi zunanjimi napravami in programsko opremo, ki uporabniku omogoča grafično predstavitev in generiranje *.h ali *.c filetemelji na uporabniški konfiguraciji.
POMEMBNO OBVESTILO – POZORNO PREBERITE
- STMicroelectronics NV in njegove hčerinske družbe (»ST«) si pridržujejo pravico do sprememb, popravkov, izboljšav, modifikacij in izboljšav izdelkov ST in/ali tega dokumenta kadar koli brez predhodnega obvestila. Kupci morajo pred oddajo naročil pridobiti najnovejše ustrezne informacije o izdelkih ST. Izdelki ST se prodajajo v skladu s prodajnimi pogoji ST, ki veljajo v času potrditve naročila.
- Kupci so izključno odgovorni za izbiro, izbiro in uporabo izdelkov ST in ST ne prevzema nobene odgovornosti za pomoč pri uporabi ali oblikovanje izdelkov kupcev.
- ST v tem dokumentu ne podeljuje nobene licence, izrecne ali implicitne, za katero koli pravico do intelektualne lastnine.
- Nadaljnja prodaja izdelkov ST z določbami, ki se razlikujejo od informacij, navedenih v tem dokumentu, razveljavi vsako garancijo, ki jo ST odobri za tak izdelek.
- ST in logotip ST sta blagovni znamki ST. Za dodatne informacije o blagovnih znamkah ST glejte www.st.com/trademarks. Vsa druga imena izdelkov ali storitev so last njihovih lastnikov.
- Informacije v tem dokumentu prevladajo in nadomeščajo informacije, ki so bile predhodno navedene v kateri koli prejšnji različici tega dokumenta.
- © 2023 STMicroelectronics – Vse pravice pridržane
Dokumenti / Viri
![]() |
Začetek serije STMicroelectronics STM32WBA [pdfUporabniški priročnik Serija STM32WBA Začetek, Začetek, Začetek |