Serie STMicroelectronics STM32WBA Introduzione
Informazione di u produttu
Specificazioni:
- Nome di u produttu: Paquet MCU STM32CubeWBA
- Produttore: STMicroelectronics
- Cumpatibilità: Microcontrollers di a serie STM32WBA
- Licenza: Licenza BSD open-source
Istruzzioni per l'usu di u produttu
Caratteristiche principali di u pacchettu MCU STM32CubeWBA:
U Pacchettu MCU STM32CubeWBA furnisce tutti i cumpunenti software integrati necessarii per u sviluppu di applicazioni nantu à i microcontrollers di a serie STM32WBA. Hè altamente portable in a serie STM32 è vene cù API HAL è LL, esamples, è cumpunenti middleware.
L'architettura finitaview:
L'architettura di u Pacchettu MCU STM32CubeWBA hè custituita da trè livelli - Applicazioni, Biblioteche è cumpunenti basati in protokolli, Livellu di astrazione di Hardware, Driver BSP, Driver Core è API Low-layer.
FAQ
- Cosa hè inclusu in u pacchettu MCU STM32CubeWBA?
U pacchettu include API di bassa capa (LL) è di astrazione di hardware (HAL), esamples, appiicazioni, cumpunenti middleware cum'è FileX/LevelX, NetX Duo, biblioteche mbed-crypto, è più. - U Pacchettu MCU STM32CubeWBA hè compatibile cù u generatore di codice STM32CubeMX?
Iè, u pacchettu hè cumplettamente cumpatibile cù u generatore di codice STM32CubeMX per generà codice di inizializazione.
Introduzione
- STM32Cube hè una iniziativa originale di STMicroelectronics per migliurà significativamente a produtividade di u designer riducendu u sforzu di sviluppu, u tempu è u costu. STM32Cube copre tutta a cartera STM32.
STM32Cube include:- Un inseme di strumenti di sviluppu di software user-friendly per copre u sviluppu di u prugettu da a cuncepimentu à a realizazione, trà quali sò:
- STM32CubeMX, un strumentu di cunfigurazione di software graficu chì permette a generazione automatica di codice di inizializazione C cù maghi grafichi
- STM32CubeIDE, un strumentu di sviluppu all-in-one cù cunfigurazione periferica, generazione di codice, compilazione di codice è funzioni di debug
- STM32CubeCLT, un set di strumenti di sviluppu in linea di cummanda all-in-one cù compilazione di codice, prugrammazione di bordu è funzioni di debug
- STM32CubeProgrammer (STM32CubeProg), un strumentu di prugrammazione dispunibule in versione grafica è di linea di cumanda.
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), putenti strumenti di monitoraghju per sintonizà u cumpurtamentu è e prestazioni di l'applicazioni STM32 in tempu reale.
- Pacchetti MCU è MPU STM32Cube, piattaforme complete di software integrati specifiche per ogni serie di microcontroller è microprocessori (cum'è STM32CubeWBA per a serie STM32WBA), chì includenu:
- Layer di astrazione hardware STM32Cube (HAL), assicurendu a portabilità massima in tutta a cartera STM32
- STM32Cube API low-layer, assicurendu u megliu rendimentu è impronte cù un altu gradu di cuntrollu di l'utilizatori nantu à u hardware
- Un inseme consistente di cumpunenti middleware cum'è ThreadX, FileX / LevelX, NetX Duo, USBX, libreria touch, mbed-crypto, TFM, MCUboot, OpenBL, è STM32_WPAN (cumpresu Bluetooth® Low Energy profiles è servizii, Mesh, Zigbee®, OpenThread, Matter, è 802.15.4 MAC layer)
- Tutte l'utilità di u software integratu cù setti cumpleti di periferiche è applicative examples
- Pacchetti di espansione STM32Cube, chì cuntenenu cumpunenti di software integrati chì cumplementanu e funziunalità di i Pacchetti MCU è MPU STM32Cube cù:
- Estensioni di middleware è strati applicativi
- Examples in esecuzione nantu à qualchi schede di sviluppu STMicroelectronics specifiche
- Un inseme di strumenti di sviluppu di software user-friendly per copre u sviluppu di u prugettu da a cuncepimentu à a realizazione, trà quali sò:
- Stu manuale d'utilizatore descrive cumu principià cù u pacchettu MCU STM32CubeWBA.
- A Sezione 2 Funzioni principali di STM32CubeWBA descrive e caratteristiche principali di u Pacchettu MCU STM32CubeWBA.
- Sezione 3 STM32CubeWBA architettura sopraview furnisce un sopraview di l'architettura STM32CubeWBA è a struttura di u pacchettu MCU.
infurmazione generale
U pacchettu MCU STM32CubeWBA funziona cù microcontrollers STM32 32-bit basati nantu à u processore Arm® Cortex®-M33 cù Arm® TrustZone® è FPU.
Nota: Arm è TrustZone sò marchi registrati di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò.
STM32CubeWBA caratteristiche principali
- U pacchettu MCU STM32CubeWBA funziona cù microcontrollers STM32 32-bit basati nantu à u processore Arm® Cortex®-M33 cù TrustZone® è FPU.
- U STM32CubeWBA riunisce, in un unicu pacchettu, tutti i cumpunenti di software integrati generici necessarii per sviluppà una applicazione per i microcontrollers di a serie STM32WBA. In cunfurmità cù l'iniziativa STM32Cube, stu settore di cumpunenti hè altamente portatile, micca solu in i microcontrollers di a serie STM32WBA, ma ancu in altre serie STM32.
- U STM32CubeWBA hè cumplettamente cumpatibile cù u generatore di codice STM32CubeMX, per generà codice di inizializazione. U pacchettu include API di bassa strata (LL) è di astrazione di hardware (HAL) chì coprenu l'hardware di u microcontroller, inseme cù un vastu set di ex.ampi funzionanti su schede STMicroelectronics. L'API HAL è LL sò dispunibuli in una licenza BSD open-source per a comodità di l'utilizatori.
- U pacchettu MCU STM32CubeWBA cuntene ancu un cumpunente di middleware cumpletu custruitu intornu à u middleware Microsoft® Azure® RTOS, è altri stack interni è open-source, cù l'ex currispondente.amples.
- Vennu cun termini di licenza gratuiti è facili d'utilizatore:
- Azure® RTOS integratu è cumpletu: Azure® RTOS ThreadX
- Implementazione CMSIS-RTOS cù Azure® RTOS ThreadX
- Pile USB Host è Dispositivi chì venenu cù parechje classi: Azure® RTOS USBX
- Avanzatu file sistema è strata di traduzzione flash: FileX / Livellu X
- Pila di rete di qualità industriale: ottimizzata per u rendiment chì vene cù parechji protokolli IoT: NetX Duo
- OpenBootloader
- Soluzione di integrazione Arm® Trusted Firmware-M (TF‑M).
- librerie mbed-crypto
- Biblioteca ST Netwok
- Soluzione di libreria STMTouch touch sensing
- Diverse applicazioni è dimostrazioni chì implementanu tutti questi cumpunenti di middleware sò ancu furniti in u Pacchettu MCU STM32CubeWBA.
- U schema di cumpunenti di u pacchettu STM32CubeWBA MCU hè illustratu in Figura 1. Cumpunenti di u pacchettu STM32CubeWBA MCU.
L'architettura STM32CubeWBA hè finitaview
A suluzione di pacchettu STM32CubeWBA MCU hè custruita intornu à trè livelli indipendenti chì interagiscenu facilmente cum'è descrittu in Figura 2. Architettura di pacchettu STM32CubeWBA MCU.
Livellu 0
Stu livellu hè divisu in trè sublayers:
- Paquet di supportu di bordu (BSP).
- Livello di astrazione hardware (HAL):
- Drivers periferichi HAL
- Drivers di bassa strata
- Usu perifericu di basa examples.
Paquet di supportu di bordu (BSP)
Questa capa offre un inseme di API relative à i cumpunenti hardware in i schede hardware (cum'è LCD, Audio, \ microSD ™ è driver MEMS). Hè cumpostu di dui parti:
- Driver di cumpunenti:
Stu driver hè in relazione cù u dispusitivu esternu nantu à u bordu, è micca à u dispusitivu STM32. U driver di cumpunenti furnisce API specifiche à i cumpunenti esterni di u driver BSP è puderia esse portabile nantu à qualsiasi altra scheda. - driver BSP:
U driver BSP permette di ligà i drivers di cumpunenti à una scheda specifica, è furnisce un set di user-friendly
API. A regula di nomi API hè BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP hè basatu annantu à una architettura modulare chì permette un portu faciule in qualsiasi hardware solu implementendu e rutine di livellu bassu.
Stratu di astrazione di hardware (HAL) è stratu bassu (LL)
L'STM32CubeWBA HAL è LL sò cumplementarii è copre una larga gamma di esigenze di applicazione:
- I driver HAL offrenu API altamente portatili orientati à e funzioni di altu livellu. Ocultanu u MCU è a cumplessità periferica à l'utilizatori finali.
I driver HAL furniscenu API generiche multi-istanze orientate à e funzioni, chì simplificanu l'implementazione di l'applicazioni d'utilizatori fornendu prucessi pronti per l'usu. Per esample, per i periferichi di cumunicazione (I2S, UART, è altri), furnisce API chì permettenu l'inizializazione è a cunfigurazione di u perifericu, a gestione di u trasferimentu di dati basatu nantu à u sondaghju, l'interruzzione o u prucessu DMA, è a gestione di l'errori di cumunicazione chì ponu esse durante a cumunicazione. L'API di driver HAL sò divisi in duie categorie:- API generiche, chì furniscenu funzioni cumuni è generichi à tutti i microcontrollers di a serie STM32.
- API di estensione, chì furnisce funzioni specifiche è persunalizati per una famiglia specifica o un numeru di parte specificu.
- L'API di livellu bassu furnisce API di livellu bassu à u livellu di u registru, cù una ottimisazione megliu ma menu portabilità.
- Hanu bisognu di una cunniscenza prufonda di MCU è specificazioni periferiche.
- I cunduttori LL sò pensati per offre una strata rapida, leggera, orientata à l'espertu, chì hè più vicinu à u hardware cà l'HAL. A cuntrariu di l'HAL, l'API LL ùn sò micca furnite per periferiche induve l'accessu ottimizzatu ùn hè micca una funzione chjave, o per quelli chì necessitanu una cunfigurazione di software pesante o una pila cumplessa di livellu superiore.
- I drivers LL funzionanu:
- Un inseme di funzioni per inizializà e funzioni principali periferiche secondu i paràmetri specificati in strutture di dati.
- Un inseme di funzioni per riempie strutture di dati di inizializazione cù i valori di reset currispondenti à ogni campu.
- Funzione per a deinizializazione periferica (registri periferichi ristabiliti à i so valori predeterminati).
- Un inseme di funzioni inline per l'accessu direttu è atomicu à u registru.
- Piena indipendenza da HAL è capacità per esse aduprata in modu standalone (senza driver HAL).
- Copertura cumpleta di e funzioni periferiche supportate.
Usu perifericu di basa examples
Stu stratu include l'exampi custruiti nantu à i periferici STM32 utilizendu solu e risorse HAL è BSP.
Livellu 1
Stu livellu hè divisu in dui sublayers:
- cumpunenti middleware
- Exampi basati nantu à i cumpunenti middleware
cumpunenti middleware
- U middleware hè un inseme di biblioteche chì copre Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot, è mbed-crypto.
- L'interazzione horizontale trà i cumpunenti di sta strata hè fatta chjamendu l'API presentati.
- L'interazzione verticale cù i driver di bassa capa hè fatta per mezu di callbacks specifichi è macros statici implementati in l'interfaccia di chjama di u sistema di biblioteca.
- E caratteristiche principali di ogni cumpunente di middleware sò i seguenti:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Un sistema operatore in tempu reale (RTOS), cuncepitu per sistemi integrati cù dui modi funziunali.
- Modu cumuni: Funzionalità RTOS cumuni cum'è a gestione di fili è a sincronizazione, a gestione di pool di memoria, a messageria è a gestione di l'avvenimenti.
- Modu di modulu: Un modu d'utilizatore avanzatu chì permette di carica è scaricamentu di i moduli ThreadX prelinkati nantu à a mosca attraversu un gestore di moduli.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Un sistema operatore in tempu reale (RTOS), cuncepitu per sistemi integrati cù dui modi funziunali.
- Bluetooth® Low Energy (BLE): Implementa u protocolu Bluetooth® Low Energy per i strati Link è Stack.
- MCUboot (software open-source)
- Protokolli Zigbee® per a pila è i clusters rilativi.
- Stack di protocollo Thread® è strato di ligame.
- Arm® trusted firmware-M, TF-M (software open-source): Implementazione di riferimentu di l'architettura di sicurezza di a piattaforma Arm® (PSA) per TrustZone® cù i servizii sicuri associati.
- mbed-crypto (software open-source): u middleware mbed-crypto furnisce una implementazione di l'API di criptografia PSA.
- STM32 Libreria Touch Sensing: Robusta soluzione STMTouch capacitiva touch sensing, chì sustene sensori di prossimità, touchkey, lineari è rotativi. Hè basatu annantu à un principiu di acquisizione di trasferimentu di carica di superficia pruvata.
- Microsoft® Azure® RTOS
Exampi basati nantu à i cumpunenti middleware
Ogni cumpunente middleware vene cun unu o più examples (chiamati ancu applicazioni) chì mostranu cumu aduprà. Integrazione exampI le chì utilizanu parechji cumpunenti middleware sò furniti ancu.
STM32CubeWBA pacchettu firmware sopraview
Dispositivi è hardware di a serie STM32WBA supportati
- STM32Cube offre una strata di astrazione hardware altamente portable (HAL) custruita intornu à una architettura generica. Permette à u principiu di custruzzione di strati, cum'è l'usu di a strata di middleware per implementà e so funzioni senza sapè in profondità ciò chì MCU hè utilizatu. Questu migliurà a riutilizazione di u codice di a biblioteca è assicura una portabilità faciule à altri dispositi.
- Inoltre, grazie à a so architettura stratificata, u STM32CubeWBA offre un supportu tutale di tutte e serie STM32WBA.
- L'utilizatore hà solu à definisce a macro dritta in stm32wbaxx.h.
- A Tabella 1 mostra a macro da definisce secondu u dispositivu di a serie STM32WBA utilizatu. Questa macro deve ancu esse definita in u preprocessore di compilatore.
Table 1. Macros per a serie STM32WBAMacro definitu in stm32wbaxx.h Dispositivi di a serie STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA presenta un riccu inseme di example è applicazioni à tutti i livelli facenu fàciule per capiscenu è aduprà qualsiasi cumpunenti di driver HAL o middleware. Questi exampi file funzionanu nantu à e schede STMicroelectronics elencate in a Tabella 2.
Table 2. Boards per a serie STM32WBACunsigliu Bordu STM32WBA dispusitivi supportatu NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - U pacchettu STM32CubeWBA MCU pò eseguisce nantu à qualsiasi hardware compatible. L'utilizatore solu aghjurnà i driver BSP per portà l'examples nantu à u bordu, se l'ultime hà e stesse caratteristiche hardware (cum'è LED, display LCD, è buttoni).
U pacchettu di firmware hè finituview
- A suluzione di pacchettu STM32CubeWBA hè furnita in un solu pacchettu zip chì hà a struttura mostrata in Figura 3. Struttura di pacchettu di firmware STM32CubeWBA.
- Per ogni bordu, un inseme di examples hè furnitu cù prughjetti preconfigurati per e catene di strumenti EWARM, MDK-ARM è STM32CubeIDE.
- Figura 4. STM32CubeWBA examples overview mostra a struttura di u prugettu per e schede NUCLEO-WBA52CG, NUCLEO-WBA55CG è STM32WBA55G-DK1.
- L'exampless sò classificate secondu u livellu STM32Cube à quale si applicanu, è sò chjamati cusì:
- Livellu 0 exampi sò chjamati Examples, Examples_LL, è Examples_MIX. Adupranu rispettivamente driver HAL, driver LL, è una mistura di driver HAL è LL senza alcun cumpunente di middleware.
- Livellu 1 exampi sò chjamati Applicazioni. Forniscenu casi d'usu tipici di ogni cumpunente di middleware. Qualchese applicazione di firmware per una certa scheda pò esse rapidamente custruita grazia à i prughjetti di mudelli dispunibuli in i repertorii Templ ates è Templates_LL.
Prughjetti abilitati TrustZone®
- TrustZone® attivatu Exampi nomi cuntenenu u prefissu _TrustZone. A regula hè applicata ancu per Applicazioni (eccettu per TFM è SBSFU, chì sò nativamente per TrustZone®).
- TrustZone®-attivatu Examples è Applicazioni sò furnite cù una struttura multiproject cumpostu di subprojects sicuru è nonsecure cum'è prisintatu in Figura 5. Multiproject struttura di prughjettu sicuru è nonsecure.
- I prughjetti abilitati per TrustZone® sò sviluppati secondu u mudellu di u dispositivu CMSIS-5, allargatu per include l'intestazione di partizionamentu di u sistema. file partition_ .h, chì hè principarmenti rispunsevuli di a stallazione di l'unità di attributu sicuru (SAU), a FPU, è l'assignazione di l'interruzzione sicura / nonsecure in u statu di esecutivu sicuru.
- Questa cunfigurazione hè realizata in a funzione sicura CMSIS SystemInit(), chì hè chjamata à l'iniziu prima di entre in a funzione main() di l'applicazione sicura. Consultate a documentazione Arm® TrustZone®-M di e linee guida di u software.
- U pacchettu di firmware di u pacchettu STM32CubeWBA furnisce un particionamentu di memoria predeterminatu in a partizione _ .h files dispunibuli sottu: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- In queste partizioni files, u SAU hè disattivatu per difettu. In cunseguenza, u mapping di memoria IDAU hè utilizatu per l'attribuzione di sicurità. Fate riferimentu à a figura Partizione sicura / micca sicura cù a tecnulugia TrustZone® in u manuale di riferimentu RM0495.
- Se l'utente abilita a SAU, una configurazione di regioni SAU predefinita hè predefinita in a partizione files cusì:
- Regione SAU 0: 0x08080000 - 0x081FFFFF (a metà sicura non sicura di memoria flash (512 Kbyte))
- Regione SAU 1: 0x0BF88000 - 0x0BF97FFF (memoria di sistema micca sicura)
- Regione SAU 2: 0x0C07E000 - 0x0C07FFFF (secure, non-secure callable)
- Regione SAU 3: 0x20010000 - 0x2001FFFF (SRAM2 non-secure (64 Kbytes))
- Regione SAU 4: 0x40000000 - 0x4FFFFFFF (memoria mappata periferica non sicura)
- Per currisponde à u particionamentu predeterminatu, i dispositi di a serie STM32WBAxx anu da avè i seguenti byte di l'opzione d'utilizatore:
- TZEN = 1 (dispositivo abilitatu per TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 fora di 128 pagine di memoria flash interna stabilita cum'è sicura) Nota: A memoria flash interna hè cumplettamente sicura per difettu in TZEN = 1. L'opzione di l'utilizatori byte SECWM1_PSTRT/ SECWM1_PEND deve esse stabilitu secondu l'applicazione. configurazione di memoria (regioni SAU, se SAU hè attivatu). Linker di prughjettu di l'applicazioni sicure / nonsecure files deve ancu esse allinatu.
- Tutti exampli sò a listessa struttura:
- \Inc cartulare chì cuntene tutte l'intestazione files.
- Src cartulare chì cuntene u codice fonte.
- \EWARM, \MDK-ARM, è \STM32CubeIDE cartulare chì cuntenenu u prughjettu preconfiguratu per ogni toolchain.
- readme.md è readme.html chì descrive l'exampu cumpurtamentu è l'ambiente necessariu per fà u travagliu.
- ioc file chì permette à l'utilizatori apre a maiò parte di u firmware examples in STM32CubeMX.
Cumincià cù STM32CubeWBA
Eseguisce un primu HAL example
Sta rùbbrica spiega quantu hè simplice per eseguisce u primu example in STM32CubeWBA. Aduprà cum'è illustrazione a generazione di un semplice toggle LED chì funziona nantu à a scheda NUCLEO-WBA52CG:
- Scaricate u pacchettu MCU STM32CubeWBA.
- Unzip lu in un cartulare di a vostra scelta.
- Assicuratevi micca di mudificà a struttura di u pacchettu mostrata in a Figura 1. Hè ricumandemu ancu di copià u pacchettu in un locu vicinu à u vostru voluminu radicali (vale à dì C:\ST o G:\Tests), cum'è certi IDE scontranu prublemi quandu u percorsu. a lunghezza hè troppu longa.
Esecuzione di una prima TrustZone® attivata example
- Prima di carica è eseguisce un TrustZone® attivatu example, hè ubligatoriu di leghje l'exampleggimi file per ogni cunfigurazione specifica, chì assicura chì a sicurità hè attivata cum'è descritta in a Sezione 4.2.1 Prughjetti abilitati TrustZone® (TZEN = 1 (byte d'opzione d'utilizatore)).
- Naviga à \Projects\NUCLEO-WBA52CG\Examples.
- Aprite i cartelli \GPIO, poi \GPIO_IOToggle_TrustZone.
- Apertura u prughjettu cù a vostra catena di strumenti preferita. Un rapidu sopraview nantu à cumu apre, custruisce è eseguisce un example cù i toolchains supportati hè datu quì sottu.
- Ricustruisce in sequenza tutti i prughjetti sicuri è micca sicuri files è carica l'imaghjini sicuri è micca sicuri in a memoria di destinazione.
- Corri l'example: regularmente, l'applicazione sicura cambia LD2 ogni siconda, è l'applicazione non sicura cambia LD3 duie volte più veloce. Per più dettagli, riferite à u readme file di l'example.
- Per apre, custruisce è eseguisce un example cù i toolchains supportati, seguitate i passi sottu:
- EWARM:
- Sottu l'example, apre a sottocartella \EWARM.
- Lanciate u spaziu di travagliu Project.eww
- Ricustruisce u prughjettu sicuru xxxxx_S files: [Prughjettu]> [Ricustruisce tuttu].
- Definite u prughjettu nonsecure xxxxx_NS cum'è applicazione attiva (cliccate u dirittu nantu à u prughjettu xxxxx_NS [Set as Active])
- Ricustruisce u prughjettu nonsecure xxxxx_NS files: [Prughjettu]> [Ricustruisce tuttu].
- Flash u binariu nonsecure cù [Project]>[Download]>[Scarica l'applicazione attiva].
- Definite l'applicazione xxxxx_S cum'è attiva (cliccate u dirittu nantu à u prughjettu xxxxx_S [Set as Active].
- Flash u binariu sicuru cù u [Download and Debug] (Ctrl + D).
- Eseguite u prugramma: [Debug]> [Vai (F5)]
- MDK-ARM:
- Aprite a catena di strumenti \MDK-ARM.
- Aprite u spaziu di travagliu Multiprojects file Prughjettu.uvmpw.
- Selezziunate u prughjettu xxxxx_s cum'è applicazione attiva ([Set as Active Project]).
- Custruite u prughjettu xxxxx_s.
- Selezziunate u prughjettu xxxxx_ns cum'è prughjettu attivu ([Set as Active Project]).
- Custruite u prughjettu xxxxx_ns.
- Caricate u binariu micca sicuru ([F8]). Questu scarica \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf in memoria flash)
- Selezziunate u prughjettu Project_s cum'è prughjettu attivu ([Set as Active Project]).
- Caricà u binariu sicuru ([F8]). Questu scarica \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf in memoria flash).
- Corri l'example.
- STM32CubeIDE:
- Aprite a catena di strumenti STM32CubeIDE.
- Aprite u spaziu di travagliu Multiprojects file .prughjettu.
- Ricustruisce u prughjettu xxxxx_Secure.
- Ricustruisce u prughjettu xxxxx_NonSecure.
- Lanciate l'applicazione [Debug as STM32 Cortex-M C/C++] per u prughjettu sicuru.
- In a finestra [Edita a cunfigurazione], selezziunate u pannellu [Startup], è aghjunghje caricate l'imaghjini è i simboli di u prughjettu micca sicuru.
Impurtante: U prughjettu nonsecure deve esse caricatu prima di u prughjettu sicuru. - Cliccate [Ok].
- Corri l'example nantu à a perspettiva di debug.
- EWARM:
Esecuzione di una prima TrustZone® disabilitata example
- Prima di carica è eseguisce un TrustZone® disattivatu example, hè ubligatoriu di leghje l'exampleggimi file per ogni cunfigurazione specifica. Se ùn ci sò micca menzioni specifiche, assicuratevi chì u dispositivu di bordu hà a sicurità disattivata (TZEN = 0 (byte d'opzione d'utilizatore)). Vede FAQ per fà a regressione opzionale à TZEN = 0
- Naviga à \Projects\NUCLEO-WBA52CG\Examples.
- Aprite i cartelli \GPIO, poi \GPIO_EXTI.
- Apertura u prughjettu cù a vostra catena di strumenti preferita. Un rapidu sopraview nantu à cumu apre, custruisce è eseguisce un example cù i toolchains supportati hè datu quì sottu.
- Ricostruisce tuttu files è carica a vostra maghjina in a memoria di destinazione.
- Corri l'example: Ogni volta chì u buttone [USER] hè premutu, u LED LD1 cambia. Per più dettagli, riferite à u readme file di l'example.
- Per apre, custruisce è eseguisce un example cù i toolchains supportati, seguitate i passi sottu:
- EWARM:
- Sottu l'example, apre a sottocartella \EWARM.
- Lanciate u spaziu di travagliu Project.eww (u nome di u spaziu di travagliu pò cambià da un example à un altru).
- Ricostruisce tuttu files: [Prughjettu]> [Ricustruisce tuttu].
- Caricate l'imaghjini di u prughjettu: [Project]> [Debug].
- Eseguite u prugramma: [Debug]> [Vai (F5)].
- MDK-ARM:
- Sottu l'exampu cartulare, apre u sottucartulariu \MDK-ARM.
- Lanciate u spaziu di travagliu Project.uvproj (u nome di u spaziu di travagliu pò cambià da un example à un altru).
- Ricostruisce tuttu files:[Prughjettu]> [Ricustruisce tutti i mira files].
- Caricate l'imaghjini di u prugettu: [Debug]> [Start/Stop Debug Session].
- Eseguite u prugramma: [Debug]> [Run (F5)].
- STM32CubeIDE:
- Aprite a catena di strumenti STM32CubeIDE.
- Cliccate [File]> [Switch Workspace]> [Other] è andate à u cartulare di u spaziu di travagliu STM32CubeIDE.
- Cliccate [File]> [Importazione] , selezziunate [Generale]> [Progetti esistenti in u spaziu di travagliu], è dopu cliccate [Next].
- Navigate à u cartulare di u spaziu di travagliu STM32CubeIDE è selezziunate u prugettu.
- Ricustruisce tuttu u prughjettu files: Selezziunate u prughjettu in a finestra [Project Explorer] dopu cliccate u menù [Project]> [Custruisce prughjettu].
- Eseguite u prugramma: [Run]> [Debug (F11)]
- EWARM:
Sviluppà una applicazione persunalizata
Nota: U software deve attivà a cache d'istruzzioni (ICACHE) per ottene una esecuzione di u statu d'attesa 0 da a memoria flash, è ghjunghje à u massimu rendiment è un cunsumu d'energia megliu.
Utilizà STM32CubeMX per sviluppà o aghjurnà una applicazione
- In u pacchettu STM32CubeWBA MCU, quasi tutti i prughjetti exampi sò generati cù l'uttellu STM32CubeMX per inizializà u sistema, periferiche è middleware.
- L'usu direttu di un prughjettu esistente example da u strumentu STM32CubeMX richiede STM32CubeMX 6.10.0 o superiore:
- Dopu a stallazione di STM32CubeMX, apre è, se necessariu, aghjurnà un prughjettu prupostu. U modu più simplice per apre un prughjettu esistente hè di cliccà doppiu nantu à u *.ioc file cusì chì STM32CubeMX apre automaticamente u prughjettu è a so fonte files.
- STM32CubeMX genera u codice fonte di inizializazione di tali prughjetti. U codice fonte principale di l'applicazione hè cuntenutu da i cumenti "USER CODE BEGIN" è "USER CODE END". In casu chì a selezzione di l'IP è l'impostazione sò mudificate, STM32CubeMX aghjurnà a parte di inizializazione di u codice, ma cunserva u codice fonte di l'applicazione principale.
- Per sviluppà un prughjettu persunalizatu in u STM32CubeMX, seguitate u prucessu passu à passu:
- Selezziunate u microcontroller STM32 chì currisponde à u settore necessariu di periferiche.
- Configurate tuttu u software integratu necessariu utilizendu un solutore di cunflittu di pinout, un assistente di paràmetri di clock-tree, una calculatrice di cunsumu di energia, è l'utilità chì realiza a cunfigurazione periferica MCU (cum'è GPIO o USART) è stack di middleware (cum'è USB).
- Generate u codice C di inizializazione basatu nantu à a cunfigurazione scelta. Stu codice hè prontu à aduprà in parechji ambienti di sviluppu. U codice d'utilizatore hè guardatu à a prossima generazione di codice.
- Per più infurmazione nantu à STM32CubeMX, riferite à u manuale d'utilizatore STM32CubeMX per a cunfigurazione STM32 è l'inizializazione di generazione di codice C (UM1718).
- Per una lista di u prughjettu dispunibule examples per STM32CubeWBA, riferite à a nota di l'applicazione STM32Cube firmware examples per a serie STM32WBA (AN5929).
Applicazioni di driver
L'applicazione HAL
Questa sezione descrive i passi necessarii per creà una applicazione HAL persunalizata cù STM32CubeWBA:
- Crea un prughjettu
- Per creà un novu prughjettu, cuminciate sia da u prughjettu Template furnitu per ogni bordu sottu \Projects\ \Modelli o da qualsiasi prughjettu dispunibule sottu \Progetti\ \Esempii o \Progetti\ \Applicazioni (induve si riferisce à u nome di u cunsigliu, cum'è STM32CubeWBA).
- U prughjettu Template furnisce una funzione di loop principale vacante. Tuttavia, hè un bonu puntu di partenza per capisce i paràmetri di u prugettu STM32CubeWBA. U mudellu hà e seguenti caratteristiche:
- Contene u codice fonte HAL, CMSIS, è i drivers BSP, chì sò l'inseme minimu di cumpunenti necessarii per sviluppà un codice nantu à una data board.
- Contene i percorsi inclusi per tutti i cumpunenti di firmware.
- Definisce i dispositi di a serie STM32WBA supportati, chì permettenu i driver CMSIS è HAL per esse cunfigurati currettamente.
- Fornisce un utilizatore prontu à aduprà filehè preconfiguratu cum'è mostra quì sottu:
HAL inizializatu cù a basa di tempu predeterminata cù Arm® core SysTick. SysTick ISR implementatu per u scopu HAL_Delay ().
Nota: Quandu copiate un prughjettu esistente in un altru locu, assicuratevi chì tutti i percorsi inclusi sò aghjurnati.
- Aghjunghjite u middleware necessariu à u prughjettu di l'utilizatori (opcional)
Per identificà a fonte files per esse aghjuntu à u prugettu file lista, riferite à a documentazione furnita per ogni middleware. Consulta l'applicazioni in \Projects\STM32xxx_yyy\Applications\ (induve si riferisce à a pila di middleware, cum'è ThreadX) per sapè quale fonte files è include i percorsi deve esse aghjuntu. - Configurate i cumpunenti di u firmware
I cumpunenti HAL è middleware offrenu un inseme di opzioni di cunfigurazione in tempu di creazione chì utilizanu macros #define dichjarate in un header file. Un mudellu di cunfigurazione file hè furnitu in ogni cumpunente, chì deve esse copiatu in u cartulare di u prughjettu (di solitu a cunfigurazione file hè chjamatu xxx_conf_template.h, a parolla _template deve esse sguassata quandu si copia à u cartulare di u prughjettu). A cunfigurazione file furnisce abbastanza infurmazione per capisce l'impattu di ogni opzione di cunfigurazione. L'infurmazione più dettagliata hè dispunibule in a documentazione furnita per ogni cumpunente. - Cumincià a biblioteca HAL
Dopu à saltà à u prugramma principale, u codice di l'applicazione deve chjamà l'API HAL_Init() per inizializà a biblioteca HAL, chì svolge e seguenti attività:- Configurazione di a prefetch di a memoria flash è a priorità d'interruzzione SysTick (per mezu di macros definite in st m32wbaxx_hal_conf.h).
- Configurazione di u SysTick per generà una interruzzione ogni millisecondu à a priorità d'interruzione SysTick TICK_INT_PRIO definita in stm32wbaxx_hal_conf.h.
- Impostazione di a priorità di u gruppu NVIC à 0.
- Chjama di a funzione di callback HAL_MspInit () definita in l'utilizatore stm32wbaxx_hal_msp.c file per eseguisce inizializzazioni hardware di bassu livellu globale.
- Configurate u clock di u sistema
A cunfigurazione di u clock di u sistema hè fatta chjamendu e duie API descritte quì sottu:- HAL_RCC_OscConfig(): sta API cunfigura l'oscillatori interni è esterni. L'utilizatore sceglie di cunfigurà unu o tutti l'oscillatori.
- HAL_RCC_ClockConfig(): questa API cunfigura a fonte di u clock di u sistema, a latenza di memoria flash, è i prescalers AHB è APB.
- Inizializà u perifericu
- Prima scrive a funzione periferica HAL_PPP_MspInit. Procedi cusì:
- Habilita u clock perifericu.
- Configurate i GPIO periferichi.
- Configurate u canali DMA è attivate l'interruzzione DMA (se necessariu).
- Abilita l'interruzzione periferica (se necessariu).
- Edite u stm32xxx_it.c per chjamà i gestori di interruzioni necessarii (periferica è DMA), se ne necessariu.
- Prucessu di scrittura cumpleta funzioni di callback, se una interruzzione periferica o DMA hè prevista per esse usata.
- In usu main.c file, inizializza a struttura di maniglia perifèrica poi chjamate a funzione HAL_PPP_Init () per inizializà u perifericu.
- Prima scrive a funzione periferica HAL_PPP_MspInit. Procedi cusì:
- Sviluppà una applicazione
- À questu stage, u sistema hè prontu è u sviluppu codice applicazione utilizatori pò principià.
- L'HAL furnisce API intuitive è pronte per l'usu per cunfigurà u perifericu. Supporta polling, interrupts, è un mudellu di prugrammazione DMA, per accoglie ogni esigenza di l'applicazione. Per più dettagli nantu à cumu utilizà ogni periferica, riferite à l'ex riccuample set forniti in u pacchettu MCU STM32CubeWBA.
Attenzione: In l'implementazione HAL predeterminata, u timer SysTick hè utilizatu cum'è una basa di tempu: genera interruzioni à intervalli di tempu regulare. Se HAL_Delay () hè chjamatu da u prucessu ISR perifericu, assicuratevi chì l'interruzzione SysTick hà una priorità più alta (numericamente più bassa) cà l'interruzzione periferica. Altrimenti, u prucessu ISR di u chjamante hè bluccatu. E funzioni chì affettanu e cunfigurazioni di basa di u tempu sò dichjarate cum'è __debuli per rende pussibule l'override in casu di altre implementazioni in l'utilizatore. file (aduprendu un timer per u scopu generale, per esempiuample, o un'altra fonte di tempu). Per più dettagli, riferite à HAL_TimeBase example.
applicazione LL
Questa sezione descrive i passi necessarii per creà una applicazione LL persunalizata cù STM32CubeWBA.
- Crea un prughjettu
- Per creà un novu prughjettu, sia principià da u prughjettu Templates_LL furnitu per ogni bordu sottu \Projects\ \Templates_LL, o da qualsiasi prughjettu dispunibule sottu \Projects\ \Examples_LL ( si riferisce à u nome di u cunsigliu, cum'è NUCLEO-WBA32CG).
- U prughjettu di u mudellu furnisce una funzione di loop principale vacante, chì hè un bonu puntu di partenza per capisce i paràmetri di u prugettu per STM32CubeWBA. E caratteristiche principali di u mudellu sò i seguenti:
- Contene i codici surghjenti di i driver LL è CMSIS, chì sò l'inseme minimu di cumpunenti necessarii per sviluppà u codice nantu à una scheda.
- Contene i percorsi inclusi per tutti i cumpunenti firmware necessarii.
- Selezziunate u dispositivu di a serie STM32WBA supportatu è permette a cunfigurazione curretta di i driver CMSIS è LL.
- Fornisce utilizatori prontu à aduprà files chì sò preconfigurati cusì:
◦ main.h: LED è USER_BUTTON astrazione di definizione di astrazione.
◦ main.c: Cunfigurazione di u clock di u sistema per a frequenza massima.
- Portà un prughjettu esistente à un altru bordu
Per sustene un prughjettu esistente nantu à un altru tavulu di destinazione, cuminciate da u prughjettu Templates_LL furnitu per ogni bordu è dispunibule sottu \Projects\ \Templates_LL.- Sceglite un LL example: Per truvà u bordu nantu à quale LL exampi sò implementati, riferite à a lista di LL examples STM32CubeProjectsList.html.
- Port u LL exampLe:
- Copia / incollà u cartulare Templates_LL - per mantene a fonte iniziale - o aghjurnà direttamente u prughjettu Temp lates_LL esistenti.
- Allora u porting consiste principalmente à rimpiazzà Templates_LL files da l'Examples_LL prughjettu di mira.
- Mantene tutte e parti specifiche di u bordu. Per ragioni di chiarezza, e parti specifiche di u bordu sò marcate cù specifiche tags:
- Cusì, i passi principali di porting sò i seguenti:
- Sustituisce u stm32wbaxx_it.h file
- Sustituisce u stm32wbaxx_it.c file
- Sustituisce u principale.h file è aghjurnà lu: Mantene u LED è a definizione di u buttone d'utilizatore di u mudellu LL sottu CONFIGURAZIONE SPECIFICA DI BOARD tags.
- Sustituisci lu main.c file è aghjurnà lu:
- Mantene a cunfigurazione di u clock di a funzione di u mudellu SystemClock_Config() LL sottu CONFIGURAZIONE SPECIFICA DI BOARD tags.
- Sicondu a definizione LED, rimpiazzà ogni LDx accadutu cù un altru LDy dispunibule in u main.h file.
- Cù questi mudificazione, l'example ora corre nantu à u bordu miratu
Applicazioni di sicurità
Stu pacchettu hè furnitu cù applicazioni di sicurità.
Applicazioni SBSFU
- SBSFU furnisce una soluzione Root of Trust, cumprese Secure Boot è Secure Firmware Update (basatu nantu à MCUboot).
- A suluzione hè aduprata prima di eseguisce l'applicazione.
- A suluzione furnisce un example di un serviziu sicuru (GPIO toggle), chì hè isolatu da l'applicazione non sicura. L'applicazione nonsecure in runtime pò ancu aduprà sta suluzione.
Applicazioni TFM
U TFM furnisce una soluzione Root of Trust chì include funzionalità Secure Boot è Secure Firmware Update
(basatu nantu à MCUboot). A suluzione hè aduprata prima di eseguisce l'applicazione. A suluzione furnisce servizii sicuri TFM chì sò isolati da l'applicazione non sicura. L'applicazione nonsecure in runtime pò ancu aduprà sta suluzione.
Applicazioni RF
L'applicazione RF hè descritta in questa nota d'applicazione: Custruisce applicazioni wireless cù microcontrollers di serie STM32WBA (AN5928).
Ottene l'aghjurnamenti di liberazione STM32CubeWBA
L'ultime versioni di pacchetti MCU STM32CubeWBA è patch sò dispunibili da a Serie STM32WBA. Puderanu esse recuperati da u buttone CHECK FOR UPDATE in STM32CubeMX. Per più dettagli, riferite à a Sezione 3 di u manuale d'utilizatore STM32CubeMX per a cunfigurazione STM32 è a generazione di codice C di inizializazione (UM1718).
FAQ
- Quandu deve aduprà HAL invece di i drivers LL?
- I driver HAL offrenu API d'altu livellu è orientate à funzioni, cù un altu livellu di portabilità. A cumplessità di u produttu o periferica hè oculata per l'utilizatori finali.
- I cunduttori LL offrenu API di livellu di registru di livellu bassu, cù una ottimisazione megliu ma menu portable. Hanu bisognu di una cunniscenza approfondita di e specificazioni di u produttu o IP.
- Puderaghju aduprà i driver HAL è LL inseme? Se possu, chì sò e limitazioni?
- Hè pussibule aduprà i driver HAL è LL. Aduprate l'HAL per a fase di inizializazione IP è poi gestisce l'operazioni I/O cù i driver LL.
- A maiò diffarenza trà HAL è LL hè chì i driver HAL necessitanu di creà è aduprà manichi per a gestione di l'operazione mentre i driver LL operanu direttamente nantu à i registri periferici. L'Examples_MIX example illustra cumu mischjà HAL è LL.
- Cumu l'API d'inizializazione LL sò attivate?
- A definizione di l'API d'inizializazione LL è e risorse assuciate (strutture, letterali è prototipi) hè cundizionata da u switch di compilazione USE_FULL_LL_DRIVER.
- Per pudè utilizà l'API d'inizializazione LL, aghjunghje stu cambiamentu in u preprocessore di compilatore di toolchain.
- Cumu STM32CubeMX pò generà codice basatu nantu à u software integratu?
STM32CubeMX hà una cunniscenza integrata di i microcontrollers STM32, cumprese i so periferichi è u software chì permette di furnisce una rapprisintazioni gràfica à l'utilizatore è generà *.h o *.c. files basatu nantu à a cunfigurazione di l'utilizatori.
AVVISU IMPORTANTE - LEGGIU ATTENTAMENTE
- STMicroelectronics NV è e so filiali ("ST") si riservanu u dirittu di fà cambiamenti, correzioni, miglioramenti, mudificazioni è migliure à i prudutti ST è / o à stu documentu in ogni mumentu senza avvisu. I cumpratori anu da ottene l'ultime informazioni pertinenti nantu à i prudutti ST prima di fà ordini. I prudutti ST sò venduti in cunfurmità cù i termini è e cundizioni di vendita di ST in vigore à u mumentu di a ricunniscenza di l'ordine.
- I cumpratori sò solu rispunsevuli di a scelta, a selezzione è l'usu di i prudutti ST è ST ùn assume micca responsabilità per l'assistenza di l'applicazione o u disignu di i prudutti di l'acquirente.
- Nisuna licenza, espressa o implicita, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da ST quì.
- A rivendita di i prudutti ST cù disposizioni diverse da l'infurmazioni stabilite quì annullerà ogni garanzia accordata da ST per tali pruduttu.
- ST è u logo ST sò marchi di ST. Per infurmazioni supplementari nantu à i marchi ST, riferite à www.st.com/trademarks. Tutti l'altri prudutti o nomi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
- L'infurmazioni in stu documentu rimpiazzanu è rimpiazzanu l'infurmazioni furnite prima in qualsiasi versione precedente di stu documentu.
- © 2023 STMicroelectronics - Tutti i diritti riservati
Documenti / Risorse
![]() |
Serie STMicroelectronics STM32WBA Introduzione [pdfManuale d'usu Serie STM32WBA Accuminciamentu, Accuminciamentu, Accuminciatu |