Logotipo de STMicroelectronics

Introdución á serie STMicroelectronics STM32WBA

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-1

Información do produto

Especificacións:

  • Nome do produto: Paquete STM32CubeWBA MCU
  • Fabricante: STMicroelectronics
  • Compatibilidade: Microcontroladores da serie STM32WBA
  • Licenza: Licenza BSD de código aberto

Instrucións de uso do produto

Características principais do paquete STM32CubeWBA MCU:
O paquete MCU STM32CubeWBA proporciona todos os compoñentes de software integrados necesarios para desenvolver aplicacións en microcontroladores da serie STM32WBA. É altamente portátil dentro da serie STM32 e inclúe API HAL e LL, por exemploampficheiros e compoñentes de middleware.

Arquitectura Acabadaview:
A arquitectura do paquete STM32CubeWBA MCU consta de tres niveis: aplicacións, compoñentes baseados en bibliotecas e protocolos, capa de abstracción de hardware, controladores BSP, controladores básicos e API de capa baixa.

FAQ

  • Que se inclúe no paquete STM32CubeWBA MCU?
    O paquete inclúe API de capa baixa (LL) e de capa de abstracción de hardware (HAL), por exemploamples, aplicacións, compoñentes de middleware como FileX/LevelX, NetX Duo, bibliotecas mbed-crypto e moito máis.
  • O paquete STM32CubeWBA MCU é compatible co xerador de código STM32CubeMX?
    Si, o paquete é totalmente compatible co xerador de código STM32CubeMX para xerar código de inicialización.

Introdución

  • STM32Cube é unha iniciativa orixinal de STMicroelectronics para mellorar significativamente a produtividade dos deseñadores reducindo o esforzo, o tempo e o custo de desenvolvemento. STM32Cube cobre toda a carteira STM32.
    STM32Cube inclúe:
    • Un conxunto de ferramentas de desenvolvemento de software fáciles de usar para cubrir o desenvolvemento de proxectos desde a concepción ata a realización, entre as que se atopan:
      • STM32CubeMX, unha ferramenta de configuración de software gráfico que permite a xeración automática de código de inicialización C mediante asistentes gráficos.
      • STM32CubeIDE, unha ferramenta de desenvolvemento todo en un con configuración de periféricos, xeración de código, compilación de código e funcións de depuración
      • STM32CubeCLT, un conxunto de ferramentas de desenvolvemento de liña de comandos todo en un con funcións de compilación de código, programación de placas e depuración
      • STM32CubeProgrammer (STM32CubeProg), unha ferramenta de programación dispoñible en versións gráficas e de liña de comandos
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), poderosas ferramentas de monitorización para axustar o comportamento e o rendemento das aplicacións STM32 en tempo real
    • Paquetes MCU e MPU STM32Cube, plataformas completas de software integrado específicas para cada serie de microcontroladores e microprocesadores (como STM32CubeWBA para a serie STM32WBA), que inclúen:
      • Capa de abstracción de hardware STM32Cube (HAL), que garante a portabilidade máxima en toda a carteira STM32
      • API de capa baixa STM32Cube, que garanten o mellor rendemento e pegadas cun alto grao de control do usuario sobre o hardware
      • Un conxunto consistente de compoñentes de middleware como ThreadX, FileX / LevelX, NetX Duo, USBX, biblioteca táctil, mbed-crypto, TFM, MCUboot, OpenBL e STM32_WPAN (incluíndo Bluetooth® Low Energy profiles e servizos, Mesh, Zigbee®, OpenThread, Matter e capa MAC 802.15.4)
      • Todas as utilidades de software incorporadas con conxuntos completos de periféricos e aplicativosamples
    • Paquetes de expansión STM32Cube, que conteñen compoñentes de software integrados que complementan as funcionalidades dos paquetes MCU e MPU STM32Cube con:
      • Extensións de middleware e capas aplicativas
      • Exampficheiros que se executan nalgunhas placas de desenvolvemento de STMicroelectronics específicas
  • Este manual de usuario describe como comezar co paquete STM32CubeWBA MCU.
    • A sección 2 Características principais do STM32CubeWBA describe as principais características do paquete MCU STM32CubeWBA.
    • Sección 3 STM32CubeWBA arquitectura completaview proporciona un sobreview da arquitectura STM32CubeWBA e da estrutura do paquete MCU.

Información xeral

O paquete STM32CubeWBA MCU funciona con microcontroladores STM32 de 32 bits baseados no procesador Arm® Cortex®-M33 con Arm® TrustZone® e FPU.
Nota: Arm e TrustZone son marcas rexistradas de Arm Limited (ou das súas subsidiarias) nos EUA e/ou noutros lugares.

Características principais do STM32CubeWBA

  • O paquete STM32CubeWBA MCU funciona con microcontroladores STM32 de 32 bits baseados no procesador Arm® Cortex®-M33 con TrustZone® e FPU.
  • O STM32CubeWBA reúne, nun único paquete, todos os compoñentes xenéricos de software embebido necesarios para desenvolver unha aplicación para os microcontroladores da serie STM32WBA. En liña coa iniciativa STM32Cube, este conxunto de compoñentes é altamente portátil, non só dentro dos microcontroladores da serie STM32WBA senón tamén para outras series STM32.
  • O STM32CubeWBA é totalmente compatible co xerador de código STM32CubeMX, para xerar código de inicialización. O paquete inclúe API de capa baixa (LL) e capa de abstracción de hardware (HAL) que cobren o hardware do microcontrolador, xunto cun extenso conxunto de examparchivos que se executan en placas STMicroelectronics. As API HAL e LL están dispoñibles nunha licenza BSD de código aberto para a comodidade do usuario.
  • O paquete STM32CubeWBA MCU tamén contén un compoñente de middleware completo construído en torno ao middleware de Microsoft® Azure® RTOS e outras pilas internas e de código aberto, co correspondente examples.
  • Veñen con condicións de licenza gratuítas e fáciles de usar:
    • Azure® RTOS integrado e con todas as funcións: Azure® RTOS ThreadX
    • Implementación de CMSIS-RTOS con Azure® RTOS ThreadX
    • As pilas de dispositivos e host USB inclúen moitas clases: Azure® RTOS USBX
    • Avanzado file sistema e capa de tradución flash: FileX / NivelX
    • Pila de rede de grao industrial: optimizada para o rendemento que vén con moitos protocolos IoT: NetX Duo
    • OpenBootloader
    • Solución de integración Arm® Trusted Firmware-M (TF-M).
    • bibliotecas mbed-crypto
    • Biblioteca ST Netwok
    • Solución de biblioteca de detección táctil STMTouch
  • No paquete STM32CubeWBA MCU tamén se proporcionan varias aplicacións e demostracións que implementan todos estes compoñentes de middleware.
  • A disposición dos compoñentes do paquete STM32CubeWBA MCU móstrase na Figura 1. Compoñentes do paquete STM32CubeWBA MCU .

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-2

Arquitectura STM32CubeWBA terminadaview

A solución do paquete STM32CubeWBA MCU está construída en torno a tres niveis independentes que interactúan facilmente como se describe na Figura 2. Arquitectura do paquete STM32CubeWBA MCU.

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-3

Nivel 0

Este nivel divídese en tres subcapas:

  • Paquete de soporte da placa (BSP).
  • Capa de abstracción de hardware (HAL):
    • Controladores periféricos HAL
    • Controladores de capa baixa
  • Uso básico de periféricos examples.

Paquete de soporte da placa (BSP)
Esta capa ofrece un conxunto de API relativos aos compoñentes de hardware das placas de hardware (como os controladores LCD, Audio,\microSD™ e MEMS). Componse de dúas partes:

  • Controlador de compoñentes:
    Este controlador está relacionado co dispositivo externo da placa, e non co dispositivo STM32. O controlador de compoñentes proporciona API específicas aos compoñentes externos do controlador BSP e pode ser portátil en calquera outra placa.
  • controlador BSP:
    O controlador BSP permite ligar os controladores de compoñentes a unha placa específica e ofrece un conxunto de ferramentas fáciles de usar
    APIs. A regra de nomeamento da API é BSP_FUNCT_Action().
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP baséase nunha arquitectura modular que permite un fácil portado en calquera hardware con só implementar as rutinas de baixo nivel.

Capa de abstracción de hardware (HAL) e capa baixa (LL)
Os STM32CubeWBA HAL e LL son complementarios e cobren unha ampla gama de requisitos de aplicación:

  • Os controladores HAL ofrecen API altamente portátiles de alto nivel orientadas a funcións. Ocultan o MCU e a complexidade do periférico ao usuario final.
    Os controladores HAL fornecen API xenéricas orientadas a funcións de varias instancias, que simplifican a implementación de aplicacións de usuario proporcionando procesos listos para usar. Por example, para os periféricos de comunicación (I2S, UART e outros), proporciona API que permiten inicializar e configurar o periférico, xestionar a transferencia de datos en función do proceso de sondeo, interrupción ou DMA e xestionar os erros de comunicación que poidan xurdir durante a comunicación. As API do controlador HAL divídense en dúas categorías:
    1. API xenéricas, que proporcionan funcións comúns e xenéricas a todos os microcontroladores da serie STM32.
    2. API de extensión, que proporcionan funcións específicas e personalizadas para unha familia específica ou un número de peza específico.
  • As API de capa baixa proporcionan API de baixo nivel a nivel de rexistro, cunha mellor optimización pero con menos portabilidade.
    • Requiren un profundo coñecemento das especificacións de MCU e periféricos.
    • Os controladores LL están deseñados para ofrecer unha capa rápida e lixeira orientada a expertos que está máis preto do hardware que o HAL. Ao contrario do HAL, as API LL non se proporcionan para periféricos nos que o acceso optimizado non é unha característica clave, nin para aqueles que requiren unha configuración de software pesada ou unha pila complexa de nivel superior.
    • Características dos controladores LL:
      • Un conxunto de funcións para inicializar as características principais dos periféricos segundo os parámetros especificados nas estruturas de datos.
      • Un conxunto de funcións para encher estruturas de datos de inicialización cos valores de reinicio correspondentes a cada campo.
      • Función de desinicialización de periféricos (rexistros periféricos restaurados aos seus valores predeterminados).
      • Un conxunto de funcións en liña para o acceso directo e ao rexistro atómico.
      • Total independencia de HAL e capacidade de usar en modo autónomo (sen controladores HAL).
      • Cobertura total das funcións periféricas admitidas.

Uso básico de periféricos examples
Esta capa encerra o exampficheiros construídos sobre os periféricos STM32 usando só os recursos HAL e BSP.

Nivel 1

Este nivel divídese en dúas subcapas:

  • Compoñentes de middleware
  • Exampficheiros baseados nos compoñentes de middleware

Compoñentes de middleware

  • O middleware é un conxunto de bibliotecas que abarcan Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot e mbed-crypto.
  • A interacción horizontal entre os compoñentes desta capa realízase chamando ás API destacadas.
  • A interacción vertical cos controladores de capa baixa realízase mediante devolucións de chamada específicas e macros estáticas implementadas na interface de chamada do sistema da biblioteca.
  • As principais características de cada compoñente de middleware son as seguintes:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: un sistema operativo en tempo real (RTOS), deseñado para sistemas integrados con dous modos funcionais.
        • Modo común: funcións comúns de RTOS como a xestión e sincronización de fíos, a xestión de grupos de memoria, a mensaxería e o manexo de eventos.
        • Modo módulo: un modo de usuario avanzado que permite cargar e descargar módulos ThreadX previamente vinculados sobre a marcha a través dun xestor de módulos.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): implementa o protocolo Bluetooth® Low Energy para as capas Link e Stack.
    • MCUboot (software de código aberto)
    • Protocolos Zigbee® para a pila e os clústeres relacionados.
    • Pila de protocolos Thread® e capa de enlace.
    • Arm® trusted firmware-M, TF-M (software de código aberto): implementación de referencia da arquitectura de seguridade da plataforma Arm® (PSA) para TrustZone® cos servizos seguros asociados.
    • mbed-crypto (software de código aberto): o middleware mbed-crypto proporciona unha implementación da API de criptografía PSA.
    • Biblioteca de detección táctil STM32: solución robusta de detección táctil capacitiva STMTouch, que admite sensores de proximidade, teclas táctiles, lineais e rotativos. Baséase nun principio comprobado de adquisición de transferencia de carga superficial.

Exampficheiros baseados nos compoñentes de middleware
Cada compoñente de middleware vén cun ou máis examples (tamén chamadas aplicacións) que mostran como usalo. Integración exampTamén se proporcionan ficheiros que usan varios compoñentes de middleware.

Paquete de firmware STM32CubeWBA terminadoview

Dispositivos e hardware da serie STM32WBA compatibles

  • STM32Cube ofrece unha capa de abstracción de hardware (HAL) altamente portátil construída arredor dunha arquitectura xenérica. Permite o principio das capas de acumulación, como usar a capa de middleware para implementar as súas funcións sen saber en profundidade que MCU se usa. Isto mellora a reutilización do código da biblioteca e garante unha fácil portabilidade a outros dispositivos.
  • Ademais, grazas á súa arquitectura en capas, o STM32CubeWBA ofrece compatibilidade total con todas as series STM32WBA.
  • O usuario só ten que definir a macro correcta en stm32wbaxx.h.
  • A táboa 1 mostra a macro a definir dependendo do dispositivo da serie STM32WBA utilizado. Esta macro tamén debe definirse no preprocesador do compilador.
    Táboa 1. Macros para a serie STM32WBA
    Macro definida en stm32wbaxx.h Dispositivos da serie STM32WBA
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA presenta un rico conxunto de exampficheiros e aplicacións a todos os niveis facilitando a comprensión e o uso de calquera controlador HAL ou compoñentes de middleware. Estes exampOs ficheiros execútanse nas placas de STMicroelectronics listadas na Táboa 2.
    Táboa 2. Placas para a serie STM32WBA
    Xunta Dispositivos compatibles con placa STM32WBA
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • O paquete STM32CubeWBA MCU pode executarse en calquera hardware compatible. O usuario simplemente actualiza os controladores BSP para portar o exampficheiros no taboleiro, se este último ten as mesmas características de hardware (como LED, pantalla LCD e botóns).
Paquete de firmware rematadoview
  • A solución do paquete STM32CubeWBA ofrécese nun único paquete zip que ten a estrutura que se mostra na Figura 3. Estrutura do paquete de firmware STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-4

  • Para cada taboleiro, un conxunto de examples proporciona proxectos preconfigurados para as cadeas de ferramentas EWARM, MDK-ARM e STM32CubeIDE.
  • Figura 4. STM32CubeWBA exampos acabadosview mostra a estrutura do proxecto para as placas NUCLEO-WBA52CG, NUCLEO-WBA55CG e STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-5

  • O exampOs ficheiros clasifícanse dependendo do nivel STM32Cube ao que se aplican, e denomínanse do seguinte xeito:
    • Nivel 0 exampos chámanse Examples, Examples_LL e Examples_MIX. Usan respectivamente controladores HAL, controladores LL e unha mestura de controladores HAL e LL sen ningún compoñente de middleware.
    • Nivel 1 exampOs ficheiros chámanse Aplicacións. Ofrecen casos de uso típicos de cada compoñente de middleware. Calquera aplicación de firmware para unha placa determinada pódese construír rapidamente grazas aos proxectos de modelos dispoñibles nos directorios Templ ates e Templates_LL.

Proxectos habilitados para TrustZone®

  • TrustZone® habilitado ExampOs nomes dos ficheiros conteñen o prefixo _TrustZone. A regra tamén se aplica ás aplicacións (excepto para TFM e SBSFU, que son nativamente para TrustZone®).
  • TrustZone® habilitado ExampOs ficheiros e aplicacións están provistos dunha estrutura multiproxecto composta por subproxectos seguros e non seguros, como se presenta na Figura 5. Estrutura do proxecto multiproxecto seguro e non seguro.
  • Os proxectos habilitados para TrustZone® desenvólvense segundo o modelo de dispositivo CMSIS-5, ampliado para incluír a cabeceira de partición do sistema file partición_ .h, que é o principal responsable da configuración da unidade de atributos seguros (SAU), da FPU e da asignación de interrupcións seguras/non seguras no estado de execución seguro.
  • Esta configuración realízase na función segura CMSIS SystemInit(), que se chama ao inicio antes de entrar na función segura main() da aplicación. Consulte a documentación de Arm® TrustZone®-M das directrices do software.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-6

  • O paquete de firmware do paquete STM32CubeWBA proporciona partición de memoria predeterminada na partición _ .h files dispoñibles en: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • Nesta partición files, o SAU está desactivado por defecto. En consecuencia, a asignación de memoria IDAU úsase para a atribución de seguridade. Consulte a figura Particionamento seguro/non seguro mediante a tecnoloxía TrustZone® no manual de referencia RM0495.
  • Se o usuario activa a SAU, unha configuración predeterminada das rexións SAU está predefinida na partición files do seguinte xeito:
    • Rexión SAU 0: 0x08080000 – 0x081FFFFF (metade segura non segura da memoria flash (512 Kbytes))
    • Rexión SAU 1: 0x0BF88000 – 0x0BF97FFF (memoria do sistema non segura)
    • Rexión SAU 2: 0x0C07E000 – 0x0C07FFFF (seguro e non seguro)
    • Rexión SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 non segura (64 Kbytes))
    • Rexión SAU 4: 0x40000000 – 0x4FFFFFFF (memoria mapeada periférica non segura)
  • Para que coincida coa partición predeterminada, os dispositivos da serie STM32WBAxx deben ter establecidos os seguintes bytes de opción de usuario:
    • TZEN = 1 (dispositivo compatible con TrustZone®)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 das 128 páxinas de memoria flash interna definidas como segura) Nota: a memoria flash interna é totalmente segura de forma predeterminada en TZEN = 1. Os bytes de opción de usuario SECWM1_PSTRT/ SECWM1_PEND deben configurarse segundo a aplicación configuración de memoria (rexións SAU, se SAU está activado). Enlazador de proxectos de aplicacións seguras/non seguras files tamén deben estar aliñados.
  • Todo exampOs ficheiros teñen a mesma estrutura:
    • Cartafol \Inc que contén todas as cabeceiras files.
    • Cartafol Src que contén o código fonte.
    • \EWARM, \MDK-ARM e \STM32CubeIDE que conteñen o proxecto preconfigurado para cada cadea de ferramentas.
    • readme.md e readme.html describindo o exampo comportamento e o ambiente necesario para facelo funcionar.
    • ioc file que permite aos usuarios abrir a maior parte do firmware, por exemploampficheiros dentro de STM32CubeMX.

Comezando con STM32CubeWBA

Realizando un primeiro HAL example

Esta sección explica o sinxelo que é executar o primeiro example dentro de STM32CubeWBA. Usa como ilustración a xeración dun simple alternador LED que se executa na placa NUCLEO-WBA52CG:

  1. Descarga o paquete STM32CubeWBA MCU.
  2. Descomprimilo nun directorio que elixas.
  3. Asegúrate de non modificar a estrutura do paquete que se mostra na Figura 1. Tamén se recomenda copiar o paquete nun lugar próximo ao teu volume raíz (é dicir, C:\ST ou G:\Tests), xa que algúns IDEs atopan problemas cando a ruta a lonxitude é demasiado longa.

Executar un primeiro TrustZone® habilitado, por exemploample

  • Antes de cargar e executar un TrustZone® habilitado por exemploample, é obrigatorio ler o exampleame file para calquera configuración específica, o que garante que a seguridade estea activada como se describe na Sección 4.2.1 Proxectos habilitados para TrustZone® (TZEN=1 (byte de opción de usuario)).
    1. Navega ata \Proxectos\NUCLEO-WBA52CG\Examples.
    2. Abra \GPIO e, a continuación, os cartafoles \GPIO_IOToggle_TrustZone.
    3. Abre o proxecto coa túa cadea de ferramentas preferida. Un paso rápidoview sobre como abrir, construír e executar un exampA continuación indícase o le coas cadeas de ferramentas compatibles.
    4. Reconstrúe en secuencia todos os proxectos seguros e non seguros files e carga as imaxes seguras e non seguras na memoria de destino.
    5. Executar o example: regularmente, a aplicación segura alterna LD2 cada segundo e a aplicación non segura cambia LD3 o dobre de rápido. Para máis detalles, consulte o readme file do example.
  • Para abrir, construír e executar un example coas cadeas de ferramentas admitidas, siga os pasos seguintes:
    • EWARM:
      1. Baixo o example, abra o subcartafol \EWARM.
      2. Inicie o espazo de traballo Project.eww
      3. Reconstruír o proxecto seguro xxxxx_S files: [Proxecto]> [Reconstruír todo].
      4. Establece o proxecto non seguro xxxxx_NS como aplicación activa (faga clic co botón dereito no proxecto xxxxx_NS [Establecer como activo])
      5. Reconstruír o proxecto non seguro xxxxx_NS files: [Proxecto]> [Reconstruír todo].
      6. Flashear o binario non seguro con [Proxecto]>[Descargar]>[Descargar aplicación activa] .
      7. Establece o xxxxx_S como aplicación activa (faga clic co botón dereito no proxecto xxxxx_S [Establecer como activo].
      8. Flashear o binario seguro co [Descargar e depurar] (Ctrl+D).
      9. Executar o programa: [Depurar]> [Ir (F5)]
    • MDK-ARM:
      1. Abra a cadea de ferramentas \MDK-ARM.
      2. Abre o espazo de traballo Multiproxectos file Proxecto.uvmpw.
      3. Seleccione o proxecto xxxxx_s como aplicación activa ([Establecer como proxecto activo]).
      4. Construír o proxecto xxxxx_s.
      5. Seleccione o proxecto xxxxx_ns como proxecto activo ([Establecer como proxecto activo]).
      6. Construír o proxecto xxxxx_ns.
      7. Carga o binario non seguro ([F8]). Isto descarga \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf na memoria flash)
      8. Seleccione o proxecto Project_s como proxecto activo ([Establecer como proxecto activo]).
      9. Cargue o binario seguro ([F8]). Isto descarga \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf na memoria flash).
      10. Executar o example.
    • STM32CubeIDE:
      1. Abra a cadea de ferramentas STM32CubeIDE.
      2. Abre o espazo de traballo Multiproxectos file .proxecto.
      3. Reconstruír o proxecto xxxxx_Secure.
      4. Reconstruír o proxecto xxxxx_NonSecure.
      5. Inicie a aplicación [Depurar como STM32 Cortex-M C/C++] para o proxecto seguro.
      6. Na xanela [Editar configuración], seleccione o panel [Inicio] e engada cargar a imaxe e os símbolos do proxecto non seguro.
        Importante: O proxecto non seguro debe cargarse antes do proxecto seguro.
      7. Fai clic en [Aceptar].
      8. Executar o example sobre a perspectiva de depuración.

Execución dunha primeira TrustZone® desactivada, por exemploample

  • Antes de cargar e executar un TrustZone® desactivado por exemploample, é obrigatorio ler o exampleame file para calquera configuración específica. Se non hai mencións específicas, asegúrese de que o dispositivo da placa teña a seguridade desactivada (TZEN=0 (byte de opción de usuario)). Consulte as preguntas frecuentes para facer a regresión opcional a TZEN = 0
    1. Navega ata \Proxectos\NUCLEO-WBA52CG\Examples.
    2. Abre os cartafoles \GPIO e despois \GPIO_EXTI.
    3. Abre o proxecto coa túa cadea de ferramentas preferida. Un paso rápidoview sobre como abrir, construír e executar un exampA continuación indícase o le coas cadeas de ferramentas compatibles.
    4. Reconstruír todo files e carga a túa imaxe na memoria de destino.
    5. Executar o example: Cada vez que se preme o botón [USUARIO], o LED LD1 cambia. Para máis detalles, consulte o readme file do example.
  • Para abrir, construír e executar un example coas cadeas de ferramentas admitidas, siga os pasos seguintes:
    • EWARM:
      1. Baixo o example, abra o subcartafol \EWARM.
      2. Inicie o espazo de traballo Project.eww (o nome do espazo de traballo pode cambiar dun example a outro).
      3. Reconstruír todo files: [Proxecto]> [Reconstruír todo].
      4. Carga a imaxe do proxecto: [Proxecto]>[Depurar].
      5. Executar programa: [Depurar]>[Ir (F5)].
    • MDK-ARM:
      1. Baixo o example, abra o subcartafol \MDK-ARM.
      2. Inicie o espazo de traballo Project.uvproj (o nome do espazo de traballo pode cambiar dun exemploample a outro).
      3. Reconstruír todo files:[Proxecto]>[Reconstruír todo o destino files].
      4. Cargue a imaxe do proxecto: [Depurar]>[Iniciar/Deter sesión de depuración].
      5. Executar programa: [Depurar]>[Executar (F5)].
    • STM32CubeIDE:
      1. Abra a cadea de ferramentas STM32CubeIDE.
      2. Fai clic en [File]>[Cambiar espazo de traballo]>[Outro] e navegue ata o directorio do espazo de traballo STM32CubeIDE.
      3. Fai clic en [File]>[Importar] , seleccione [Xeral]>[Proxectos existentes no espazo de traballo] e, a continuación, faga clic en [Seguinte].
      4. Navega ata o directorio do espazo de traballo STM32CubeIDE e selecciona o proxecto.
      5. Reconstruír todo o proxecto files: Seleccione o proxecto na xanela [Explorador de proxectos] e prema no menú [Proxecto]>[Construír proxecto].
      6. Executar o programa: [Executar]>[Depurar (F11)]
Desenvolvemento dunha aplicación personalizada

Nota: O software debe habilitar a caché de instrucións (ICACHE) para obter unha execución de estado de espera 0 desde a memoria flash, e acadar o máximo rendemento e un mellor consumo de enerxía.

Usando STM32CubeMX para desenvolver ou actualizar unha aplicación

  • No paquete STM32CubeWBA MCU, case todos os proxectos por exemploampOs ficheiros xéranse coa ferramenta STM32CubeMX para inicializar o sistema, os periféricos e o middleware.
  • A utilización directa dun proxecto existente exampO ficheiro da ferramenta STM32CubeMX require STM32CubeMX 6.10.0 ou superior:
    • Despois da instalación de STM32CubeMX, abra e, se é necesario, actualice un proxecto proposto. O xeito máis sinxelo de abrir un proxecto existente é facer dobre clic no *.ioc file para que STM32CubeMX abra automaticamente o proxecto e a súa orixe files.
    • STM32CubeMX xera o código fonte de inicialización destes proxectos. O código fonte da aplicación principal está contido nos comentarios "COMEZAR CÓDIGO DE USUARIO" e "FIN DO CÓDIGO DE USUARIO". No caso de que a selección e a configuración IP se modifiquen, STM32CubeMX actualiza a parte de inicialización do código pero conserva o código fonte da aplicación principal.
  • Para desenvolver un proxecto personalizado no STM32CubeMX, siga o proceso paso a paso:
    1. Seleccione o microcontrolador STM32 que coincida co conxunto de periféricos necesario.
    2. Configure todo o software incorporado necesario mediante un solucionador de conflitos de pinout, un axudante de configuración da árbore de reloxos, unha calculadora de consumo de enerxía e a utilidade que realiza a configuración de periféricos MCU (como GPIO ou USART) e pilas de middleware (como USB).
    3. Xera o código C de inicialización en función da configuración seleccionada. Este código está listo para usar en varios ambientes de desenvolvemento. O código de usuario gárdase na seguinte xeración de código.
  • Para obter máis información sobre STM32CubeMX, consulte o manual de usuario STM32CubeMX para a xeración de código C de configuración e inicialización de STM32 (UM1718).
  • Para obter unha lista dos proxectos dispoñibles exampficheiros para STM32CubeWBA, consulte a nota da aplicación STM32Cube firmware exampficheiros para a serie STM32WBA (AN5929).

Aplicacións de controladores

Aplicación HAL
Esta sección describe os pasos necesarios para crear unha aplicación HAL personalizada mediante STM32CubeWBA:

  1. Crear un proxecto
    • Para crear un novo proxecto, inicie dende o proxecto Modelo proporcionado para cada taboleiro en \Proxectos\ \Modelos ou de calquera proxecto dispoñible en \Proxectos\ \Exemplos ou \Proxectos\ \Aplicacións (onde refírese ao nome da placa, como STM32CubeWBA).
    • O proxecto Template ofrece unha función de bucle principal baleira. Non obstante, é un bo punto de partida para comprender a configuración do proxecto STM32CubeWBA. O modelo ten as seguintes características:
      • Contén o código fonte HAL, os controladores CMSIS e BSP, que son o conxunto mínimo de compoñentes necesarios para desenvolver un código nunha placa determinada.
      • Contén os camiños incluídos para todos os compoñentes do firmware.
      • Define os dispositivos da serie STM32WBA compatibles, permitindo que os controladores CMSIS e HAL se configuren correctamente.
      • Ofrece ao usuario listo para usar fileestá preconfigurado como se mostra a continuación:
        HAL inicializouse coa base de tempo predeterminada con Arm® Core SysTick. SysTick ISR implementado para HAL_Delay().
        Nota: Cando copies un proxecto existente noutra localización, asegúrate de que todos os camiños incluídos estean actualizados.
  2. Engade o middleware necesario ao proxecto do usuario (opcional)
    Para identificar a fonte files para engadir ao proxecto file lista, consulte a documentación proporcionada para cada middleware. Consulte as aplicacións en \Proxectos\STM32xxx_yyy\Aplicacións\ (onde refírese á pila de middleware, como ThreadX) para saber que fonte files e incluir rutas deben engadirse.
  3. Configure os compoñentes do firmware
    Os compoñentes HAL e middleware ofrecen un conxunto de opcións de configuración en tempo de compilación mediante macros #define declaradas nunha cabeceira file. Unha configuración de modelo file ofrécese dentro de cada compoñente, que ten que ser copiado no cartafol do proxecto (normalmente a configuración file chámase xxx_conf_template.h, a palabra _template debe ser eliminada ao copiala no cartafol do proxecto). A configuración file proporciona información suficiente para comprender o impacto de cada opción de configuración. A información máis detallada está dispoñible na documentación proporcionada para cada compoñente.
  4. Inicia a biblioteca HAL
    Despois de saltar ao programa principal, o código da aplicación debe chamar á API HAL_Init() para inicializar a biblioteca HAL, que leva a cabo as seguintes tarefas:
    • Configuración da captura previa da memoria flash e da prioridade de interrupción SysTick (a través de macros definidas en st m32wbaxx_hal_conf.h).
    • Configuración do SysTick para xerar unha interrupción cada milisegundo na prioridade de interrupción SysTick TICK_INT_PRIO definida en stm32wbaxx_hal_conf.h.
    • Configuración da prioridade do grupo NVIC en 0.
    • Chamada á función de devolución de chamada HAL_MspInit() definida no usuario stm32wbaxx_hal_msp.c file para realizar inicializacións de hardware de baixo nivel global.
  5. Configura o reloxo do sistema
    A configuración do reloxo do sistema realízase chamando ás dúas API descritas a continuación:
    • HAL_RCC_OscConfig(): esta API configura os osciladores internos e externos. O usuario elixe configurar un ou todos os osciladores.
    • HAL_RCC_ClockConfig(): esta API configura a fonte do reloxo do sistema, a latencia da memoria flash e os preescaladores AHB e APB.
  6. Inicializa o periférico
    • Primeiro escriba a función periférica HAL_PPP_MspInit. Proceda do seguinte xeito:
      • Activa o reloxo periférico.
      • Configurar os GPIO periféricos.
      • Configura a canle DMA e activa a interrupción DMA (se é necesario).
      • Activa a interrupción do periférico (se é necesario).
    • Edite o stm32xxx_it.c para chamar aos controladores de interrupcións necesarios (periférico e DMA), se é necesario.
    • Escribir funcións de devolución de chamada completas do proceso, se se prevé utilizar unha interrupción periférica ou DMA.
    • No usuario principal.c file, inicialice a estrutura de identificador do periférico e logo chame á función HAL_PPP_Init() para inicializar o periférico.
  7. Desenvolver unha aplicación
    • Neste stage, o sistema está listo e pode comezar o desenvolvemento do código da aplicación de usuario.
    • O HAL ofrece API intuitivas e listas para usar para configurar o periférico. Admite sondaxes, interrupcións e un modelo de programación DMA, para acomodar calquera requisito da aplicación. Para obter máis detalles sobre como usar cada periférico, consulte o exampconxunto de ficheiros proporcionado no paquete STM32CubeWBA MCU.
      Atención: Na implementación HAL predeterminada, o temporizador SysTick úsase como base de tempo: xera interrupcións a intervalos de tempo regulares. Se se chama HAL_Delay() desde o proceso ISR periférico, asegúrese de que a interrupción SysTick teña unha prioridade máis alta (numericamente máis baixa) que a interrupción periférica. En caso contrario, o proceso ISR da chamada está bloqueado. As funcións que afectan ás configuracións da base de tempo decláranse como __débiles para facer posible a substitución no caso de outras implementacións no usuario file (usando un temporizador de propósito xeral, por exemploample ou outra fonte temporal). Para obter máis detalles, consulte HAL_TimeBase example.

Aplicación LL
Esta sección describe os pasos necesarios para crear unha aplicación LL personalizada usando STM32CubeWBA.

  1. Crear un proxecto
    • Para crear un novo proxecto, inicie desde o proxecto Templates_LL proporcionado para cada taboleiro en \Proxectos\ \Templates_LL, ou desde calquera proxecto dispoñible en \Proxectos\ \Examples_LL ( fai referencia ao nome da placa, como NUCLEO-WBA32CG).
    • O proxecto modelo ofrece unha función de bucle principal baleiro, que é un bo punto de partida para comprender a configuración do proxecto para STM32CubeWBA. As principais características do modelo son as seguintes:
      • Contén os códigos fonte dos controladores LL e CMSIS, que son o conxunto mínimo de compoñentes necesarios para desenvolver código nunha placa determinada.
      • Contén os camiños incluídos para todos os compoñentes de firmware necesarios.
      • Selecciona o dispositivo da serie STM32WBA compatible e permite a configuración correcta dos controladores CMSIS e LL.
      • Ofrece ao usuario listo para o seu uso files que están preconfigurados do seguinte xeito:
        ◦ main.h: capa de abstracción de definición de LED e USER_BUTTON.
        ◦ main.c: configuración do reloxo do sistema para a frecuencia máxima.
  2. Transferir un proxecto existente a outra placa
    Para apoiar un proxecto existente noutro taboleiro de destino, comeza desde o proxecto Templates_LL proporcionado para cada taboleiro e dispoñible en \Proxectos\ \Modelos_LL.
    • Seleccione un LL example: Para atopar o taboleiro no que LL exampos ficheiros están despregados, consulte a lista de LL exampos STM32CubeProjectsList.html.
  3. Porta o LL exampLe:
    • Copie/pegue o cartafol Templates_LL (para manter a fonte inicial) ou actualice directamente o proxecto Temp lates_LL existente.
    • Entón a portabilidade consiste principalmente en substituír Templates_LL files polo Exampproxecto dirixido a les_LL.
    • Manteña todas as partes específicas da placa. Por razóns de claridade, as partes específicas do taboleiro están marcadas con específicas tags:

      STMicroelectronics-STM32WBA-Series-Getting-Started-fig-7

    • Así, os principais pasos de portabilidade son os seguintes:
      • Substitúe o ficheiro stm32wbaxx_it.h file
      • Substitúe o ficheiro stm32wbaxx_it.c file
      • Substitúe o principal.h file e actualízao: mantén a definición do LED e do botón de usuario do modelo LL en CONFIGURACIÓN ESPECÍFICA DA PLACA tags.
      • Substitúe o principal.c file e actualízao:
    • Mantén a configuración do reloxo da función de modelo SystemClock_Config() LL en CONFIGURACIÓN ESPECÍFICA DA PLACA tags.
    • Dependendo da definición do LED, substitúe cada aparición de LDx por outro LDy dispoñible no main.h file.
    • Con estas modificacións, o example agora execútase no taboleiro de destino

Aplicacións de seguridade
Este paquete entrégase con aplicacións de seguridade.

Aplicacións SBSFU

  • SBSFU ofrece unha solución Root of Trust, que inclúe funcións de arranque seguro e actualización de firmware segura (baseadas en MCUboot).
  • A solución úsase antes de executar a aplicación.
  • A solución ofrece un exampficheiro dun servizo seguro (alternar GPIO), que está illado da aplicación non segura. A aplicación non segura en tempo de execución aínda pode usar esta solución.

Aplicacións TFM
O TFM ofrece unha solución Root of Trust que inclúe funcións de inicio seguro e actualización de firmware segura
(baseado en MCUboot). A solución úsase antes de executar a aplicación. A solución ofrece servizos seguros de TFM que están illados da aplicación non segura. A aplicación non segura en tempo de execución aínda pode usar esta solución.

Aplicacións de RF
A aplicación de RF descríbese nesta nota da aplicación: Creación de aplicacións sen fíos con microcontroladores da serie STM32WBA (AN5928).

Recibindo actualizacións da versión STM32CubeWBA
As versións e parches máis recentes do paquete STM32CubeWBA MCU están dispoñibles na serie STM32WBA. Poden ser recuperados do botón VERIFICAR ACTUALIZACIÓN en STM32CubeMX. Para obter máis detalles, consulte a Sección 3 do manual de usuario STM32CubeMX para a configuración e a xeración de código C de inicialización STM32 (UM1718).

FAQ

  • Cando debo usar HAL en lugar dos controladores LL?
    • Os controladores HAL ofrecen API de alto nivel e orientadas a funcións, cun alto nivel de portabilidade. A complexidade do produto ou do periférico está oculta para os usuarios finais.
    • Os controladores LL ofrecen API de nivel de rexistro de capa baixa, cunha mellor optimización pero menos portátil. Requiren un coñecemento profundo das especificacións do produto ou IP.
  • Podo usar os controladores HAL e LL xuntos? Se podo, cales son as limitacións?
    • É posible utilizar controladores HAL e LL. Use o HAL para a fase de inicialización IP e, a continuación, xestione as operacións de E/S con controladores LL.
    • A principal diferenza entre HAL e LL é que os controladores HAL requiren crear e usar identificadores para a xestión de operacións mentres que os controladores LL operan directamente en rexistros periféricos. O Examples_MIX example ilustra como mesturar HAL e LL.
  • Como se activan as API de inicialización de LL?
    • A definición das API de inicialización de LL e dos recursos asociados (estruturas, literais e prototipos) está condicionada polo interruptor de compilación USE_FULL_LL_DRIVER.
    • Para poder usar as API de inicialización de LL, engade este interruptor no preprocesador do compilador da cadea de ferramentas.
  • Como pode STM32CubeMX xerar código baseado en software incorporado?
    STM32CubeMX ten coñecemento incorporado dos microcontroladores STM32, incluíndo os seus periféricos e software que permite proporcionar unha representación gráfica ao usuario e xerar *.h ou *.c files en función da configuración do usuario.

AVISO IMPORTANTE - LEA ATENTAMENTE

  • STMicroelectronics NV e as súas subsidiarias (“ST”) resérvanse o dereito de realizar cambios, correccións, melloras, modificacións e melloras nos produtos ST e/ou neste documento en calquera momento sen previo aviso. Os compradores deben obter a información relevante máis recente sobre produtos ST antes de facer pedidos. Os produtos ST véndense de acordo cos termos e condicións de venda de ST existentes no momento do recoñecemento da orde.
  • Os compradores son os únicos responsables da elección, selección e uso dos produtos ST e ST non asume ningunha responsabilidade pola asistencia á aplicación ou o deseño dos produtos dos compradores.
  • ST non concede ningunha licenza, expresa ou implícita, a ningún dereito de propiedade intelectual.
  • A revenda de produtos ST con disposicións diferentes da información aquí establecida anulará calquera garantía concedida por ST para tal produto.
  • ST e o logotipo de ST son marcas comerciais de ST. Para obter información adicional sobre as marcas comerciais ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou servizos son propiedade dos seus respectivos propietarios.
  • A información deste documento substitúe e substitúe a información proporcionada anteriormente en calquera versión anterior deste documento.
  • © 2023 STMicroelectronics – Todos os dereitos reservados

Documentos/Recursos

Introdución á serie STMicroelectronics STM32WBA [pdfManual do usuario
Serie STM32WBA Iniciación, iniciación, inicio

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *