STMicroelectronics STM32WBA Series Getting Started
Produkt ynformaasje
Spesifikaasjes:
- Produkt Namme: STM32CubeWBA MCU Pakket
- Fabrikant: STMicroelectronics
- Kompatibiliteit: STM32WBA rige mikrocontrollers
- Lisinsje: Iepenboarne BSD-lisinsje
Produkt Usage Ynstruksjes
Haadfunksjes fan STM32CubeWBA MCU-pakket:
It STM32CubeWBA MCU-pakket biedt alle nedige ynbêde softwarekomponinten foar it ûntwikkeljen fan applikaasjes op mikrocontrollers fan STM32WBA-searje. It is heul draachber binnen de STM32-searje en komt mei HAL- en LL API's, bglamples, en middleware komponinten.
Arsjitektuer oerview:
De arsjitektuer fan it STM32CubeWBA MCU-pakket bestiet út trije nivo's - Applikaasjes, Biblioteek- en protokol-basearre komponinten, Hardware-abstraksjelaach, BSP-bestjoerders, Core-bestjoerders, en leechlaach API's.
FAQ
- Wat is opnommen yn it STM32CubeWBA MCU-pakket?
It pakket omfettet API's foar leechlaach (LL) en hardwareabstraksjelaach (HAL), bglamples, applikaasjes, middleware komponinten lykas FileX/LevelX, NetX Duo, mbed-crypto-biblioteken, en mear. - Is it STM32CubeWBA MCU-pakket kompatibel mei STM32CubeMX-koadegenerator?
Ja, it pakket is folslein kompatibel mei de STM32CubeMX-koadegenerator foar it generearjen fan inisjalisaasjekoade.
Ynlieding
- STM32Cube is in orizjineel inisjatyf fan STMicroelectronics om de produktiviteit fan ûntwerper signifikant te ferbetterjen troch ûntwikkelingspoging, tiid en kosten te ferminderjen. STM32Cube beslacht de hiele STM32-portefúlje.
STM32Cube omfettet:- In set brûkerfreonlike ark foar softwareûntwikkeling om projektûntwikkeling fan konsepsje oant realisaasje te dekken, wêrûnder:
- STM32CubeMX, in grafysk softwarekonfiguraasjeark dat de automatyske generaasje fan C-initialisearringskoade mooglik makket mei grafyske wizards
- STM32CubeIDE, in alles-yn-ien ûntwikkelingsark mei perifeare konfiguraasje, koade generaasje, koade kompilaasje, en debug funksjes
- STM32CubeCLT, in alles-yn-ien ark foar kommando-rigelûntwikkeling mei koade-kompilaasje, boardprogrammearring en debugfunksjes
- STM32CubeProgrammer (STM32CubeProg), in programmearring ark beskikber yn grafyske en kommando-rigel ferzjes
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), krêftige monitoaringsark om it gedrach en prestaasjes fan STM32-applikaasjes yn realtime te fine-tunen
- STM32Cube MCU- en MPU-pakketten, wiidweidige ynbêde software-platfoarms spesifyk foar elke mikrocontroller- en mikroprosessor-searje (lykas STM32CubeWBA foar de STM32WBA-searje), dy't omfetsje:
- STM32Cube hardwareabstraksjelaach (HAL), soarget foar maksimale portabiliteit oer de STM32-portefúlje
- STM32Cube leechlaach API's, soargje foar de bêste prestaasjes en fuotprinten mei in hege graad fan brûkerskontrôle oer hardware
- In konsekwinte set fan middleware-komponinten lykas ThreadX, FileX / LevelX, NetX Duo, USBX, touch bibleteek, mbed-crypto, TFM, MCUboot, OpenBL, en STM32_WPAN (ynklusyf Bluetooth® Low Energy profiles en tsjinsten, Mesh, Zigbee®, OpenThread, Matter, en 802.15.4 MAC-laach)
- Alle ynbêde softwareprogramma's mei folsleine sets fan perifeare en tapassing examples
- STM32Cube-útwreidingspakketten, dy't ynbêde softwarekomponinten befetsje dy't de funksjonaliteiten fan 'e STM32Cube MCU- en MPU-pakketten oanfolje mei:
- Middleware tafoegings en tapassing lagen
- Examples rinne op guon spesifike STMicroelectronics ûntwikkeling boards
- In set brûkerfreonlike ark foar softwareûntwikkeling om projektûntwikkeling fan konsepsje oant realisaasje te dekken, wêrûnder:
- Dizze brûker hantlieding beskriuwt hoe te begjinnen mei it STM32CubeWBA MCU Package.
- Seksje 2 STM32CubeWBA haadfunksjes beskriuwt de haadfunksjes fan it STM32CubeWBA MCU Package.
- Seksje 3 STM32CubeWBA arsjitektuer oerview jout in oerview fan 'e STM32CubeWBA-arsjitektuer en de MCU-pakketstruktuer.
Algemiene ynformaasje
It STM32CubeWBA MCU-pakket rint op STM32 32-bit mikrocontrollers basearre op de Arm® Cortex®-M33-prosessor mei Arm® TrustZone® en FPU.
Noat: Arm en TrustZone binne registrearre hannelsmerken fan Arm Limited (of har dochterûndernimmingen) yn 'e FS en/of earne oars.
STM32CubeWBA haadfunksjes
- It STM32CubeWBA MCU-pakket rint op STM32 32-bit mikrocontrollers basearre op de Arm® Cortex®-M33-prosessor mei TrustZone® en FPU.
- De STM32CubeWBA sammelt, yn ien pakket, alle generike ynbêde softwarekomponinten dy't nedich binne om in applikaasje te ûntwikkeljen foar de mikrocontrollers fan 'e STM32WBA-searje. Yn oerienstimming mei it STM32Cube-inisjatyf is dizze set komponinten heul draachber, net allinich binnen de STM32WBA-searje mikrocontrollers, mar ek nei oare STM32-searjes.
- De STM32CubeWBA is folslein kompatibel mei de STM32CubeMX-koadegenerator, om inisjalisaasjekoade te generearjen. It pakket omfettet API's foar leechlaach (LL) en hardwareabstraksjelaach (HAL) dy't de hardware fan 'e mikrocontroller bedekke, tegearre mei in wiidweidige set fan eks.amples rinne op STMicroelectronics boards. De HAL- en LL API's binne beskikber yn in iepen boarne BSD-lisinsje foar brûkersgemak.
- It STM32CubeWBA MCU-pakket befettet ek in wiidweidige middleware-komponint konstruearre om Microsoft® Azure® RTOS-middleware, en oare yn-hûs- en iepenboarne-stapels, mei de oerienkommende eks.amples.
- Se komme mei fergese, brûkerfreonlike lisinsjebetingsten:
- Yntegreare en folslein funksjonele Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS-ymplemintaasje mei Azure® RTOS ThreadX
- USB-host- en apparaatstacks komme mei in protte klassen: Azure® RTOS USBX
- Avansearre file systeem en flash oersetting laach: FileX / LevelX
- Yndustriële grade netwurkstapel: optimalisearre foar prestaasjes dy't komme mei in protte IoT-protokollen: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF‑M) yntegraasjeoplossing
- mbed-crypto biblioteken
- ST Netwok Library
- STMTouch touch sensing bibleteek oplossing
- Ferskate applikaasjes en demonstraasjes dy't al dizze middleware-komponinten ymplementearje, wurde ek levere yn it STM32CubeWBA MCU-pakket.
- De STM32CubeWBA MCU Package komponint yndieling wurdt yllustrearre yn figuer 1. STM32CubeWBA MCU Package komponinten.
STM32CubeWBA arsjitektuer oerview
De STM32CubeWBA MCU pakket oplossing is boud om trije ûnôfhinklike nivo's dy't maklik ynteraksje lykas beskreaun yn figuer 2. STM32CubeWBA MCU pakket arsjitektuer.
Nivo 0
Dit nivo is ferdield yn trije sublagen:
- Board Support Package (BSP).
- Hardwareabstraksjelaach (HAL):
- HAL perifeare bestjoerders
- Leech-laach bestjoerders
- Basis perifeare gebrûk bglamples.
Board Support Package (BSP)
Dizze laach biedt in set fan API's relatyf oan de hardwarekomponinten yn 'e hardwareboards (lykas LCD, Audio, \ microSD ™, en MEMS-bestjoerders). It is gearstald út twa dielen:
- Component driver:
Dizze bestjoerder is besibbe oan it eksterne apparaat op it boerd, en net oan it STM32-apparaat. De komponintbestjoerder leveret spesifike API's oan de eksterne komponinten fan 'e BSP-bestjoerder en kin draachber wêze op elk oar boerd. - BSP bestjoerder:
De BSP bestjoerder makket it mooglik om te keppeljen de komponint bestjoerders oan in spesifyk bestjoer, en soarget foar in set fan brûker-friendly
APIs. De API-nammeregel is BSP_FUNCT_Action ().
Example: BSP_LED_Init(), BSP_LED_On()
BSP is basearre op in modulêre arsjitektuer wêrtroch maklik portearjen op elke hardware mooglik is troch gewoan de routines op leech nivo te ymplementearjen.
Hardwareabstraksjelaach (HAL) en leechlaach (LL)
De STM32CubeWBA HAL en LL binne komplemintêr en dekke in breed oanbod fan tapassingseasken:
- De HAL-bestjoerders biede funksje-oriïntearre heechweardige heech draachbere API's. Se ferbergje de MCU en perifeare kompleksiteit foar de einbrûker.
De HAL-bestjoerders leverje generyske funksje-oriïntearre API's mei meardere eksimplaren, dy't ymplemintaasje fan brûkersapplikaasje ferienfâldigje troch it leverjen fan klearebare prosessen. Bygelyksample, foar de kommunikaasje perifeare apparaten (I2S, UART, en oare), it jout APIs wêrtroch inisjalisearjen en konfigurearjen fan de perifeare, behear fan gegevens oerdracht basearre op polling, ûnderbrekke of DMA proses, en it behanneljen fan kommunikaasje flaters dy't kinne ûntstean ûnder kommunikaasje. De HAL-bestjoerder-API's binne ferdield yn twa kategoryen:- Generyske API's, dy't mienskiplike en generike funksjes leverje oan alle mikrocontrollers fan 'e STM32-searje.
- Extension APIs, dy't spesifike en oanpaste funksjes leverje foar in spesifike famylje of in spesifyk dielnûmer.
- De leechlaach API's leverje API's op leech nivo op registernivo, mei bettere optimalisaasje, mar minder portabiliteit.
- Se fereaskje in djippe kennis fan MCU en perifeare spesifikaasjes.
- De LL-bestjoerders binne ûntworpen om in rappe lichtgewicht saakkundich rjochte laach oan te bieden dy't tichter by de hardware is dan de HAL. Yn tsjinstelling ta de HAL wurde LL API's net foarsjoen foar perifeare apparaten wêr't optimalisearre tagong gjin kaaifunksje is, of foar dyjingen dy't swiere softwarekonfiguraasje of komplekse stapel op boppeste nivo nedich binne.
- De LL-bestjoerders hawwe:
- In set fan funksjes om perifeare haadfunksjes te inisjalisearjen neffens de parameters spesifisearre yn gegevensstruktueren.
- In set fan funksjes foar it foljen fan inisjalisaasjegegevensstruktueren mei de resetwearden dy't oerienkomme mei elk fjild.
- Funksje foar perifeare deinitialisaasje (perifeare registers werombrocht nei har standertwearden).
- In set fan ynline funksjes foar direkte en atoomregister tagong.
- Folsleine ûnôfhinklikens fan HAL en mooglikheid om te brûken yn standalone modus (sûnder HAL-bestjoerders).
- Folsleine dekking fan de stipe perifeare funksjes.
Basis perifeare gebrûk bglamples
Dizze laach omfettet de eksamples boud oer de STM32-perifeare apparaten mei allinich de HAL- en BSP-boarnen.
Nivo 1
Dit nivo is ferdield yn twa sublagen:
- Middleware komponinten
- Examples basearre op de middleware komponinten
Middleware komponinten
- De middleware is in set fan biblioteken dy't Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot, en mbed-crypto.
- Horizontale ynteraksje tusken de komponinten fan dizze laach wurdt dien troch de oantsjutte API's te roppen.
- Fertikale ynteraksje mei de lege-laach bestjoerders wurdt dien troch spesifike callbacks en statyske makros útfierd yn de bibleteek systeem call ynterface.
- De haadfunksjes fan elke middleware-komponint binne as folget:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: In real-time bestjoeringssysteem (RTOS), ûntworpen foar ynbêde systemen mei twa funksjonele modi.
- Mienskiplike modus: Mienskiplike RTOS-funksjonaliteiten lykas threadbehear en syngronisaasje, behear fan ûnthâldpool, berjochten en evenemintehanneling.
- Module modus: In avansearre brûker modus wêrmei it laden en lossen fan prekeppele ThreadX modules op 'e fly fia in module manager.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: In real-time bestjoeringssysteem (RTOS), ûntworpen foar ynbêde systemen mei twa funksjonele modi.
- Bluetooth® Low Energy (BLE): Implementearret it Bluetooth® Low Energy-protokol foar de Link- en Stack-lagen.
- MCUboot (iepenboarne software)
- Zigbee®-protokollen foar de stapel en relatearre klusters.
- Thread® protokol stack en keppeling laach.
- Arm® fertroude firmware-M, TF-M (iepenboarne software): Referinsje ymplemintaasje fan 'e Arm® platfoarm feiligens arsjitektuer (PSA) foar TrustZone® mei de byhearrende feilige tsjinsten.
- mbed-crypto (iepenboarne software): De mbed-crypto-middleware leveret in PSA-kryptografy API-ymplemintaasje.
- STM32 Touch sensing bibleteek: robúste STMTouch kapasityf touch sensing oplossing, stypjende tichtby, touchkey, lineêre en rotearjende touch sensoren. It is basearre op in bewezen prinsipe foar oankeap fan oerflakladingsferfier.
- Microsoft® Azure® RTOS
Examples basearre op de middleware komponinten
Elke middleware-komponint komt mei ien of mear eksamples (ek wol applikaasjes neamd) dy't sjen litte hoe't jo it brûke. Yntegraasje bvampLes dy't ferskate middleware-komponinten brûke, wurde ek levere.
STM32CubeWBA firmware pakket oerview
Stipe apparaten en hardware fan STM32WBA-searje
- STM32Cube biedt in heul draachbere hardwareabstraksjelaach (HAL) boud om in generike arsjitektuer. It lit it prinsipe fan opbou-op-lagen mooglik meitsje, lykas it brûken fan de middleware-laach om har funksjes út te fieren sûnder yngeand te witten wat MCU wurdt brûkt. Dit ferbetteret de werbrûkberens fan 'e biblioteekkoade en soarget foar in maklike portabiliteit nei oare apparaten.
- Derneist, troch syn laache arsjitektuer, biedt de STM32CubeWBA folsleine stipe fan alle STM32WBA-searjes.
- De brûker hat allinne te definiearjen it rjocht makro yn stm32wbaxx.h.
- Tabel 1 toant de makro om te definiearjen ôfhinklik fan it brûkte apparaat fan STM32WBA-searje. Dizze makro moat ek definieare wurde yn 'e kompilerfoarferwurker.
tabel 1. Makro's foar STM32WBA rigeMakro definiearre yn stm32wbaxx.h STM32WBA rige apparaten stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA hat in rike set fan eksamples en applikaasjes op alle nivo's dy't it maklik meitsje om elke HAL-bestjoerder of middleware-komponinten te begripen en te brûken. Dizze eksamples rinne op de STMicroelectronics-boerden neamd yn Tabel 2.
tabel 2. Boards foar STM32WBA rigeBoard Board STM32WBA stipe apparaten NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - It STM32CubeWBA MCU-pakket kin rinne op elke kompatibele hardware. De brûker fernijt gewoan de BSP-bestjoerders om de levere eksamples op it boerd, as de lêste hat deselde hardware funksjes (lykas LED, LCD display, en knoppen).
Firmware pakket oerview
- De STM32CubeWBA pakket oplossing wurdt foarsjoen yn ien inkele zip pakket hawwende de struktuer werjûn yn figuer 3. STM32CubeWBA firmware pakket struktuer.
- Foar elk boerd, in set fan eksamples wurdt foarsjoen fan foarôf ynstelde projekten foar EWARM, MDK-ARM, en STM32CubeIDE toolchains.
- figuer 4. STM32CubeWBA examples oerview toant de projektstruktuer foar de NUCLEO-WBA52CG, NUCLEO-WBA55CG en STM32WBA55G-DK1 boards.
- De eksamples wurde klassifisearre ôfhinklik fan it STM32Cube-nivo wêrop se fan tapassing binne, en se wurde as folget neamd:
- Nivo 0 examples wurde neamd Examples, eksamples_LL, en Examples_MIX. Se brûke respektivelik HAL-bestjoerders, LL-bestjoerders, en in miks fan HAL- en LL-bestjoerders sûnder ienige middleware-komponint.
- Nivo 1 examples wurde neamd Applications. Se jouwe typyske gebrûksgefallen fan elke middleware-komponint. Elke firmware-applikaasje foar in opjûne boerd kin fluch boud wurde troch sjabloanprojekten dy't beskikber binne yn 'e Templ ates en Templates_LL-mappen.
TrustZone® ynskeakele projekten
- TrustZone® ynskeakele Examples nammen befetsje it foarheaksel _TrustZone. De regel wurdt ek tapast foar Applikaasjes (útsein TFM en SBSFU, dy't natuerlik binne foar TrustZone®).
- TrustZone®-ynskeakele Examples en Applikaasjes wurde foarsjoen fan in multiprojekt struktuer gearstald út feilige en net-feilige subprojects lykas presintearre yn figuer 5. Multiproject feilige en ûnfeilige projekt struktuer.
- TrustZone®-ynskeakele projekten wurde ûntwikkele neffens it CMSIS-5-apparaatsjabloan, útwreide om de koptekst foar systeempartitionering op te nimmen file partition_ .h, wa is benammen ferantwurdlik foar de opset fan de feilige attribút unit (SAU), de FPU, en de feilige / net-feilige interrupts opdracht yn de feilige útfiering steat.
- Dizze opset wurdt útfierd yn de feilige CMSIS SystemInit () funksje, dat wurdt neamd by opstarten foar it ynfieren fan de feilige applikaasje main () funksje. Ferwize nei Arm® TrustZone®-M dokumintaasje fan softwarerjochtlinen.
- It firmwarepakket fan it STM32CubeWBA-pakket leveret standertûnthâldferdieling yn 'e partysje _ .h files beskikber ûnder: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T-emplates
- Yn dizze partition files, de SAU is standert útskeakele. Dêrtroch wurdt de IDAU-ûnthâldmapping brûkt foar befeiligingsatribúsje. Ferwize nei figuer Feilige / net-feilige partitionearring mei help fan TrustZone® technology yn de RM0495 referinsje hantlieding.
- As de brûker de SAU ynskeakelt, is in standert konfiguraasje fan SAU-regio's foarôf definieare yn partition files as folget:
- SAU-regio 0: 0x08080000 - 0x081FFFFF (net feilige feilige helte fan flashûnthâld (512 Kbytes))
- SAU-regio 1: 0x0BF88000 - 0x0BF97FFF (net feilich systeemûnthâld)
- SAU-regio 2: 0x0C07E000 - 0x0C07FFFF (feilich, net befeilige opropber)
- SAU-regio 3: 0x20010000 - 0x2001FFFF (net befeilige SRAM2 (64 Kbytes))
- SAU-regio 4: 0x40000000 - 0x4FFFFFFF (net befeilige perifeare yn kaart brocht ûnthâld)
- Om oerien te kommen mei de standert partitionearring, moatte de apparaten fan de STM32WBAxx-searje de folgjende bytes foar brûkersopsje ynsteld hawwe:
- TZEN = 1 (TrustZone®-ynskeakele apparaat)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 fan 128 siden ynterne flash-ûnthâld ynsteld as feilich) Opmerking: It ynterne flash-ûnthâld is standert folslein feilich yn TZEN = 1. De brûkersopsjebytes SECWM1_PSTRT/ SECWM1_PEND moatte ynsteld wurde neffens de applikaasje ûnthâld konfiguraasje (SAU regio, as SAU is ynskeakele). Feilige / net-feilige applikaasjes projektlinker files moatte ek wurde ôfstimd.
- Alle eksamples hawwe deselde struktuer:
- \ Inc map mei alle kopteksten files.
- Src-map mei de boarnekoade.
- \EWARM, \MDK-ARM, en \STM32CubeIDE-mappen dy't it foarôf ynstelde projekt foar elke toolchain befetsje.
- readme.md en readme.html beskriuwe de eksample gedrach en nedige omjouwing om it wurk te meitsjen.
- ioc file wêrtroch brûkers it measte fan 'e firmware kinne iepenje, eksamples binnen STM32CubeMX.
Te begjinnen mei STM32CubeWBA
It útfieren fan in earste HAL eksample
Dizze seksje ferklearret hoe ienfâldich it is om de earste eks út te fierenample binnen STM32CubeWBA. It brûkt as yllustraasje de generaasje fan in ienfâldige LED-skeakel dy't rint op it NUCLEO-WBA52CG-boerd:
- Download it STM32CubeWBA MCU-pakket.
- Unzip it yn in map fan jo kar.
- Soargje derfoar dat jo de pakketstruktuer net wizigje yn figuer 1. It is ek oan te rieden om it pakket te kopiearjen op in lokaasje tichtby jo root-folume (betsjuttend C:\ST of G:\Tests), om't guon IDE's problemen tsjinkomme as it paad lingte is te lang.
It útfieren fan in earste TrustZone®-ynskeakele example
- Foardat it laden en útfieren fan in TrustZone® ynskeakele bvample, it is ferplichte om te lêzen de eksamplês my file foar elke spesifike konfiguraasje, dy't derfoar soarget dat de feiligens ynskeakele is lykas beskreaun yn paragraaf 4.2.1 TrustZone®-ynskeakele projekten (TZEN=1 (brûkersopsjebyte)).
- Blêdzje nei \Projects\NUCLEO-WBA52CG\Examples.
- Iepenje \GPIO, dan \GPIO_IOToggle_TrustZone-mappen.
- Iepenje it projekt mei jo foarkar toolchain. In fluch oerview oer hoe't jo in eks iepenje, bouwe en útfiereample mei de stipe toolchains wurdt jûn hjirûnder.
- Ferbouwe yn sekwinsje alle feilige en net-feilige projekten files en lade de feilige en net-feilige ôfbyldings yn it doelûnthâld.
- Run de eksample: regelmjittich, de feilige applikaasje skeakelet LD2 elke sekonde, en de net-feilige applikaasje skeakelet LD3 twa kear sa fluch. Foar mear details, ferwize nei de readme file fan eksample.
- Om in eks te iepenjen, te bouwen en út te fierenample mei de stipe toolchains, folgje de stappen hjirûnder:
- EWARM:
- Under de eksample map, iepenje \ EWARM submap.
- Start de Project.eww wurkromte
- Bou it xxxxx_S feilige projekt opnij files: [Projekt]>[Alles opnij opbouwe].
- Stel it xxxxx_NS-ûnfeilige projekt yn as aktive applikaasje (rjochtsklik op xxxxx_NS-projekt [Set as aktyf])
- Ferbouwe it xxxxx_NS net-feilige projekt opnij files: [Projekt]>[Alles opnij opbouwe].
- Flash de net-feilige binary mei [Project]>[Download]>[Download aktive applikaasje].
- Stel de xxxxx_S as aktive applikaasje yn (rjochtsklik op xxxxx_S projekt [Set as Active].
- Flash de feilige binary mei de [Download and Debug] (Ctrl+D).
- Run it programma: [Debug]>[Go(F5)]
- MDK-ARM:
- Iepenje de \ MDK-ARM toolchain.
- Iepenje de Multiprojects wurkromte file Project.uvmpw.
- Selektearje it projekt xxxxx_s as aktive applikaasje ([Set as aktyf projekt]).
- Bou it projekt xxxxx_s.
- Selektearje it xxxxx_ns-projekt as aktyf projekt ([Set as aktyf projekt]).
- Bou it xxxxx_ns-projekt.
- Laad de net-befeilige binêr ([F8]). Dit downloadt \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf nei flash-ûnthâld)
- Selektearje it Project_s-projekt as aktyf projekt ([Set as aktyf projekt]).
- Laad de feilige binêr ([F8]). Dit downloads \ MDK-ARM \ xxxxx_s \ Exe \ xxxxx_s.axf nei flash ûnthâld).
- Run de eksample.
- STM32 CubeIDE:
- Iepenje de STM32CubeIDE toolchain.
- Iepenje de Multiprojects wurkromte file .projekt.
- It projekt xxxxx_Secure opnij bouwe.
- It projekt xxxxx_NonSecure opnij opbouwe.
- Starte de applikaasje [Debug as STM32 Cortex-M C/C++] foar it feilige projekt.
- Selektearje yn it finster [Konfiguraasje bewurkje] it paniel [Opstarten] en foegje de ôfbylding en symboalen ta fan it net-feilige projekt.
Belangryk: It net-feilige projekt moat laden wurde foardat it feilige projekt is. - Klik op [Ok].
- Run de eksample op debug perspektyf.
- EWARM:
It útfieren fan in earste TrustZone® útskeakele eksample
- Foardat it laden en útfieren fan in TrustZone® útskeakele eksample, it is ferplichte om te lêzen de eksamplês my file foar elke spesifike konfiguraasje. As d'r gjin spesifike fermeldings binne, soargje derfoar dat it boerdapparaat feiligens útskeakele hat (TZEN = 0 (byte fan brûkersopsje)). Sjoch FAQ foar it dwaan fan de opsjonele regression nei TZEN = 0
- Blêdzje nei \Projects\NUCLEO-WBA52CG\Examples.
- Iepenje \GPIO, dan \GPIO_EXTI-mappen.
- Iepenje it projekt mei jo foarkar toolchain. In fluch oerview oer hoe't jo in eks iepenje, bouwe en útfiereample mei de stipe toolchains wurdt jûn hjirûnder.
- Alles wer opbouwe files en lade jo ôfbylding yn it doelûnthâld.
- Run de eksample: Elke kear as de [USER] drukknop yndrukt wurdt, skeakelet de LD1 LED. Foar mear details, ferwize nei de readme file fan eksample.
- Om in eks te iepenjen, te bouwen en út te fierenample mei de stipe toolchains, folgje de stappen hjirûnder:
- EWARM:
- Under de eksample map, iepenje \ EWARM submap.
- Start de Project.eww wurkromte (de wurkromte namme kin feroarje fan ien example nei in oar).
- Alles wer opbouwe files: [Projekt]>[Alles opnij opbouwe].
- Laad de projektôfbylding: [Project]> [Debug].
- Programma útfiere: [Debug]>[Gean (F5)].
- MDK-ARM:
- Under de eksample map, iepenje de \MDK-ARM submap.
- Start de Project.uvproj wurkromte (de wurkromte namme kin feroarje fan ien example nei in oar).
- Alles wer opbouwe files:[Projekt]>[Alle doelen opnij opbouwe files].
- Laad de projektôfbylding: [Debug]>[Debug-sesje begjinne/stopje].
- Programma útfiere: [Debug]>[Run (F5)].
- STM32 CubeIDE:
- Iepenje de STM32CubeIDE toolchain.
- Klikje op [File]>[Wurkromte wikselje]>[Oar] en blêdzje nei de STM32CubeIDE-wurkromtemap.
- Klikje op [File]>[Ymportearje] , selektearje [Algemien]>[Besteande projekten yn wurkromte], en klik dan op [Folgjende].
- Blêdzje nei de STM32CubeIDE-wurkromtemap en selektearje it projekt.
- Werombouwe alle projekt files: Selektearje it projekt yn it finster [Project Explorer] en klik dan op it menu [Project]>[Build project].
- Run it programma: [Run]>[Debug (F11)]
- EWARM:
It ûntwikkeljen fan in oanpaste applikaasje
Noat: Software moat ynskeakelje de ynstruksje cache (ICACHE) foar in fa in 0 wachtstatus útfiering út flash ûnthâld, en berikke de maksimale prestaasjes en in better enerzjyferbrûk.
STM32CubeMX brûke om in applikaasje te ûntwikkeljen of te aktualisearjen
- Yn it STM32CubeWBA MCU-pakket, hast alle projekten examples wurde generearre mei it STM32CubeMX-ark om it systeem, perifeare apparaten en middleware te inisjalisearjen.
- It direkte gebrûk fan in besteand projekt bglample fan it STM32CubeMX-ark fereasket STM32CubeMX 6.10.0 of heger:
- Nei de ynstallaasje fan STM32CubeMX, iepenje en as it nedich is in foarsteld projekt bywurkje. De ienfâldichste manier om in besteand projekt te iepenjen is troch te dûbelklikken op de *.ioc file sadat STM32CubeMX automatysk it projekt en syn boarne iepenet files.
- STM32CubeMX genereart de inisjalisaasjeboarnekoade fan sokke projekten. De boarnekoade fan 'e haadapplikaasje wurdt befette troch de opmerkingen "USER CODE BEGIN" en "USER CODE END". Yn it gefal dat de IP-seleksje en ynstelling binne wizige, STM32CubeMX fernijt it inisjalisaasjediel fan 'e koade, mar behâldt de boarnekoade fan' e haadapplikaasje.
- Foar it ûntwikkeljen fan in oanpast projekt yn 'e STM32CubeMX, folgje it stap-foar-stap proses:
- Selektearje de STM32 mikrocontroller dy't oerienkomt mei de fereaske set perifeare apparaten.
- Konfigurearje alle fereaske ynbêde software mei in pinout-konfliktoplosser, in helper foar it ynstellen fan klokbeam, in rekkenmasine foar enerzjyferbrûk, en it hulpprogramma dat MCU perifeare konfiguraasje útfiert (lykas GPIO of USART) en middleware-stapels (lykas USB).
- Generearje de inisjalisaasje C-koade basearre op de selektearre konfiguraasje. Dizze koade is klear om te brûken binnen ferskate ûntwikkelingsomjouwings. De brûker koade wurdt hâlden by de folgjende koade generaasje.
- Foar mear ynformaasje oer STM32CubeMX, ferwize nei de brûker hânboek STM32CubeMX foar STM32 konfiguraasje en inisjalisaasje C koade generaasje (UM1718).
- Foar in list fan de beskikbere projekt examples foar STM32CubeWBA, ferwize nei de applikaasjenotysje STM32Cube firmware examples foar STM32WBA rige (AN5929).
Driver applikaasjes
HAL applikaasje
Dizze seksje beskriuwt de stappen dy't nedich binne om in oanpaste HAL-applikaasje te meitsjen mei STM32CubeWBA:
- Meitsje in projekt
- Om in nij projekt te meitsjen, begjin of út it sjabloanprojekt dat foar elk boerd is foarsjoen ûnder \Projects\ \Sjabloanen of fan elk beskikber projekt ûnder \Projects\ \Foarbylden of \Projekten\ \Applikaasjes (wêr ferwiist nei de boerdnamme, lykas STM32CubeWBA).
- It sjabloanprojekt leveret in lege haadloopfunksje. It is lykwols in goed begjinpunt om de STM32CubeWBA-projektynstellingen te begripen. It sjabloan hat de folgjende skaaimerken:
- It befettet de HAL-boarnekoade, CMSIS en BSP-bestjoerders, dy't de minimale set fan komponinten binne dy't nedich binne om in koade op in opjûne boerd te ûntwikkeljen.
- It befettet de ynbegrepen paden foar alle firmware-komponinten.
- It definiearret de stipe STM32WBA-searje-apparaten, wêrtroch de CMSIS- en HAL-bestjoerders goed kinne wurde konfigureare.
- It biedt brûker klear om te brûken files foarôf konfigureare lykas hjirûnder werjûn:
HAL inisjalisearre mei de standert tiidbasis mei Arm® kearn SysTick. SysTick ISR ymplemintearre foar HAL_Delay () doel.
Noat: As jo in besteand projekt kopiearje nei in oare lokaasje, soargje derfoar dat alle opnommen paden wurde bywurke.
- Foegje de nedige middleware ta oan it brûkersprojekt (opsjoneel)
Om de boarne te identifisearjen files wurde tafoege oan it projekt file list, ferwize nei de dokumintaasje foarsjoen foar eltse middleware. Ferwize nei de applikaasjes ûnder \Projects\STM32xxx_yyy\Applications\ (wêr ferwiist nei de middleware-stapel, lykas ThreadX) om te witten hokker boarne files en befetsje paden moatte wurde tafoege. - Konfigurearje de firmware-komponinten
De HAL- en middleware-komponinten biede in set fan konfiguraasje-opsjes foar build-time mei makro's #define ferklearre yn in koptekst file. In sjabloan konfiguraasje file wurdt levere binnen elke komponint, dy't kopiearre wurde moat nei de projektmap (meastentiids de konfiguraasje file wurdt xxx_conf_template.h neamd, it wurd _template moat fuortsmiten wurde by it kopiearjen nei de projektmap). De konfiguraasje file jout genôch ynformaasje om de ynfloed fan elke konfiguraasjeopsje te begripen. Mear detaillearre ynformaasje is beskikber yn 'e dokumintaasje foar elke komponint. - Start de HAL-biblioteek
Nei it springen nei it haadprogramma moat de applikaasjekoade HAL_Init () API neame om de HAL-biblioteek te inisjalisearjen, dy't de folgjende taken útfiert:- Konfiguraasje fan de flash ûnthâld prefetch en SysTick interrupt prioriteit (troch makro definiearre yn st m32wbaxx_hal_conf.h).
- Konfiguraasje fan 'e SysTick om elke millisekonde in ûnderbrekking te generearjen by de SysTick-ûnderbrekkingsprioriteit TICK_INT_PRIO definieare yn stm32wbaxx_hal_conf.h.
- Ynstelle fan NVIC groep prioriteit op 0.
- Call of HAL_MspInit() callback funksje definiearre yn stm32wbaxx_hal_msp.c brûker file om globale hardware-initialisaasjes op leech nivo út te fieren.
- Konfigurearje de systeemklok
De systeemklokkonfiguraasje wurdt dien troch de twa hjirûnder beskreaune API's op te roppen:- HAL_RCC_OscConfig(): dizze API konfigurearret de ynterne en eksterne oscillators. De brûker kiest om ien of alle oscillators te konfigurearjen.
- HAL_RCC_ClockConfig(): dizze API konfigurearret de systeemklokboarne, de wachttiid foar flashgeheugen, en AHB- en APB-prescalers.
- Inisjalisearje de perifeare
- Skriuw earst de perifeare HAL_PPP_MspInit-funksje. Gean as folget:
- Aktivearje de perifeare klok.
- Konfigurearje de perifeare GPIO's.
- Konfigurearje it DMA-kanaal en aktivearje DMA-ûnderbrekking (as nedich).
- Perifeare ûnderbrekking ynskeakelje (as nedich).
- Bewurkje de stm32xxx_it.c om de fereaske interrupt-behannelers (perifeare en DMA) op te roppen as nedich.
- Skriuw proses folsleine callback funksjes, as in perifeare ûnderbrekking of DMA is pland om te brûken.
- Yn brûker main.c file, Inisjalisearje de perifeare handgreepstruktuer en neam dan de funksje HAL_PPP_Init () om it perifeare apparaat te inisjalisearjen.
- Skriuw earst de perifeare HAL_PPP_MspInit-funksje. Gean as folget:
- Untwikkelje in applikaasje
- Op dizze stage, it systeem is klear en de ûntwikkeling fan de brûkersapplikaasjekoade kin begjinne.
- De HAL biedt yntuïtive en klear te brûken API's om it perifeare apparaat te konfigurearjen. It stipet polling, interrupts, en in DMA-programmearringmodel, om oan alle applikaasjeeasken te foldwaan. Foar mear details oer hoe't jo elke perifeare apparaat brûke, ferwize nei de rike eksample set levere yn it STM32CubeWBA MCU-pakket.
Foarsichtigens: Yn 'e standert HAL-ymplemintaasje wurdt de SysTick-timer brûkt as tiidbasis: it genereart ûnderbrekkingen op reguliere tiidintervallen. As HAL_Delay () wurdt neamd út de perifeare ISR proses, soargje derfoar dat de SysTick ûnderbrekking hat in hegere prioriteit (numerike leger) as de perifeare ûnderbrekking. Oars wurdt it ISR-proses fan 'e beller blokkearre. Funksjes dy't tiidbasiskonfiguraasjes beynfloedzje, wurde ferklearre as __swak om oerskriuwen mooglik te meitsjen yn gefal fan oare ymplemintaasjes yn 'e brûker file (mei in timer foar algemiene doelen, bygelyksample, of in oare tiid boarne). Foar mear details, ferwize nei de HAL_TimeBase example.
LL applikaasje
Dizze seksje beskriuwt de stappen dy't nedich binne om in oanpaste LL-applikaasje te meitsjen mei STM32CubeWBA.
- Meitsje in projekt
- Om in nij projekt te meitsjen, begjin dan fanút it Templates_LL-projekt dat foar elk boerd is levere ûnder \Projects\ \Templates_LL, of fan elk beskikber projekt ûnder \Projects\ \bglamples_LL ( ferwiist nei de boerdnamme, lykas NUCLEO-WBA32CG).
- It sjabloanprojekt jout in lege haadloopfunksje, dat is in goed begjinpunt om de projektynstellingen foar STM32CubeWBA te begripen. De wichtichste skaaimerken fan sjabloanen binne de folgjende:
- It befettet de boarne koades fan de LL- en CMSIS-bestjoerders, dy't de minimale set fan komponinten binne dy't nedich binne om koade op in opjûne boerd te ûntwikkeljen.
- It befettet de ynbegrepen paden foar alle fereaske firmware-komponinten.
- It selekteart it stipe STM32WBA-searjeapparaat en lit de juste konfiguraasje fan 'e CMSIS- en LL-bestjoerders mooglik meitsje.
- It biedt brûker klear om te brûken files dy't as folget foarôf ynsteld binne:
◦ main.h: LED en USER_BUTTON definysje abstraksje laach.
◦ main.c: Systeemklokkonfiguraasje foar maksimale frekwinsje.
- Portje in besteand projekt nei in oar bestjoer
Om in besteand projekt op in oar doelboerd te stypjen, begjin fan it Templates_LL-projekt dat foar elk boerd beskikber is en beskikber ûnder \Projects\ \Templates_LL.- Selektearje in LL eksample: Om it boerd te finen wêrop LL examples wurde ynset, ferwize nei de list fan LL examples STM32CubeProjectsList.html.
- Port de LL example:
- Kopiearje / plakke de map Templates_LL - om de earste boarne te hâlden - of aktualisearje it besteande Templates_LL-projekt direkt.
- Dan bestiet porting benammen yn it ferfangen fan Templates_LL files troch de eksamples_LL rjochte projekt.
- Hâld alle board spesifike dielen. Om redenen fan dúdlikens, board spesifike dielen wurde markearre mei spesifike tags:
- Sa binne de wichtichste portingstappen de folgjende:
- Ferfang de stm32wbaxx_it.h file
- Ferfang de stm32wbaxx_it.c file
- Ferfange de main.h file en aktualisearje it: Hâld de LED- en brûkersknop-definysje fan it LL-sjabloan ûnder BOARD SPESIFIEKE KONFIGURASJE tags.
- Ferfange de main.c file en update it:
- Hâld de klokkonfiguraasje fan de SystemClock_Config() LL-sjabloanfunksje ûnder BOARD SPESIFIEKE KONFIGURASJE tags.
- Ofhinklik fan de LED definysje, ferfange eltse LDx foarkommen mei in oare LDy beskikber yn de main.h file.
- Mei dizze oanpassings, de eksample rint no op it doeleboerd
Feiligens applikaasjes
Dit pakket wurdt levere mei befeiligingsapplikaasjes.
SBSFU applikaasjes
- SBSFU leveret in Root of Trust-oplossing, ynklusyf Secure Boot en Secure Firmware Update-funksjonaliteiten (basearre op MCUboot).
- De oplossing wurdt brûkt foar it útfieren fan de applikaasje.
- De oplossing jout in eksample fan in feilige tsjinst (GPIO toggle), dat is isolearre fan de net-feilige applikaasje. De net-feilige applikaasje by runtime kin dizze oplossing noch brûke.
TFM applikaasjes
De TFM leveret in Root of Trust-oplossing ynklusyf Secure Boot en Secure Firmware Update-funksjonaliteiten
(basearre op MCUboot). De oplossing wurdt brûkt foar it útfieren fan de applikaasje. De oplossing biedt TFM feilige tsjinsten dy't isolearre binne fan 'e net-feilige applikaasje. De net-feilige applikaasje by runtime kin dizze oplossing noch brûke.
RF applikaasjes
De RF-applikaasje wurdt beskreaun yn dizze applikaasjenotysje: Draadloze applikaasjes bouwe mei mikrocontrollers fan STM32WBA-searje (AN5928).
STM32CubeWBA release updates krije
De lêste releases en patches fan STM32CubeWBA MCU-pakket binne te krijen fan STM32WBA Series. Se kinne wurde ophelle fan de CHECK FOR UPDATE knop yn STM32CubeMX. Foar mear details, ferwize nei seksje 3 fan de brûker hânboek STM32CubeMX foar STM32 konfiguraasje en inisjalisaasje C koade generaasje (UM1718).
FAQ
- Wannear moat ik HAL brûke ynstee fan LL-bestjoerders?
- HAL-bestjoerders biede API's op heech nivo en funksje-oriïntearre, mei in heech nivo fan portabiliteit. Produkt of perifeare kompleksiteit is ferburgen foar ein brûkers.
- LL-bestjoerders biede API's op leechlaach registernivo, mei bettere optimalisaasje, mar minder draachber. Se fereaskje yngeande kennis fan produkt- as IP-spesifikaasjes.
- Kin ik HAL- en LL-bestjoerders tegearre brûke? As ik kin, wat binne de beheiningen?
- It is mooglik om sawol HAL- as LL-bestjoerders te brûken. Brûk de HAL foar de IP-initialisaasjefaze en beheare dan de I/O-operaasjes mei LL-bestjoerders.
- It grutte ferskil tusken HAL en LL is dat HAL-bestjoerders nedich binne om hângrepen te meitsjen en te brûken foar operaasjebehear, wylst LL-bestjoerders direkt op perifeare registers wurkje. De eksamples_MIX eksample yllustrearret hoe te mingen HAL en LL.
- Hoe binne LL-initialisaasje-API's ynskeakele?
- De definysje fan LL-initialisaasje-API's en byhearrende boarnen (struktueren, letterliken en prototypen) wurdt betingst troch de USE_FULL_LL_DRIVER-kompilaasjeskeakel.
- Om LL-initialisaasje-API's te kinnen brûke, foegje dizze skeakel ta yn 'e toolchain-kompiler-preprocessor.
- Hoe kin STM32CubeMX koade generearje basearre op ynbêde software?
STM32CubeMX hat ynboude kennis fan STM32 microcontrollers, ynklusyf harren perifeare apparaten en software wêrmei it jaan fan in grafyske foarstelling oan de brûker en generearje *.h of *.c files basearre op brûker konfiguraasje.
WICHTICH NOTICE - LÊS FERGESE
- STMicroelectronics NV en har dochterûndernimmingen ("ST") behâlde it rjocht foar om feroarings, korreksjes, ferbetterings, oanpassings en ferbetterings oan ST-produkten en / of oan dit dokumint op elk momint sûnder notice te meitsjen. Keapers moatte de lêste relevante ynformaasje krije oer ST-produkten foardat se oarders pleatse. ST-produkten wurde ferkocht yn oerienstimming mei ST's ferkeapbetingsten en -betingsten yn plak op it momint fan bestellingserkenning.
- Keapers binne allinich ferantwurdlik foar de kar, seleksje en gebrûk fan ST-produkten en ST nimt gjin oanspraaklikens oan foar help by oanfraach of it ûntwerp fan produkten fan keapers.
- Gjin lisinsje, útdruklik of ymplisearre, foar in yntellektueel eigendomsrjocht wurdt hjiryn ferliend troch ST.
- Wederferkeap fan ST-produkten mei bepalingen dy't ferskille fan 'e ynformaasje dy't hjiryn oanjûn binne, sil gjin garânsje ferliend troch ST foar sa'n produkt ûnjildich meitsje.
- ST en it ST-logo binne hannelsmerken fan ST. Foar oanfoljende ynformaasje oer ST hannelsmerken, ferwize nei www.st.com/trademarks. Alle oare nammen fan produkten of tsjinsten binne it eigendom fan har respektive eigners.
- Ynformaasje yn dit dokumint ferfangt en ferfangt ynformaasje earder levere yn alle eardere ferzjes fan dit dokumint.
- © 2023 STMicroelectronics - Alle rjochten foarbehâlden
Dokuminten / Resources
![]() |
STMicroelectronics STM32WBA Series Getting Started [pdf] Brûkershânlieding STM32WBA Series Om te begjinnen, te begjinnen, te begjinnen |