Primers passos de la sèrie STMicroelectronics STM32WBA
Informació del producte
Especificacions:
- Nom del producte: Paquet MCU STM32CubeWBA
- Fabricant: STMicroelectronics
- Compatibilitat: Microcontroladors de la sèrie STM32WBA
- Llicència: Llicència BSD de codi obert
Instruccions d'ús del producte
Característiques principals del paquet STM32CubeWBA MCU:
El paquet STM32CubeWBA MCU proporciona tots els components de programari integrats necessaris per desenvolupar aplicacions als microcontroladors de la sèrie STM32WBA. És altament portàtil dins de la sèrie STM32 i inclou API HAL i LL, per exempleampfitxers i components de middleware.
Arquitectura acabadaview:
L'arquitectura del paquet STM32CubeWBA MCU consta de tres nivells: aplicacions, biblioteca i components basats en protocols, capa d'abstracció de maquinari, controladors BSP, controladors bàsics i API de capa baixa.
Preguntes freqüents
- Què inclou el paquet STM32CubeWBA MCU?
El paquet inclou API de capa baixa (LL) i de capa d'abstracció de maquinari (HAL), p. examples, aplicacions, components de middleware com FileX/LevelX, NetX Duo, biblioteques mbed-crypto i molt més. - El paquet STM32CubeWBA MCU és compatible amb el generador de codi STM32CubeMX?
Sí, el paquet és totalment compatible amb el generador de codi STM32CubeMX per generar codi d'inicialització.
Introducció
- STM32Cube és una iniciativa original de STMicroelectronics per millorar significativament la productivitat del dissenyador reduint l'esforç de desenvolupament, el temps i el cost. STM32Cube cobreix tota la cartera STM32.
STM32Cube inclou:- Un conjunt d'eines de desenvolupament de programari fàcils d'utilitzar per cobrir el desenvolupament del projecte des de la concepció fins a la realització, entre les quals es troben:
- STM32CubeMX, una eina de configuració de programari gràfic que permet la generació automàtica de codi d'inicialització C mitjançant assistents gràfics
- STM32CubeIDE, una eina de desenvolupament tot en un amb configuració de perifèrics, generació de codi, compilació de codi i funcions de depuració
- STM32CubeCLT, un conjunt d'eines de desenvolupament de línia d'ordres tot en un amb compilació de codi, programació de taulers i funcions de depuració
- STM32CubeProgrammer (STM32CubeProg), una eina de programació disponible en versions gràfiques i de línia d'ordres
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), potents eines de supervisió per ajustar el comportament i el rendiment de les aplicacions STM32 en temps real
- Paquets MCU i MPU STM32Cube, plataformes integrals de programari incrustat específiques per a cada sèrie de microcontroladors i microprocessadors (com ara STM32CubeWBA per a la sèrie STM32WBA), que inclouen:
- Capa d'abstracció de maquinari STM32Cube (HAL), que garanteix la portabilitat màxima a tota la cartera STM32
- API de capa baixa STM32Cube, que garanteixen el millor rendiment i petjades amb un alt grau de control de l'usuari sobre el maquinari
- Un conjunt coherent de components de middleware com ThreadX, FileX / LevelX, NetX Duo, USBX, biblioteca tàctil, mbed-crypto, TFM, MCUboot, OpenBL i STM32_WPAN (incloent Bluetooth® Low Energy profiles i serveis, Mesh, Zigbee®, OpenThread, Matter i capa MAC 802.15.4)
- Totes les utilitats de programari incrustat amb conjunts complets de perifèrics i aplicatius, examples
- Paquets d'expansió STM32Cube, que contenen components de programari integrats que complementen les funcionalitats dels paquets MCU i MPU STM32Cube amb:
- Extensions de middleware i capes aplicatives
- Exampfitxers que s'executen en algunes plaques de desenvolupament de STMicroelectronics específiques
- Un conjunt d'eines de desenvolupament de programari fàcils d'utilitzar per cobrir el desenvolupament del projecte des de la concepció fins a la realització, entre les quals es troben:
- Aquest manual d'usuari descriu com començar amb el paquet MCU STM32CubeWBA.
- La secció 2 Característiques principals de l'STM32CubeWBA descriu les característiques principals del paquet MCU STM32CubeWBA.
- Secció 3 STM32CubeWBA arquitectura acabadaview proporciona un finalview de l'arquitectura STM32CubeWBA i l'estructura del paquet MCU.
Informació general
El paquet STM32CubeWBA MCU funciona amb microcontroladors STM32 de 32 bits basats en el processador Arm® Cortex®-M33 amb Arm® TrustZone® i FPU.
Nota: Arm i TrustZone són marques registrades d'Arm Limited (o de les seves filials) als EUA i/o en altres llocs.
Característiques principals de STM32CubeWBA
- El paquet STM32CubeWBA MCU funciona amb microcontroladors STM32 de 32 bits basats en el processador Arm® Cortex®-M33 amb TrustZone® i FPU.
- El STM32CubeWBA reuneix, en un sol paquet, tots els components genèrics de programari incrustat necessaris per desenvolupar una aplicació per als microcontroladors de la sèrie STM32WBA. D'acord amb la iniciativa STM32Cube, aquest conjunt de components és altament portàtil, no només dins dels microcontroladors de la sèrie STM32WBA, sinó també a altres sèries STM32.
- El STM32CubeWBA és totalment compatible amb el generador de codi STM32CubeMX, per generar codi d'inicialització. El paquet inclou API de capa baixa (LL) i de capa d'abstracció de maquinari (HAL) que cobreixen el maquinari del microcontrolador, juntament amb un ampli conjunt d'examples que s'executen a les plaques STMicroelectronics. Les API HAL i LL estan disponibles en una llicència BSD de codi obert per a la comoditat de l'usuari.
- El paquet STM32CubeWBA MCU també conté un component de programari intermedi complet construït al voltant de programari intermedi Microsoft® Azure® RTOS i altres piles internes i de codi obert, amb l'examples.
- Venen amb termes de llicència gratuïts i fàcils d'utilitzar:
- Azure® RTOS integrat i amb totes les funcions: Azure® RTOS ThreadX
- Implementació de CMSIS-RTOS amb Azure® RTOS ThreadX
- Piles d'amfitrió i dispositiu USB que inclouen moltes classes: Azure® RTOS USBX
- Avançat file sistema i capa de traducció flash: FileX / NivellX
- Pila de xarxes de grau industrial: optimitzada per al rendiment amb molts protocols IoT: NetX Duo
- OpenBootloader
- Solució d'integració Arm® Trusted Firmware-M (TF-M).
- biblioteques mbed-crypto
- Biblioteca ST Netwok
- Solució de biblioteca de detecció tàctil STMTouch
- Al paquet STM32CubeWBA MCU també es proporcionen diverses aplicacions i demostracions que implementen tots aquests components de middleware.
- La disposició dels components del paquet STM32CubeWBA MCU s'il·lustra a la figura 1. Components del paquet STM32CubeWBA MCU.
STM32CubeWBA Arquitectura acabadaview
La solució de paquet STM32CubeWBA MCU es construeix al voltant de tres nivells independents que interactuen fàcilment tal com es descriu a la figura 2. Arquitectura de paquets STM32CubeWBA MCU.
Nivell 0
Aquest nivell es divideix en tres subcapes:
- Paquet de suport de la junta (BSP).
- Capa d'abstracció de maquinari (HAL):
- Controladors perifèrics HAL
- Conductors de capa baixa
- Ús bàsic de perifèrics examples.
Paquet de suport de la junta (BSP)
Aquesta capa ofereix un conjunt d'API relacionades amb els components de maquinari de les plaques de maquinari (com ara els controladors LCD, àudio,\microSD™ i MEMS). Es compon de dues parts:
- Controlador de components:
Aquest controlador està relacionat amb el dispositiu extern de la placa i no amb el dispositiu STM32. El controlador de components proporciona API específiques als components externs del controlador BSP i podria ser portàtil a qualsevol altra placa. - Controlador BSP:
El controlador BSP permet enllaçar els controladors de components a una placa específica i proporciona un conjunt de controladors fàcils d'utilitzar
API. La regla de nomenclatura de l'API és BSP_FUNCT_Action().
Exampfitxer: BSP_LED_Init(), BSP_LED_On()
BSP es basa en una arquitectura modular que permet portar fàcilment qualsevol maquinari amb només implementar les rutines de baix nivell.
Capa d'abstracció de maquinari (HAL) i capa baixa (LL)
Els STM32CubeWBA HAL i LL són complementaris i cobreixen una àmplia gamma de requisits d'aplicació:
- Els controladors HAL ofereixen API altament portàtils orientades a funcions d'alt nivell. Oculten l'MCU i la complexitat del perifèric a l'usuari final.
Els controladors HAL proporcionen API genèriques multi-instància orientades a funcions, que simplifiquen la implementació d'aplicacions d'usuari proporcionant processos llestos per utilitzar. Per example, per als perifèrics de comunicació (I2S, UART i altres), proporciona API que permeten inicialitzar i configurar el perifèric, gestionar la transferència de dades basant-se en el procés d'enquesta, interrupció o DMA i gestionar els errors de comunicació que puguin sorgir durant la comunicació. Les API del controlador HAL es divideixen en dues categories:- API genèriques, que proporcionen funcions comunes i genèriques a tots els microcontroladors de la sèrie STM32.
- API d'extensió, que proporcionen funcions específiques i personalitzades per a una família específica o un número de peça específic.
- Les API de capa baixa proporcionen API de baix nivell a nivell de registre, amb una millor optimització però menys portabilitat.
- Requereixen un coneixement profund de les especificacions de MCU i perifèrics.
- Els controladors LL estan dissenyats per oferir una capa ràpida i lleugera orientada als experts que està més a prop del maquinari que el HAL. Contràriament a l'HAL, les API LL no es proporcionen per a perifèrics on l'accés optimitzat no és una característica clau, o per a aquells que requereixen una configuració de programari pesada o una pila de nivell superior complexa.
- Els controladors LL inclouen:
- Conjunt de funcions per inicialitzar les característiques principals del perifèric segons els paràmetres especificats a les estructures de dades.
- Un conjunt de funcions per omplir les estructures de dades d'inicialització amb els valors de restabliment corresponents a cada camp.
- Funció per a la desinicialització de perifèrics (registres perifèrics restaurats als seus valors per defecte).
- Un conjunt de funcions en línia per a l'accés directe i al registre atòmic.
- Total independència de HAL i capacitat d'utilitzar-se en mode autònom (sense controladors HAL).
- Cobertura total de les funcions perifèriques compatibles.
Ús bàsic de perifèrics examples
Aquesta capa tanca l'exampfitxers construïts sobre els perifèrics STM32 utilitzant només els recursos HAL i BSP.
Nivell 1
Aquest nivell es divideix en dues subcapes:
- Components de middleware
- Exampfitxers basats en els components de middleware
Components de middleware
- El middleware és un conjunt de biblioteques que cobreixen Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot i mbed-crypto.
- La interacció horitzontal entre els components d'aquesta capa es fa trucant a les API destacades.
- La interacció vertical amb els controladors de capa baixa es realitza mitjançant devolucions de trucada específiques i macros estàtiques implementades a la interfície de trucada del sistema de biblioteques.
- Les característiques principals de cada component de middleware són les següents:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: un sistema operatiu en temps real (RTOS), dissenyat per a sistemes incrustats amb dos modes funcionals.
- Mode comú: funcionalitats comunes de RTOS, com ara la gestió i la sincronització de fils, la gestió de l'agrupació de memòria, la missatgeria i la gestió d'esdeveniments.
- Mode de mòdul: un mode d'usuari avançat que permet la càrrega i descàrrega de mòduls ThreadX preenllaçats sobre la marxa mitjançant un gestor de mòduls.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: un sistema operatiu en temps real (RTOS), dissenyat per a sistemes incrustats amb dos modes funcionals.
- Bluetooth® Low Energy (BLE): implementa el protocol Bluetooth® Low Energy per a les capes Link i Stack.
- MCUboot (programari de codi obert)
- Protocols Zigbee® per a la pila i clústers relacionats.
- Pila de protocols Thread® i capa d'enllaç.
- Arm® trusted firmware-M, TF-M (programari de codi obert): implementació de referència de l'arquitectura de seguretat de la plataforma Arm® (PSA) per a TrustZone® amb els serveis segurs associats.
- mbed-crypto (programari de codi obert): el middleware mbed-crypto proporciona una implementació de l'API de criptografia PSA.
- Biblioteca de detecció tàctil STM32: solució de detecció tàctil capacitiva STMTouch robusta, que admet sensors de proximitat, tecla tàctil, lineals i rotatius. Es basa en un principi d'adquisició de transferència de càrrega superficial provat.
- Microsoft® Azure® RTOS
Exampfitxers basats en els components de middleware
Cada component de middleware ve amb un o més examples (també anomenades aplicacions) que mostren com utilitzar-les. Integració exampTambé es proporcionen fitxers que utilitzen diversos components de middleware.
S'ha acabat el paquet de microprogramari STM32CubeWBAview
Dispositius i maquinari de la sèrie STM32WBA compatibles
- STM32Cube ofereix una capa d'abstracció de maquinari (HAL) altament portàtil construïda al voltant d'una arquitectura genèrica. Permet el principi de les capes acumulades, com ara utilitzar la capa de middleware per implementar les seves funcions sense saber, en profunditat, quin MCU s'utilitza. Això millora la reutilització del codi de la biblioteca i garanteix una fàcil portabilitat a altres dispositius.
- A més, gràcies a la seva arquitectura en capes, l'STM32CubeWBA ofereix un suport total per a totes les sèries STM32WBA.
- L'usuari només ha de definir la macro correcta a stm32wbaxx.h.
- La taula 1 mostra la macro que cal definir en funció del dispositiu de la sèrie STM32WBA utilitzat. Aquesta macro també s'ha de definir al preprocessador del compilador.
Taula 1. Macros per a la sèrie STM32WBAMacro definida a stm32wbaxx.h Dispositius de la sèrie STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA inclou un ric conjunt d'exampfitxers i aplicacions a tots els nivells, facilitant la comprensió i l'ús de qualsevol controlador HAL o components de programari intermedi. Aquests exampEls fitxers s'executen a les plaques de STMicroelectronics que es mostren a la taula 2.
Taula 2. Plaques per a la sèrie STM32WBAJunta Dispositius compatibles amb STM32WBA NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - El paquet STM32CubeWBA MCU es pot executar en qualsevol maquinari compatible. L'usuari simplement actualitza els controladors BSP per portar l'exampfitxers a la placa, si aquest últim té les mateixes característiques de maquinari (com ara LED, pantalla LCD i botons).
S'ha acabat el paquet de firmwareview
- La solució del paquet STM32CubeWBA es proporciona en un sol paquet zip amb l'estructura que es mostra a la figura 3. Estructura del paquet del microprogramari STM32CubeWBA.
- Per a cada tauler, un conjunt d'examples es proporciona amb projectes preconfigurats per a les cadenes d'eines EWARM, MDK-ARM i STM32CubeIDE.
- Figura 4. STM32CubeWBA examples acabatview mostra l'estructura del projecte per a les plaques NUCLEO-WBA52CG, NUCLEO-WBA55CG i STM32WBA55G-DK1.
- L'exampEls fitxers es classifiquen en funció del nivell STM32Cube al qual s'apliquen i s'anomenen de la següent manera:
- Nivell 0 examples s'anomenen Examples, Examples_LL, i Examples_MIX. Utilitzen respectivament controladors HAL, controladors LL i una barreja de controladors HAL i LL sense cap component de programari intermedi.
- Nivell 1 exampEls fitxers s'anomenen aplicacions. Proporcionen casos d'ús típics de cada component de middleware. Qualsevol aplicació de microprogramari per a una placa determinada es pot crear ràpidament gràcies als projectes de plantilles disponibles als directoris Templ ates i Templates_LL.
Projectes habilitats per TrustZone®
- TrustZone® habilitat Exampels noms contenen el prefix _TrustZone. La regla també s'aplica a les aplicacions (excepte per a TFM i SBSFU, que són nativament per a TrustZone®).
- TrustZone® habilitat ExampEls fitxers i les aplicacions es proporcionen amb una estructura multiprojecte composta de subprojectes segurs i no segurs, tal com es presenta a la figura 5. Estructura de projecte multiprojecte segur i no segur.
- Els projectes habilitats per TrustZone® es desenvolupen segons la plantilla de dispositiu CMSIS-5, ampliada per incloure la capçalera de partició del sistema file partició_ .h, que és el principal responsable de la configuració de la unitat d'atributs segurs (SAU), la FPU i l'assignació d'interrupcions segures/no segures en l'estat d'execució segur.
- Aquesta configuració es realitza a la funció CMSIS SystemInit() segura, que es crida a l'inici abans d'entrar a la funció main() de l'aplicació segura. Consulteu la documentació de les directrius del programari d'Arm® TrustZone®-M.
- El paquet de microprogramari del paquet STM32CubeWBA proporciona particions de memòria per defecte a la partició _ .h files disponibles a: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- En aquestes particions files, el SAU està desactivat per defecte. En conseqüència, l'assignació de memòria IDAU s'utilitza per a l'atribució de seguretat. Consulteu la figura Particionament segur/no segur mitjançant la tecnologia TrustZone® al manual de referència RM0495.
- Si l'usuari activa la SAU, una configuració predeterminada de regions SAU està predefinida a la partició files de la següent manera:
- Regió SAU 0: 0x08080000 – 0x081FFFFF (la meitat segura no segura de la memòria flash (512 Kbytes))
- Regió SAU 1: 0x0BF88000 – 0x0BF97FFF (memòria del sistema no segura)
- Regió SAU 2: 0x0C07E000 – 0x0C07FFFF (segur, no segur que es pot trucar)
- Regió SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 no segura (64 Kbytes))
- Regió SAU 4: 0x40000000 – 0x4FFFFFFF (memòria assignada perifèrica no segura)
- Perquè coincideixi amb la partició predeterminada, els dispositius de la sèrie STM32WBAxx han de tenir els bytes d'opció d'usuari següents establerts:
- TZEN = 1 (dispositiu habilitat per TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 de les 128 pàgines de memòria flash interna establertes com a segura) Nota: La memòria flash interna és totalment segura per defecte a TZEN = 1. Els bytes d'opció d'usuari SECWM1_PSTRT/ SECWM1_PEND s'han d'establir segons l'aplicació configuració de memòria (regions SAU, si SAU està habilitat). Enllaçador de projectes d'aplicacions segures/no segures files també s'han d'alinear.
- tots els examptenen la mateixa estructura:
- Carpeta \Inc que conté tota la capçalera files.
- Carpeta Src que conté el codi font.
- Carpetes \EWARM, \MDK-ARM i \STM32CubeIDE que contenen el projecte preconfigurat per a cada cadena d'eines.
- readme.md i readme.html descrivint l'exampel comportament i l'entorn necessari perquè funcioni.
- ioc file que permet als usuaris obrir la majoria del microprogramari, exampels dins de STM32CubeMX.
Com començar amb STM32CubeWBA
Execució d'un primer HAL example
Aquesta secció explica com de senzill és executar el primer exampli dins de STM32CubeWBA. Utilitza com a il·lustració la generació d'un commutador LED senzill que s'executa a la placa NUCLEO-WBA52CG:
- Baixeu el paquet STM32CubeWBA MCU.
- Descomprimiu-lo al directori que trieu.
- Assegureu-vos de no modificar l'estructura del paquet que es mostra a la figura 1. També es recomana copiar el paquet en una ubicació propera al vostre volum arrel (és a dir, C:\ST o G:\Tests), ja que alguns IDE troben problemes quan el camí la longitud és massa llarga.
Executar un primer TrustZone® habilitat, pample
- Abans de carregar i executar un TrustZone® habilitat per exempleample, és obligatori llegir l'exampllegiu-me file per a qualsevol configuració específica, que garanteix que la seguretat estigui activada tal com es descriu a la Secció 4.2.1 Projectes habilitats per TrustZone® (TZEN=1 (byte d'opció d'usuari)).
- Navegueu a \Projectes\NUCLEO-WBA52CG\Examples.
- Obriu \GPIO i, a continuació, les carpetes \GPIO_IOToggle_TrustZone.
- Obriu el projecte amb la vostra cadena d'eines preferida. Una passada ràpidaview sobre com obrir, construir i executar un exampA continuació es mostra el fitxer amb les cadenes d'eines compatibles.
- Reconstrueix en seqüència tots els projectes segurs i no segurs files i carregueu les imatges segures i no segures a la memòria de destinació.
- Executar l'example: regularment, l'aplicació segura alterna LD2 cada segon i l'aplicació no segura canvia LD3 el doble de ràpid. Per a més detalls, consulteu el readme file de l'example.
- Per obrir, construir i executar un exampamb les cadenes d'eines compatibles, seguiu els passos següents:
- EWARM:
- Sota l'example, obriu la subcarpeta \EWARM.
- Inicieu l'espai de treball Project.eww
- Reconstrueix el projecte segur xxxxx_S files: [Projecte]>[Reconstrueix-ho tot].
- Estableix el projecte no segur xxxxx_NS com a aplicació activa (clic dret al projecte xxxxx_NS [Estableix com a actiu])
- Reconstruïu el projecte no segur xxxxx_NS files: [Projecte]>[Reconstrueix-ho tot].
- Flasheja el binari no segur amb [Projecte]>[Descarrega]>[Descarrega l'aplicació activa] .
- Estableix el xxxxx_S com a aplicació activa (clic dret al projecte xxxxx_S [Estableix com a actiu].
- Flasheu el binari segur amb [Baixa i depuració] (Ctrl+D).
- Executeu el programa: [Debug]>[Go(F5)]
- MDK-ARM:
- Obriu la cadena d'eines \MDK-ARM.
- Obriu l'espai de treball Multiprojects file Projecte.uvmpw.
- Seleccioneu el projecte xxxxx_s com a aplicació activa ([Estableix com a projecte actiu]).
- Creeu el projecte xxxxx_s.
- Seleccioneu el projecte xxxxx_ns com a projecte actiu ([Estableix com a projecte actiu]).
- Creeu el projecte xxxxx_ns.
- Carregueu el binari no segur ([F8]). Això baixa \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf a la memòria flash)
- Seleccioneu el projecte Project_s com a projecte actiu ([Estableix com a projecte actiu]).
- Carregueu el binari segur ([F8]). Això baixa \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf a la memòria flash).
- Executar l'example.
- STM32CubeIDE:
- Obriu la cadena d'eines STM32CubeIDE.
- Obriu l'espai de treball Multiprojects file .projecte.
- Reconstrueix el projecte xxxxx_Secure.
- Reconstruïu el projecte xxxxx_NonSecure.
- Inicieu l'aplicació [Debug as STM32 Cortex-M C/C++] per al projecte segur.
- A la finestra [Edita la configuració], seleccioneu el panell [Inici] i afegiu carregar la imatge i els símbols del projecte no segur.
Important: El projecte no segur s'ha de carregar abans que el projecte segur. - Feu clic a [D'acord].
- Executar l'example sobre la perspectiva de depuració.
- EWARM:
Execució d'una primera TrustZone® desactivada per exempleample
- Abans de carregar i executar una TrustZone® desactivada per exempleample, és obligatori llegir l'exampllegiu-me file per a qualsevol configuració específica. Si no hi ha mencions específiques, assegureu-vos que el dispositiu de la placa tingui la seguretat desactivada (TZEN=0 (byte d'opció d'usuari)). Consulteu les PMF per fer la regressió opcional a TZEN = 0
- Navegueu a \Projectes\NUCLEO-WBA52CG\Examples.
- Obriu \GPIO i, a continuació, les carpetes \GPIO_EXTI.
- Obriu el projecte amb la vostra cadena d'eines preferida. Una passada ràpidaview sobre com obrir, construir i executar un exampA continuació es mostra el fitxer amb les cadenes d'eines compatibles.
- Reconstrueix-ho tot files i carregueu la vostra imatge a la memòria de destinació.
- Executar l'example: Cada vegada que es prem el polsador [USUARI], el LED LD1 canvia. Per a més detalls, consulteu el readme file de l'example.
- Per obrir, construir i executar un exampamb les cadenes d'eines compatibles, seguiu els passos següents:
- EWARM:
- Sota l'example, obriu la subcarpeta \EWARM.
- Inicieu l'espai de treball Project.eww (el nom de l'espai de treball pot canviar d'un exampli a un altre).
- Reconstrueix-ho tot files: [Projecte]>[Reconstrueix-ho tot].
- Carregueu la imatge del projecte: [Projecte]>[Depuració].
- Executeu el programa: [Debug]>[Go (F5)].
- MDK-ARM:
- Sota l'example, obriu la subcarpeta \MDK-ARM.
- Inicieu l'espai de treball Project.uvproj (el nom de l'espai de treball pot canviar d'un exampli a un altre).
- Reconstrueix-ho tot files:[Projecte]>[Reconstrueix tots els objectius files].
- Carregueu la imatge del projecte: [Depuració]>[Iniciar/Aturar la sessió de depuració].
- Executar el programa: [Depuració]>[Executar (F5)].
- STM32CubeIDE:
- Obriu la cadena d'eines STM32CubeIDE.
- Feu clic a [File]>[Canvia l'espai de treball]>[Altres] i navegueu fins al directori de l'espai de treball STM32CubeIDE.
- Feu clic a [File]>[Importa], seleccioneu [General]>[Projectes existents a l'espai de treball] i, a continuació, feu clic a [Següent].
- Navegueu al directori de l'espai de treball STM32CubeIDE i seleccioneu el projecte.
- Reconstrueix tot el projecte files: Seleccioneu el projecte a la finestra [Explorador de projectes] i feu clic al menú [Projecte]>[Crea un projecte].
- Executeu el programa: [Executar]>[Depurar (F11)]
- EWARM:
Desenvolupament d'una aplicació personalitzada
Nota: El programari ha d'habilitar la memòria cau d'instruccions (ICACHE) per obtenir una execució d'estat d'espera 0 des de la memòria flash, i assolir el màxim rendiment i un millor consum d'energia.
Ús de STM32CubeMX per desenvolupar o actualitzar una aplicació
- Al paquet STM32CubeWBA MCU, gairebé tots els projectes exampEls fitxers es generen amb l'eina STM32CubeMX per inicialitzar el sistema, els perifèrics i el programari intermediari.
- L'ús directe d'un projecte existent exampel fitxer de l'eina STM32CubeMX requereix STM32CubeMX 6.10.0 o superior:
- Després de la instal·lació de STM32CubeMX, obriu i, si cal, actualitzeu un projecte proposat. La manera més senzilla d'obrir un projecte existent és fent doble clic al *.ioc file de manera que STM32CubeMX obre automàticament el projecte i la seva font files.
- STM32CubeMX genera el codi font d'inicialització d'aquests projectes. El codi font principal de l'aplicació està inclòs pels comentaris "COMENÇAR CODI D'USUARI" i "FINAL DEL CODI D'USUARI". En cas que es modifiqui la selecció i la configuració d'IP, STM32CubeMX actualitza la part d'inicialització del codi però conserva el codi font principal de l'aplicació.
- Per desenvolupar un projecte personalitzat a l'STM32CubeMX, seguiu el procés pas a pas:
- Seleccioneu el microcontrolador STM32 que coincideixi amb el conjunt de perifèrics necessari.
- Configureu tot el programari incrustat necessari mitjançant un solucionador de conflictes de pinout, un ajudant de configuració de l'arbre del rellotge, una calculadora de consum d'energia i la utilitat que realitza la configuració de perifèrics MCU (com ara GPIO o USART) i piles de programari intermedi (com ara USB).
- Genereu el codi C d'inicialització en funció de la configuració seleccionada. Aquest codi està llest per utilitzar-se en diversos entorns de desenvolupament. El codi d'usuari es conserva a la següent generació de codi.
- Per obtenir més informació sobre STM32CubeMX, consulteu el manual d'usuari STM32CubeMX per a la configuració i la generació de codi C d'inicialització STM32 (UM1718).
- Per a una llista del projecte disponible exampfitxers per a STM32CubeWBA, consulteu la nota de l'aplicació del firmware STM32Cube exampfitxers per a la sèrie STM32WBA (AN5929).
Aplicacions de controladors
Aplicació HAL
Aquesta secció descriu els passos necessaris per crear una aplicació HAL personalitzada mitjançant STM32CubeWBA:
- Crea un projecte
- Per crear un projecte nou, comenceu des del projecte Plantilla proporcionat per a cada tauler a \Projectes\ \Plantilles o de qualsevol projecte disponible a \Projectes\ \Examples o \Projectes\ \Aplicacions (on fa referència al nom de la placa, com ara STM32CubeWBA).
- El projecte Template proporciona una funció de bucle principal buida. Tanmateix, és un bon punt de partida per entendre la configuració del projecte STM32CubeWBA. La plantilla té les següents característiques:
- Conté el codi font HAL, els controladors CMSIS i BSP, que són el conjunt mínim de components necessaris per desenvolupar un codi en una placa determinada.
- Conté els camins inclosos per a tots els components del microprogramari.
- Defineix els dispositius de la sèrie STM32WBA compatibles, permetent que els controladors CMSIS i HAL es configuren correctament.
- Proporciona un usuari llest per al seu ús fileestà preconfigurat com es mostra a continuació:
HAL inicialitzat amb la base de temps predeterminada amb Arm® Core SysTick. SysTick ISR implementat amb el propòsit de HAL_Delay().
Nota: Quan copieu un projecte existent a una altra ubicació, assegureu-vos que tots els camins inclosos estiguin actualitzats.
- Afegiu el programari intermediari necessari al projecte de l'usuari (opcional)
Per identificar la font files per afegir al projecte file llista, consulteu la documentació proporcionada per a cada programari intermediari. Consulteu les aplicacions a \Projectes\STM32xxx_yyy\Aplicacions\ (on fa referència a la pila de middleware, com ThreadX) per saber quina font files i inclouen camins s'han d'afegir. - Configureu els components del microprogramari
Els components HAL i middleware ofereixen un conjunt d'opcions de configuració en temps de compilació mitjançant macros #define declarades en una capçalera file. Una configuració de plantilla file es proporciona dins de cada component, que s'ha de copiar a la carpeta del projecte (normalment la configuració file s'anomena xxx_conf_template.h, la paraula _template s'ha d'eliminar en copiar-la a la carpeta del projecte). La configuració file proporciona prou informació per entendre l'impacte de cada opció de configuració. La informació més detallada està disponible a la documentació proporcionada per a cada component. - Inicieu la biblioteca HAL
Després de saltar al programa principal, el codi de l'aplicació ha de cridar a l'API HAL_Init() per inicialitzar la biblioteca HAL, que realitza les tasques següents:- Configuració de la recuperació prèvia de la memòria flash i la prioritat d'interrupció SysTick (mitjançant macros definides a st m32wbaxx_hal_conf.h).
- Configuració del SysTick per generar una interrupció cada mil·lisegon a la prioritat d'interrupció SysTick TICK_INT_PRIO definida a stm32wbaxx_hal_conf.h.
- Configuració de la prioritat del grup NVIC a 0.
- Crida de la funció de devolució de trucada HAL_MspInit() definida a l'usuari stm32wbaxx_hal_msp.c file per realitzar inicialitzacions globals de maquinari de baix nivell.
- Configura el rellotge del sistema
La configuració del rellotge del sistema es fa trucant a les dues API que es descriuen a continuació:- HAL_RCC_OscConfig(): aquesta API configura els oscil·ladors interns i externs. L'usuari tria configurar un o tots els oscil·ladors.
- HAL_RCC_ClockConfig(): aquesta API configura la font del rellotge del sistema, la latència de la memòria flash i els preescalers AHB i APB.
- Inicialitzar el perifèric
- Primer escriu la funció perifèrica HAL_PPP_MspInit. Procediu de la següent manera:
- Activa el rellotge perifèric.
- Configureu els GPIO perifèrics.
- Configureu el canal DMA i activeu la interrupció DMA (si cal).
- Activa la interrupció perifèrica (si cal).
- Editeu el fitxer stm32xxx_it.c per trucar als controladors d'interrupcions necessaris (perifèrics i DMA), si cal.
- Escriviu les funcions de devolució de trucada completes del procés, si es preveu utilitzar una interrupció perifèrica o DMA.
- A l'usuari principal.c file, inicialitzeu l'estructura de maneig del perifèric i després crideu a la funció HAL_PPP_Init() per inicialitzar el perifèric.
- Primer escriu la funció perifèrica HAL_PPP_MspInit. Procediu de la següent manera:
- Desenvolupar una aplicació
- En aquest stage, el sistema està preparat i el desenvolupament del codi de l'aplicació d'usuari pot començar.
- El HAL proporciona API intuïtives i llestes per utilitzar per configurar el perifèric. Admet sondejos, interrupcions i un model de programació DMA, per adaptar-se a qualsevol requisit d'aplicació. Per obtenir més detalls sobre com utilitzar cada perifèric, consulteu l'exampconjunt de fitxers proporcionat al paquet STM32CubeWBA MCU.
Precaució: A la implementació HAL predeterminada, el temporitzador SysTick s'utilitza com a base de temps: genera interrupcions a intervals de temps regulars. Si es crida HAL_Delay() des del procés ISR perifèric, assegureu-vos que la interrupció SysTick tingui una prioritat més alta (numèricament més baixa) que la interrupció perifèrica. En cas contrari, el procés ISR de la persona que truca es bloqueja. Les funcions que afecten les configuracions de la base de temps es declaren com a __febles per fer possible la substitució en cas d'altres implementacions a l'usuari. file (utilitzant un temporitzador de propòsit general, per exempleample, o una altra font de temps). Per obtenir més detalls, consulteu l'ex. HAL_TimeBaseample.
Aplicació LL
Aquesta secció descriu els passos necessaris per crear una aplicació LL personalitzada mitjançant STM32CubeWBA.
- Crea un projecte
- Per crear un projecte nou, comenceu des del projecte Templates_LL proporcionat per a cada tauler a \Projectes\ \Templates_LL, o des de qualsevol projecte disponible a \Projectes\ \Examples_LL ( fa referència al nom de la placa, com ara NUCLEO-WBA32CG).
- El projecte de plantilla proporciona una funció de bucle principal buida, que és un bon punt de partida per entendre la configuració del projecte per a STM32CubeWBA. Les característiques principals de la plantilla són les següents:
- Conté els codis font dels controladors LL i CMSIS, que són el conjunt mínim de components necessaris per desenvolupar codi en una placa determinada.
- Conté els camins inclosos per a tots els components de microprogramari necessaris.
- Selecciona el dispositiu de la sèrie STM32WBA compatible i permet la configuració correcta dels controladors CMSIS i LL.
- Proporciona un usuari llest per al seu ús files que estan preconfigurades de la següent manera:
◦ main.h: capa d'abstracció de definició de LED i USER_BUTTON.
◦ main.c: configuració del rellotge del sistema per a la freqüència màxima.
- Porta un projecte existent a un altre tauler
Per donar suport a un projecte existent en un altre tauler de destinació, comenceu des del projecte Templates_LL proporcionat per a cada tauler i disponible a \Projectes\ \Plantilles_LL.- Seleccioneu un LL example: Per trobar el tauler on LL exampels fitxers estan desplegats, consulteu la llista de LL examples STM32CubeProjectsList.html.
- Port el LL exampLI:
- Copieu/enganxeu la carpeta Templates_LL (per mantenir la font inicial) o actualitzeu directament el projecte Templates_LL existent.
- Aleshores, la portabilitat consisteix principalment a substituir Templates_LL files per l'Exampprojecte objectiu les_LL.
- Conserveu totes les parts específiques del tauler. Per motius de claredat, les parts específiques del tauler estan marcades amb específiques tags:
- Així, els passos principals de la portabilitat són els següents:
- Substituïu el fitxer stm32wbaxx_it.h file
- Substituïu el fitxer stm32wbaxx_it.c file
- Substituïu el principal.h file i actualitzeu-lo: mantingueu el LED i la definició del botó d'usuari de la plantilla LL a CONFIGURACIÓ ESPECÍFICA DE LA TAULA tags.
- Substituïu el principal.c file i actualitzeu-lo:
- Mantingueu la configuració del rellotge de la funció de plantilla SystemClock_Config() LL a CONFIGURACIÓ ESPECÍFICA DE LA PLACA tags.
- Depenent de la definició del LED, substituïu cada aparició de LDx per una altra LDy disponible a main.h file.
- Amb aquestes modificacions, l'example ara s'executa al tauler de destinació
Aplicacions de seguretat
Aquest paquet es lliura amb aplicacions de seguretat.
Aplicacions SBSFU
- SBSFU ofereix una solució de Root of Trust, que inclou funcionalitats d'arrencada segura i d'actualització segura del firmware (basades en MCUboot).
- La solució s'utilitza abans d'executar l'aplicació.
- La solució proporciona un exampfitxer d'un servei segur (interruptor GPIO), que està aïllat de l'aplicació no segura. L'aplicació no segura en temps d'execució encara pot utilitzar aquesta solució.
Aplicacions TFM
El TFM proporciona una solució d'arrel de confiança que inclou funcionalitats d'arrencada segura i d'actualització segura del firmware
(basat en MCUboot). La solució s'utilitza abans d'executar l'aplicació. La solució proporciona serveis segurs de TFM que estan aïllats de l'aplicació no segura. L'aplicació no segura en temps d'execució encara pot utilitzar aquesta solució.
Aplicacions de radiofreqüència
L'aplicació de RF es descriu en aquesta nota d'aplicació: Creació d'aplicacions sense fil amb microcontroladors de la sèrie STM32WBA (AN5928).
Obtenint actualitzacions de la versió STM32CubeWBA
Les últimes versions i pedaços del paquet STM32CubeWBA MCU estan disponibles a la sèrie STM32WBA. Es poden recuperar des del botó VERIFICAR PER ACTUALITZAR a STM32CubeMX. Per obtenir més detalls, consulteu la secció 3 del manual d'usuari STM32CubeMX per a la configuració i la generació de codi C d'inicialització STM32 (UM1718).
Preguntes freqüents
- Quan he d'utilitzar els controladors HAL en lloc dels LL?
- Els controladors HAL ofereixen API d'alt nivell i orientades a funcions, amb un alt nivell de portabilitat. La complexitat del producte o del perifèric està oculta per als usuaris finals.
- Els controladors LL ofereixen API de nivell de registre de capa baixa, amb una millor optimització però menys portàtil. Requereixen un coneixement profund de les especificacions de producte o IP.
- Puc utilitzar els controladors HAL i LL junts? Si puc, quines són les limitacions?
- És possible utilitzar tant controladors HAL com LL. Utilitzeu el HAL per a la fase d'inicialització de la IP i, a continuació, gestioneu les operacions d'E/S amb controladors LL.
- La diferència principal entre HAL i LL és que els controladors HAL requereixen crear i utilitzar identificadors per a la gestió d'operacions, mentre que els controladors LL operen directament en registres perifèrics. L'Examples_MIX example il·lustra com barrejar HAL i LL.
- Com s'activen les API d'inicialització de LL?
- La definició de les API d'inicialització de LL i els recursos associats (estructures, literals i prototips) està condicionada pel commutador de compilació USE_FULL_LL_DRIVER.
- Per poder utilitzar les API d'inicialització de LL, afegiu aquest commutador al preprocessador del compilador de la cadena d'eines.
- Com pot STM32CubeMX generar codi basat en programari incrustat?
STM32CubeMX té coneixements integrats dels microcontroladors STM32, inclosos els seus perifèrics i programari que permet proporcionar una representació gràfica a l'usuari i generar *.h o *.c files basat en la configuració de l'usuari.
AVÍS IMPORTANT - LLEGIU ATENCIÓ
- STMicroelectronics NV i les seves filials ("ST") es reserven el dret de fer canvis, correccions, millores, modificacions i millores als productes ST i/o a aquest document en qualsevol moment sense previ avís. Els compradors haurien d'obtenir la informació rellevant més recent sobre els productes ST abans de fer comandes. Els productes ST es venen d'acord amb els termes i condicions de venda de ST vigents en el moment del reconeixement de la comanda.
- Els compradors són els únics responsables de l'elecció, selecció i ús dels productes ST i ST no assumeix cap responsabilitat per l'assistència a l'aplicació o el disseny dels productes dels compradors.
- ST no concedeix cap llicència, expressa o implícita, a cap dret de propietat intel·lectual.
- La revenda de productes ST amb disposicions diferents de la informació que s'estableix aquí anul·larà qualsevol garantia concedida per ST per a aquest producte.
- ST i el logotip de ST són marques comercials de ST. Per obtenir informació addicional sobre les marques comercials ST, consulteu www.st.com/trademarks. Tots els altres noms de productes o serveis són propietat dels seus respectius propietaris.
- La informació d'aquest document substitueix i substitueix la informació proporcionada anteriorment en qualsevol versió anterior d'aquest document.
- © 2023 STMicroelectronics – Tots els drets reservats
Documents/Recursos
![]() |
Primers passos de la sèrie STMicroelectronics STM32WBA [pdfManual d'usuari Sèrie STM32WBA Com començar, començar, començar |