STMicroelectronics-logo

STMicroelectronics STM32WBA-reeks Aan die gang

STMicroelectronics-STM32WBA-Series-Begin-fig-1

Produk inligting

Spesifikasies:

  • Produk Naam: STM32CubeWBA MCU-pakket
  • Vervaardiger: STMicroelectronics
  • Verenigbaarheid: STM32WBA reeks mikrobeheerders
  • Lisensiëring: Oopbron BSD-lisensie

Produkgebruiksinstruksies

Belangrikste kenmerke van STM32CubeWBA MCU-pakket:
Die STM32CubeWBA MCU-pakket verskaf al die nodige ingebedde sagtewarekomponente vir die ontwikkeling van toepassings op STM32WBA-reeks mikrobeheerders. Dit is hoogs draagbaar binne die STM32-reeks en kom met HAL en LL API's, bvamples, en middelware-komponente.

Argitektuur verbyview:
Die argitektuur van die STM32CubeWBA MCU-pakket bestaan ​​uit drie vlakke – Toepassings, Biblioteek- en protokol-gebaseerde komponente, Hardeware-abstraksielaag, BSP-drywers, Kernbestuurders en Lae-laag API's.

Gereelde vrae

  • Wat is by die STM32CubeWBA MCU-pakket ingesluit?
    Die pakket bevat laelaag (LL) en hardeware abstraksielaag (HAL) API's, bvamples, toepassings, middelware komponente soos FileX/LevelX, NetX Duo, mbed-crypto biblioteke, en meer.
  • Is die STM32CubeWBA MCU-pakket versoenbaar met STM32CubeMX-kodegenerator?
    Ja, die pakket is ten volle versoenbaar met die STM32CubeMX-kodegenerator vir die generering van inisialiseringskode.

Inleiding

  • STM32Cube is 'n oorspronklike STMicroelectronics-inisiatief om ontwerperproduktiwiteit aansienlik te verbeter deur ontwikkelingspoging, tyd en koste te verminder. STM32Cube dek die hele STM32-portefeulje.
    STM32Cube sluit in:
    • 'n Stel gebruikersvriendelike sagteware-ontwikkelingsinstrumente om projekontwikkeling van konsepsie tot realisering te dek, waaronder:
      • STM32CubeMX, 'n grafiese sagteware-konfigurasie-instrument wat die outomatiese generering van C-inisialiseringskode moontlik maak met behulp van grafiese towenaars
      • STM32CubeIDE, 'n alles-in-een ontwikkelingsinstrument met perifere konfigurasie, kodegenerering, kodesamestelling en ontfoutingskenmerke
      • STM32CubeCLT, 'n alles-in-een opdragreël-ontwikkelingsinstrumentstel met kodesamestelling, bordprogrammering en ontfoutingsfunksies
      • STM32CubeProgrammer (STM32CubeProg), 'n programmeringsinstrument beskikbaar in grafiese en opdragreëlweergawes
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), kragtige moniteringsinstrumente om die gedrag en werkverrigting van STM32-toepassings intyds te verfyn
    • STM32Cube MCU en MPU-pakkette, omvattende ingebedde sagteware-platforms spesifiek vir elke mikrobeheerder en mikroverwerkerreeks (soos STM32CubeWBA vir die STM32WBA-reeks), wat insluit:
      • STM32Cube hardeware abstraksielaag (HAL), verseker maksimum draagbaarheid oor die STM32-portefeulje
      • STM32Cube lae-laag API's, wat die beste werkverrigting en voetspore verseker met 'n hoë mate van gebruikersbeheer oor hardeware
      • 'n Konsekwente stel middelware-komponente soos ThreadX, FileX / LevelX, NetX Duo, USBX, aanraakbiblioteek, mbed-crypto, TFM, MCUboot, OpenBL en STM32_WPAN (insluitend Bluetooth® Low Energy profiles en dienste, Mesh, Zigbee®, OpenThread, Matter en 802.15.4 MAC-laag)
      • Alle ingebedde sagteware nutsprogramme met volledige stelle perifere en toepaslike bvamples
    • STM32Cube Uitbreidingspakkette, wat ingebedde sagtewarekomponente bevat wat die funksionaliteite van die STM32Cube MCU en MPU-pakkette aanvul met:
      • Middelware-uitbreidings en toepaslike lae
      • Examples wat op 'n paar spesifieke STMicroelectronics-ontwikkelingsborde loop
  • Hierdie gebruikershandleiding beskryf hoe om met die STM32CubeWBA MCU-pakket te begin.
    • Afdeling 2 STM32CubeWBA hoofkenmerke beskryf die hoofkenmerke van die STM32CubeWBA MCU-pakket.
    • Afdeling 3 STM32CubeWBA argitektuur verbyview bied 'n oorview van die STM32CubeWBA-argitektuur en die MCU-pakketstruktuur.

Algemene inligting

Die STM32CubeWBA MCU-pakket loop op STM32 32-bis mikrobeheerders gebaseer op die Arm® Cortex®-M33 verwerker met Arm® TrustZone® en FPU.
Let wel: Arm en TrustZone is geregistreerde handelsmerke van Arm Limited (of sy filiale) in die VSA en/of elders.

STM32CubeWBA hoofkenmerke

  • Die STM32CubeWBA MCU-pakket loop op STM32 32-bis mikrobeheerders gebaseer op die Arm® Cortex®-M33 verwerker met TrustZone® en FPU.
  • Die STM32CubeWBA versamel, in 'n enkele pakket, al die generiese ingebedde sagteware-komponente wat nodig is om 'n toepassing vir die STM32WBA-reeks mikrobeheerders te ontwikkel. In ooreenstemming met die STM32Cube-inisiatief, is hierdie stel komponente hoogs draagbaar, nie net binne die STM32WBA-reeks mikrobeheerders nie, maar ook na ander STM32-reekse.
  • Die STM32CubeWBA is ten volle versoenbaar met die STM32CubeMX-kodegenerator, om inisialiseringskode te genereer. Die pakket bevat lae-laag (LL) en hardeware abstraksielaag (HAL) API's wat die mikrobeheerder hardeware dek, tesame met 'n uitgebreide stel eks.amples wat op STMicroelectronics-borde loop. Die HAL en LL API's is beskikbaar in 'n oopbron BSD-lisensie vir gebruikersgerief.
  • Die STM32CubeWBA MCU-pakket bevat ook 'n omvattende middelware-komponent wat gebou is rondom Microsoft® Azure® RTOS-middelware, en ander interne en oopbron-stapels, met die ooreenstemmende examples.
  • Hulle kom met gratis, gebruikersvriendelike lisensiebepalings:
    • Geïntegreerde en volledige Azure® RTOS: Azure® RTOS ThreadX
    • CMSIS-RTOS-implementering met Azure® RTOS ThreadX
    • USB-gasheer- en -toestelstapels kom met baie klasse: Azure® RTOS USBX
    • Gevorderd file stelsel en flitsvertalingslaag: FileX / VlakX
    • Industriële graad netwerkstapel: geoptimaliseer vir werkverrigting met baie IoT-protokolle: NetX Duo
    • OpenBootloader
    • Arm® Trusted Firmware-M (TF‑M)-integrasie-oplossing
    • mbed-crypto biblioteke
    • ST Netwok Biblioteek
    • STMTouch touch sensing biblioteek oplossing
  • Verskeie toepassings en demonstrasies wat al hierdie middelware-komponente implementeer, word ook in die STM32CubeWBA MCU-pakket voorsien.
  • Die STM32CubeWBA MCU Pakket komponent uitleg word geïllustreer in Figuur 1. STM32CubeWBA MCU Pakket komponente.

    STMicroelectronics-STM32WBA-Series-Begin-fig-2

STM32CubeWBA argitektuur verbyview

Die STM32CubeWBA MCU pakket oplossing is gebou rondom drie onafhanklike vlakke wat maklik interaksie het soos beskryf in Figuur 2. STM32CubeWBA MCU pakket argitektuur.

STMicroelectronics-STM32WBA-Series-Begin-fig-3

Vlak 0

Hierdie vlak word in drie sublae verdeel:

  • Raadsondersteuningspakket (BSP).
  • Hardeware-abstraksielaag (HAL):
    • HAL perifere drywers
    • Lae-laag drywers
  • Basiese perifere gebruik bvamples.

Raadsondersteuningspakket (BSP)
Hierdie laag bied 'n stel API's relatief tot die hardewarekomponente in die hardewareborde (soos LCD-, Oudio-, \ microSD™- en MEMS-drywers). Dit bestaan ​​uit twee dele:

  • Komponent bestuurder:
    Hierdie bestuurder is verwant aan die eksterne toestel op die bord, en nie aan die STM32-toestel nie. Die komponentbestuurder verskaf spesifieke API's aan die BSP-bestuurder se eksterne komponente en kan op enige ander bord draagbaar wees.
  • BSP bestuurder:
    Die BSP-bestuurder laat toe om die komponentbestuurders aan 'n spesifieke bord te koppel, en bied 'n stel gebruikersvriendelike
    API's. Die API-naamreël is BSP_FUNCT_Action().
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP is gebaseer op 'n modulêre argitektuur wat maklike oordrag op enige hardeware moontlik maak deur net die lae-vlak roetines te implementeer.

Hardeware-abstraksielaag (HAL) en laelaag (LL)
Die STM32CubeWBA HAL en LL is komplementêr en dek 'n wye reeks toepassingsvereistes:

  • Die HAL-bestuurders bied hoëvlak-funksie-georiënteerde hoogs draagbare API's. Hulle verberg die MCU en perifere kompleksiteit vir die eindgebruiker.
    Die HAL-drywers verskaf generiese multi-instansie kenmerk-georiënteerde API's, wat gebruikerstoepassingsimplementering vereenvoudig deur gereed-vir-gebruik prosesse te verskaf. Byvoorbeeldample, vir die kommunikasie randapparatuur (I2S, UART, en ander), bied dit API's wat die inisiasie en konfigurasie van die randapparatuur moontlik maak, die bestuur van data-oordrag gebaseer op polling, onderbreking of DMA proses, en die hantering van kommunikasiefoute wat tydens kommunikasie kan ontstaan. Die HAL-bestuurder-API's word in twee kategorieë verdeel:
    1. Generiese API's, wat algemene en generiese funksies aan al die STM32-reeks mikrobeheerders verskaf.
    2. Uitbreidings-API's, wat spesifieke en pasgemaakte funksies vir 'n spesifieke familie of 'n spesifieke onderdeelnommer verskaf.
  • Die lae-laag API's bied lae-vlak API's op die registervlak, met beter optimalisering maar minder oordraagbaarheid.
    • Hulle benodig 'n diepgaande kennis van MCU en perifere spesifikasies.
    • Die LL-bestuurders is ontwerp om 'n vinnige liggewig kundige-georiënteerde laag te bied wat nader aan die hardeware as die HAL is. In teenstelling met die HAL, word LL API's nie voorsien vir randapparatuur waar geoptimaliseerde toegang nie 'n sleutelkenmerk is nie, of vir diegene wat swaar sagtewarekonfigurasie of komplekse boonste-vlak stapel benodig.
    • Die LL-bestuurders kenmerk:
      • 'n Stel funksies om perifere hoofkenmerke te inisialiseer volgens die parameters gespesifiseer in datastrukture.
      • 'n Stel funksies om inisialiseringsdatastrukture te vul met die terugstelwaardes wat ooreenstem met elke veld.
      • Funksie vir perifere deinitialisering (perifere registers herstel na hul verstekwaardes).
      • 'n Stel inlyn funksies vir direkte en atoomregister toegang.
      • Volle onafhanklikheid van HAL en vermoë om in selfstandige modus gebruik te word (sonder HAL-bestuurders).
      • Volledige dekking van die ondersteunde perifere kenmerke.

Basiese perifere gebruik bvamples
Hierdie laag omsluit die examples gebou oor die STM32 randapparatuur met slegs die HAL en BSP hulpbronne.

Vlak 1

Hierdie vlak word in twee sublae verdeel:

  • Middelware komponente
  • Examples gebaseer op die middelware-komponente

Middelware komponente

  • Die middelware is 'n stel biblioteke wat Bluetooth® Low Energy dek (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot en mbed-crypto.
  • Horisontale interaksie tussen die komponente van hierdie laag word gedoen deur die aanbevole API's te roep.
  • Vertikale interaksie met die lae-laag drywers word gedoen deur spesifieke terugroepe en statiese makro's wat in die biblioteekstelseloproepkoppelvlak geïmplementeer is.
  • Die hoofkenmerke van elke middelware-komponent is soos volg:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: 'n Intydse bedryfstelsel (RTOS), ontwerp vir ingebedde stelsels met twee funksionele modusse.
        • Algemene modus: Algemene RTOS-funksies soos draadbestuur en sinchronisasie, geheuepoelbestuur, boodskappe en gebeurtenishantering.
        • Modulemodus: 'n Gevorderde gebruikersmodus waarmee voorafgekoppelde ThreadX-modules deur 'n modulebestuurder kan laai en aflaai.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): Implementeer die Bluetooth® Low Energy-protokol vir die skakel- en stapellae.
    • MCUboot (oopbronsagteware)
    • Zigbee®-protokolle vir die stapel en verwante trosse.
    • Thread® protokol stapel en skakel laag.
    • Arm® betroubare firmware-M, TF-M (oopbronsagteware): Verwysingsimplementering van die Arm® platform sekuriteitsargitektuur (PSA) vir TrustZone® met die gepaardgaande veilige dienste.
    • mbed-crypto (oopbronsagteware): Die mbed-crypto-middelware bied 'n PSA-kriptografie-API-implementering.
    • STM32 Raakwaarnemingsbiblioteek: Robuuste STMTouch kapasitiewe aanraakwaarnemingsoplossing, ondersteun nabyheid, raaksleutel, lineêre en roterende raaksensors. Dit is gebaseer op 'n bewese oppervlaklading-oordrag-verkrygingsbeginsel.

Examples gebaseer op die middelware-komponente
Elke middelware-komponent kom met een of meer examples (ook genoem toepassings) wat wys hoe om dit te gebruik. Integrasie bvampLese wat verskeie middelware-komponente gebruik, word ook verskaf.

STM32CubeWBA-firmwarepakket verbyview

Ondersteunde STM32WBA-reeks toestelle en hardeware

  • STM32Cube bied 'n hoogs draagbare hardeware-abstraksielaag (HAL) wat rondom 'n generiese argitektuur gebou is. Dit laat die opbou-lae-beginsel toe, soos om die middelware-laag te gebruik om hul funksies te implementeer sonder om in-diepte te weet watter MCU gebruik word. Dit verbeter die herbruikbaarheid van die biblioteekkode en verseker 'n maklike oordraagbaarheid na ander toestelle.
  • Boonop, danksy sy gelaagde argitektuur, bied die STM32CubeWBA volle ondersteuning van alle STM32WBA-reekse.
  • Die gebruiker hoef net die regte makro in stm32wbaxx.h te definieer.
  • Tabel 1 toon die makro om te definieer afhangende van die STM32WBA-reeks toestel wat gebruik word. Hierdie makro moet ook in die samesteller-voorverwerker gedefinieer word.
    Tabel 1. Makro's vir STM32WBA-reeks
    Makro gedefinieer in stm32wbaxx.h STM32WBA reeks toestelle
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA beskik oor 'n ryk stel eksamplees en toepassings op alle vlakke wat dit maklik maak om enige HAL-bestuurder of middelware-komponente te verstaan ​​en te gebruik. Hierdie examples op die STMicroelectronics-borde gelys in Tabel 2.
    Tabel 2. Borde vir STM32WBA-reeks
    Raad Raad STM32WBA ondersteun toestelle
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • Die STM32CubeWBA MCU-pakket kan op enige versoenbare hardeware werk. Die gebruiker werk eenvoudig die BSP-bestuurders op om die verskafde examples op die bord, as laasgenoemde dieselfde hardeware-kenmerke het (soos LED, LCD-skerm en knoppies).
Fermware-pakket verbyview
  • Die STM32CubeWBA-pakketoplossing word voorsien in een enkele ritspakket met die struktuur wat in Figuur 3 getoon word. STM32CubeWBA-firmwarepakketstruktuur.

    STMicroelectronics-STM32WBA-Series-Begin-fig-4

  • Vir elke bord, 'n stel eksamples word voorsien van vooraf gekonfigureerde projekte vir EWARM-, MDK-ARM- en STM32CubeIDE-gereedskapskettings.
  • Figuur 4. STM32CubeWBA examples oorview toon die projekstruktuur vir die NUCLEO-WBA52CG-, NUCLEO-WBA55CG- en STM32WBA55G-DK1-borde.

    STMicroelectronics-STM32WBA-Series-Begin-fig-5

  • Die eksamplese word geklassifiseer na gelang van die STM32Cube-vlak waarop hulle van toepassing is, en hulle word soos volg benoem:
    • Vlak 0 bvamples word Examples, eksamples_LL, en Examples_MIX. Hulle gebruik onderskeidelik HAL-drywers, LL-drywers en 'n mengsel van HAL- en LL-drywers sonder enige middelware-komponent.
    • Vlak 1 bvamples word Toepassings genoem. Hulle bied tipiese gebruiksgevalle van elke middelware-komponent. Enige firmware-toepassing vir 'n gegewe bord kan vinnig gebou word danksy sjabloonprojekte wat in die Templ ates en Templates_LL-gidse beskikbaar is.

TrustZone®-geaktiveerde projekte

  • TrustZone®-geaktiveerde Examples name bevat die _TrustZone voorvoegsel. Die reël word ook vir Aansoeke toegepas (behalwe vir TFM en SBSFU, wat oorspronklik vir TrustZone® is).
  • TrustZone®-geaktiveerde Examples en toepassings word voorsien van 'n multiprojekstruktuur wat saamgestel is uit veilige en nie-veilige subprojekte soos voorgestel in Figuur 5. Multiprojek veilige en nie-veilige projekstruktuur.
  • TrustZone®-geaktiveerde projekte word ontwikkel volgens die CMSIS-5-toestelsjabloon, uitgebrei om die stelselpartisioneringskop in te sluit file partisie_ .h, wat hoofsaaklik verantwoordelik is vir die opstel van die veilige kenmerk-eenheid (SAU), die FPU, en die veilige/nie-veilige onderbrekingstoewysing in die veilige uitvoeringstaat.
  • Hierdie opstelling word uitgevoer in die veilige CMSIS SystemInit() funksie, wat by opstart geroep word voordat die veilige toepassing hoof() funksie ingevoer word. Verwys na Arm® TrustZone®-M-dokumentasie van sagtewareriglyne.

    STMicroelectronics-STM32WBA-Series-Begin-fig-6

  • Die STM32CubeWBA-pakket-firmwarepakket bied verstekgeheuepartisionering in die partisie _ .h files beskikbaar onder: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • In hierdie partisie files, die SAU is by verstek gedeaktiveer. Gevolglik word die IDAU geheue kartering gebruik vir sekuriteit toeskrywing. Verwys na figuur Veilige/nie-veilige partisionering met TrustZone®-tegnologie in die RM0495-verwysingshandleiding.
  • As die gebruiker die SAU aktiveer, word 'n verstek SAU-streke-konfigurasie vooraf in partisie gedefinieer files soos volg:
    • SAU-streek 0: 0x08080000 – 0x081FFFFF (nie-veilige veilige helfte van flitsgeheue (512 Kgrepe))
    • SAU-streek 1: 0x0BF88000 – 0x0BF97FFF (nie-veilige stelselgeheue)
    • SAU-streek 2: 0x0C07E000 – 0x0C07FFFF (veilig, nie-veilig oproepbaar)
    • SAU-streek 3: 0x20010000 – 0x2001FFFF (nie-veilige SRAM2 (64 Kgrepe))
    • SAU-streek 4: 0x40000000 – 0x4FFFFFFF (nie-veilige perifere gekarteerde geheue)
  • Om by die verstekpartisionering te pas, moet die STM32WBAxx-reeks toestelle die volgende gebruikersopsiegrepe gestel hê:
    • TZEN = 1 (TrustZone®-geaktiveerde toestel)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 uit 128 bladsye interne flitsgeheue gestel as veilig) Let wel: Die interne flitsgeheue is by verstek ten volle veilig in TZEN = 1. Die gebruikersopsiegrepe SECWM1_PSTRT/ SECWM1_PEND moet volgens die toepassing gestel word geheuekonfigurasie (SAU-streke, indien SAU geaktiveer is). Veilige/nie-veilige toepassingsprojekskakelaar files moet ook in lyn gebring word.
  • Alle examples het dieselfde struktuur:
    • \Inc-lêergids wat alle koptekste bevat files.
    • Src-lêergids wat die bronkode bevat.
    • \EWARM-, \MDK-ARM- en \STM32CubeIDE-vouers wat die vooraf gekonfigureerde projek vir elke gereedskapketting bevat.
    • readme.md en readme.html wat die eks beskryfample gedrag en die nodige omgewing om dit te laat werk.
    • ioc file wat gebruikers toelaat om die meeste van die firmware oop te maak, bvamples binne STM32CubeMX.

Aan die gang met STM32CubeWBA

Bestuur 'n eerste HAL example

Hierdie afdeling verduidelik hoe eenvoudig dit is om die eerste ex uit te voerample binne STM32CubeWBA. Dit gebruik as 'n illustrasie die generering van 'n eenvoudige LED-skakelaar wat op die NUCLEO-WBA52CG-bord loop:

  1. Laai die STM32CubeWBA MCU-pakket af.
  2. Pak dit uit in 'n gids van jou keuse.
  3. Maak seker dat jy nie die pakketstruktuur gewysig in Figuur 1 verander nie. Dit word ook aanbeveel om die pakket na 'n plek naby jou wortelvolume te kopieer (wat beteken C:\ST of G:\Tests), aangesien sommige IDE's probleme ondervind wanneer die pad lengte is te lank.

Om 'n eerste TrustZone®-geaktiveerde bvample

  • Voordat 'n TrustZone®-geaktiveerde bvample, dit is verpligtend om die examplees my file vir enige spesifieke konfigurasie, wat verseker dat die sekuriteit geaktiveer is soos beskryf in Afdeling 4.2.1 TrustZone®-geaktiveerde projekte (TZEN=1 (gebruikeropsiegreep)).
    1. Blaai na \Projects\NUCLEO-WBA52CG\Examples.
    2. Maak \GPIO oop, dan \GPIO_IOToggle_TrustZone-vouers.
    3. Maak die projek oop met jou voorkeur-gereedskapsketting. 'n Vinnige verbyview oor hoe om 'n ex oop te maak, te bou en te bestuurample met die ondersteunde gereedskapskettings word hieronder gegee.
    4. Herbou in volgorde alle veilige en nie-veilige projek files en laai die veilige en nie-veilige beelde in die teikengeheue.
    5. Begin die example: gereeld wissel die veilige toepassing LD2 elke sekonde, en die nie-veilige toepassing skakel LD3 twee keer so vinnig. Vir meer besonderhede, verwys na die readme file van die example.
  • Om 'n ex oop te maak, te bou en uit te voerampVolg die stappe hieronder met die ondersteunde gereedskapkettings:
    • EWARM:
      1. Onder die example gids, maak \EWARM subgids oop.
      2. Begin die Project.eww-werkspasie
      3. Herbou die xxxxx_S veilige projek files: [Projek]>[Herbou alles].
      4. Stel die xxxxx_NS nie-veilige projek as aktiewe toepassing (regskliek op xxxxx_NS projek [Stel as aktief])
      5. Herbou die xxxxx_NS nie-veilige projek files: [Projek]>[Herbou alles].
      6. Flits die nie-veilige binêre met [Project]>[Download]>[Laai aktiewe toepassing af] .
      7. Stel die xxxxx_S as aktief-toepassing (regskliek op xxxxx_S-projek [Stel as aktief].
      8. Flits die veilige binêre met die [Download and Debug] (Ctrl+D).
      9. Begin die program: [Debug]>[Go(F5)]
    • MDK-ARM:
      1. Maak die \MDK-ARM-gereedskapsketting oop.
      2. Maak die Multiprojekte-werkspasie oop file Project.uvmpw.
      3. Kies die xxxxx_s-projek as aktiewe toepassing ([Stel as aktiewe projek]).
      4. Bou die xxxxx_s-projek.
      5. Kies die xxxxx_ns-projek as aktiewe projek ([Stel as aktiewe projek]).
      6. Bou die xxxxx_ns-projek.
      7. Laai die nie-veilige binêre ([F8]). Dit laai \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf na flitsgeheue af)
      8. Kies die Project_s-projek as aktiewe projek ([Stel as aktiewe projek]).
      9. Laai die veilige binêre ([F8]). Dit laai \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf na flitsgeheue af).
      10. Begin die example.
    • STM32CubeIDE:
      1. Maak die STM32CubeIDE-gereedskapsketting oop.
      2. Maak die Multiprojekte-werkspasie oop file .projek.
      3. Herbou die xxxxx_Secure-projek.
      4. Herbou die xxxxx_NonSecure-projek.
      5. Begin die [Ontfout as STM32 Cortex-M C/C++]-toepassing vir die veilige projek.
      6. In die [Wysig konfigurasie] venster, kies die [Opstart] paneel, en voeg laai die beeld en simbole van die nie-veilige projek by.
        Belangrik: Die nie-veilige projek moet voor die veilige projek gelaai word.
      7. Klik op [Ok].
      8. Begin die example op ontfoutperspektief.

Begin 'n eerste TrustZone®-gedeaktiveerde bvample

  • Voordat 'n TrustZone®-gedeaktiveerde bvample, dit is verpligtend om die examplees my file vir enige spesifieke konfigurasie. As daar geen spesifieke meldings is nie, maak seker dat die bordtoestel sekuriteit gedeaktiveer het (TZEN=0 (gebruikeropsiegreep)). Sien Gereelde Vrae om die opsionele regressie na TZEN = 0 te doen
    1. Blaai na \Projects\NUCLEO-WBA52CG\Examples.
    2. Maak \GPIO oop, dan \GPIO_EXTI-vouers.
    3. Maak die projek oop met jou voorkeur-gereedskapsketting. 'n Vinnige verbyview oor hoe om 'n ex oop te maak, te bou en te bestuurample met die ondersteunde gereedskapskettings word hieronder gegee.
    4. Herbou alles files en laai jou beeld in die teikengeheue.
    5. Begin die example: Elke keer as die [USER]-drukknoppie gedruk word, wissel die LD1-LED. Vir meer besonderhede, verwys na die readme file van die example.
  • Om 'n ex oop te maak, te bou en uit te voerampVolg die stappe hieronder met die ondersteunde gereedskapkettings:
    • EWARM:
      1. Onder die example gids, maak \EWARM subgids oop.
      2. Begin die Project.eww-werkspasie (die werkspasienaam kan verander van een bvample na 'n ander).
      3. Herbou alles files: [Projek]>[Herbou alles].
      4. Laai die projekbeeld: [Project]>[Debug].
      5. Begin program: [Debug]>[Go (F5)].
    • MDK-ARM:
      1. Onder die example gids, maak die \MDK-ARM-subgids oop.
      2. Begin die Project.uvproj werkspasie (die werkspasie naam kan verander van een bvample na 'n ander).
      3. Herbou alles files:[Projek]>[Herbou alle teikens files].
      4. Laai die projekbeeld: [Debug]>[Begin/Stop Debug Sessie].
      5. Begin program: [Debug]>[Run (F5)].
    • STM32CubeIDE:
      1. Maak die STM32CubeIDE-gereedskapsketting oop.
      2. Klik op [File]>[Skakel Werkspasie]>[Ander] en blaai na die STM32CubeIDE-werkspasiegids.
      3. Klik op [File]>[Voer in] , kies [Algemeen]>[Bestaande projekte in werkspasie], en klik dan [Volgende].
      4. Blaai na die STM32CubeIDE-werkspasiegids en kies die projek.
      5. Herbou alle projek files: Kies die projek in die [Project Explorer]-venster en klik dan op die [Project]>[Build project]-kieslys.
      6. Begin die program: [Run]>[Debug (F11)]
Ontwikkel 'n pasgemaakte toepassing

Let wel: Sagteware moet die instruksiekas (ICACHE) aktiveer om 'n 0 wag-toestand uitvoering vanaf flitsgeheue te kry, en die maksimum werkverrigting en 'n beter kragverbruik te bereik.

Gebruik STM32CubeMX om 'n toepassing te ontwikkel of op te dateer

  • In die STM32CubeWBA MCU-pakket is byna alle projek bvamplese word gegenereer met die STM32CubeMX-instrument om die stelsel, randapparatuur en middelware te inisialiseer.
  • Die direkte gebruik van 'n bestaande projek bvample van die STM32CubeMX-instrument vereis STM32CubeMX 6.10.0 of hoër:
    • Na die installering van STM32CubeMX, maak 'n voorgestelde projek oop en werk indien nodig by. Die eenvoudigste manier om 'n bestaande projek oop te maak, is om te dubbelklik op die *.ioc file sodat STM32CubeMX outomaties die projek en sy bron oopmaak files.
    • STM32CubeMX genereer die inisialisering bronkode van sulke projekte. Die hooftoepassingsbronkode word vervat deur die opmerkings "USER CODE BEGIN" en "USER CODE END". In die geval dat die IP-keuse en -instelling gewysig word, dateer STM32CubeMX die inisialiseringsdeel van die kode op, maar behou die hooftoepassingsbronkode.
  • Vir die ontwikkeling van 'n pasgemaakte projek in die STM32CubeMX, volg die stap-vir-stap proses:
    1. Kies die STM32-mikrobeheerder wat by die vereiste stel randapparatuur pas.
    2. Konfigureer al die vereiste ingebedde sagteware met behulp van 'n pinout-konflikoplosser, 'n klokboom-instellingshulp, 'n kragverbruiksakrekenaar en die nutsprogram wat MCU-perifere-konfigurasie (soos GPIO of USART) en middelware-stapels (soos USB) uitvoer.
    3. Genereer die inisialisering C-kode gebaseer op die geselekteerde konfigurasie. Hierdie kode is gereed om binne verskeie ontwikkelingsomgewings te gebruik. Die gebruikerkode word by die volgende kodegenerering gehou.
  • Vir meer inligting oor STM32CubeMX, verwys na die gebruikershandleiding STM32CubeMX vir STM32-konfigurasie en inisialisering C-kode generering (UM1718).
  • Vir 'n lys van die beskikbare projek bvamples vir STM32CubeWBA, verwys na die toepassingsnota STM32Cube-firmware examples vir STM32WBA-reeks (AN5929).

Bestuurder toepassings

HAL aansoek
Hierdie afdeling beskryf die stappe wat nodig is om 'n pasgemaakte HAL-toepassing met behulp van STM32CubeWBA te skep:

  1. Skep 'n projek
    • Om 'n nuwe projek te skep, begin óf van die Sjabloonprojek wat vir elke bord voorsien is onder \Projects\ \Sjablone of van enige beskikbare projek onder \Projects\ \Voorbeelde of \Projekte\ \Toepassings (waar verwys na die bordnaam, soos STM32CubeWBA).
    • Die Template-projek bied 'n leë hooflusfunksie. Dit is egter 'n goeie beginpunt om die STM32CubeWBA-projekinstellings te verstaan. Die sjabloon het die volgende kenmerke:
      • Dit bevat die HAL-bronkode, CMSIS en BSP-bestuurders, wat die minimum stel komponente is wat nodig is om 'n kode op 'n gegewe bord te ontwikkel.
      • Dit bevat die ingesluit paaie vir al die firmware-komponente.
      • Dit definieer die ondersteunde STM32WBA-reeks toestelle, sodat die CMSIS- en HAL-bestuurders korrek gekonfigureer kan word.
      • Dit bied gebruikers wat gereed is om te gebruik files vooraf gekonfigureer soos hieronder getoon:
        HAL geïnisialiseer met die verstek tydbasis met Arm® kern SysTick. SysTick ISR geïmplementeer vir HAL_Delay() doel.
        Let wel: Wanneer u 'n bestaande projek na 'n ander plek kopieer, maak seker dat al die ingeslote paaie opgedateer is.
  2. Voeg die nodige middelware by die gebruikersprojek (opsioneel)
    Om die bron te identifiseer files om by die projek gevoeg te word file lys, verwys na die dokumentasie wat vir elke middelware verskaf word. Verwys na die aansoeke onder \Projects\STM32xxx_yyy\Applications\ (waar verwys na die middelware-stapel, soos ThreadX) om te weet watter bron files en sluit paaie moet bygevoeg word.
  3. Konfigureer die firmware-komponente
    Die HAL- en middelware-komponente bied 'n stel boutyd-konfigurasie-opsies met behulp van makro's #define wat in 'n kopskrif verklaar word file. 'n Sjabloonkonfigurasie file word in elke komponent verskaf, wat na die projeklêer gekopieer moet word (gewoonlik die konfigurasie file heet xxx_conf_template.h, die woord _template moet verwyder word wanneer dit na die projeklêer gekopieer word). Die konfigurasie file verskaf genoeg inligting om die impak van elke konfigurasie-opsie te verstaan. Meer gedetailleerde inligting is beskikbaar in die dokumentasie wat vir elke komponent verskaf word.
  4. Begin die HAL-biblioteek
    Nadat u na die hoofprogram gespring het, moet die toepassingskode HAL_Init() API oproep om die HAL-biblioteek te inisialiseer, wat die volgende take uitvoer:
    • Konfigurasie van die flitsgeheue-voorafhaal en SysTick-onderbrekingsprioriteit (deur makro's gedefinieer in st m32wbaxx_hal_conf.h).
    • Konfigurasie van die SysTick om 'n onderbreking elke millisekonde te genereer by die SysTick-onderbrekingsprioriteit TICK_INT_PRIO gedefinieer in stm32wbaxx_hal_conf.h.
    • Stel van NVIC-groepprioriteit op 0.
    • Oproep van HAL_MspInit() terugbelfunksie gedefinieer in stm32wbaxx_hal_msp.c gebruiker file om globale lae-vlak hardeware initialiserings uit te voer.
  5. Stel die stelselklok op
    Die stelselklokkonfigurasie word gedoen deur die twee API's wat hieronder beskryf word, te skakel:
    • HAL_RCC_OscConfig(): hierdie API konfigureer die interne en eksterne ossillators. Die gebruiker kies om een ​​of alle ossillators op te stel.
    • HAL_RCC_ClockConfig(): hierdie API konfigureer die stelselklokbron, die vertraging van die flitsgeheue en AHB- en APB-voorskalers.
  6. Inisialiseer die perifere
    • Skryf eers die perifere HAL_PPP_MspInit-funksie. Gaan soos volg te werk:
      • Aktiveer die perifere horlosie.
      • Stel die perifere GPIO's op.
      • Konfigureer die DMA-kanaal en aktiveer DMA-onderbreking (indien nodig).
      • Aktiveer perifere onderbreking (indien nodig).
    • Wysig die stm32xxx_it.c om die vereiste onderbrekingshanteerders (perifere en DMA) te bel indien nodig.
    • Skryf proses volledige terugbelfunksies, indien 'n perifere onderbreking of DMA beplan word om gebruik te word.
    • In gebruiker hoof.c file, inisialiseer die perifere handvatselstruktuur en roep dan die funksie HAL_PPP_Init() om die randapparatuur te inisialiseer.
  7. Ontwikkel 'n toepassing
    • Op hierdie stage, die stelsel is gereed en die ontwikkeling van die gebruikerstoepassingskode kan begin.
    • Die HAL bied intuïtiewe en gereed-vir-gebruik API's om die randapparatuur op te stel. Dit ondersteun peiling, onderbrekings en 'n DMA-programmeringsmodel om enige toepassingsvereistes te akkommodeer. Vir meer besonderhede oor hoe om elke randapparaat te gebruik, verwys na die ryk eksampdie stel verskaf in die STM32CubeWBA MCU-pakket.
      Waarskuwing: In die standaard HAL-implementering word die SysTick-timer as 'n tydbasis gebruik: dit genereer onderbrekings met gereelde tydintervalle. As HAL_Delay() vanaf die perifere ISR-proses geroep word, maak seker dat die SysTick-onderbreking 'n hoër prioriteit (numeries laer) het as die perifere onderbreking. Andersins word die oproeper-ISR-proses geblokkeer. Funksies wat tydbasiskonfigurasies beïnvloed, word as __swak verklaar om ignorering moontlik te maak in geval van ander implementerings in die gebruiker file (met 'n algemene tydhouer, bvample, of 'n ander tydbron). Vir meer besonderhede, verwys na die HAL_TimeBase bvample.

LL aansoek
Hierdie afdeling beskryf die stappe wat nodig is om 'n pasgemaakte LL-toepassing met behulp van STM32CubeWBA te skep.

  1. Skep 'n projek
    • Om 'n nuwe projek te skep, begin óf vanaf die Templates_LL-projek wat vir elke bord verskaf is onder \Projects\ \Templates_LL, of van enige beskikbare projek onder \Projects\ \Bvamples_LL ( verwys na die bordnaam, soos NUCLEO-WBA32CG).
    • Die sjabloonprojek bied 'n leë hooflusfunksie, wat 'n goeie beginpunt is om die projekinstellings vir STM32CubeWBA te verstaan. Sjabloon se hoofkenmerke is die volgende:
      • Dit bevat die bronkodes van die LL- en CMSIS-drywers, wat die minimum stel komponente is wat nodig is om kode op 'n gegewe bord te ontwikkel.
      • Dit bevat die ingesluit paaie vir al die vereiste firmware-komponente.
      • Dit kies die ondersteunde STM32WBA-reeks toestel en laat die korrekte konfigurasie van die CMSIS- en LL-bestuurders toe.
      • Dit bied gebruikers gereed om te gebruik files wat soos volg vooraf gekonfigureer is:
        ◦ hoof.h: LED en USER_BUTTON definisie abstraksie laag.
        ◦ main.c: Stelselklokkonfigurasie vir maksimum frekwensie.
  2. Dra 'n bestaande projek na 'n ander bord
    Om 'n bestaande projek op 'n ander teikenbord te ondersteun, begin by die Templates_LL-projek wat vir elke bord voorsien is en beskikbaar is onder \Projects\ \Templates_LL.
    • Kies 'n LL example: Om die bord te vind waarop LL examples ontplooi word, verwys na die lys van LL examples STM32CubeProjectsList.html.
  3. Port die LL example:
    • Kopieer/plak die Templates_LL-lêergids – om die aanvanklike bron te behou – of werk die bestaande Templates_LL-projek direk op.
    • Dan bestaan ​​oordrag hoofsaaklik in die vervanging van Templates_LL files deur die Examples_LL geteikende projek.
    • Hou alle bord spesifieke dele. Vir redes van duidelikheid word bord spesifieke dele gemerk met spesifieke tags:

      STMicroelectronics-STM32WBA-Series-Begin-fig-7

    • Die belangrikste oordragstappe is dus die volgende:
      • Vervang die stm32wbaxx_it.h file
      • Vervang die stm32wbaxx_it.c file
      • Vervang die hoof.h file en werk dit op: Hou die LED- en gebruikersknoppie-definisie van die LL-sjabloon onder RAADSPESIFIEKE KONFIGURASIE tags.
      • Vervang die hoof.c file en werk dit op:
    • Hou die klokkonfigurasie van die SystemClock_Config() LL-sjabloonfunksie onder BOARD SPESIFIC CONFIGURATION tags.
    • Afhangende van die LED-definisie, vervang elke LDx-voorkoms met 'n ander LDy beskikbaar in die hoof.h file.
    • Met hierdie wysigings het die example loop nou op die geteikende bord

Sekuriteitstoepassings
Hierdie pakket word saam met sekuriteitstoepassings afgelewer.

SBSFU aansoeke

  • SBSFU bied 'n Root of Trust-oplossing, insluitend Secure Boot en Secure Firmware Update-funksies (gebaseer op MCUboot).
  • Die oplossing word gebruik voordat die toepassing uitgevoer word.
  • Die oplossing bied 'n example van 'n veilige diens (GPIO wissel), wat geïsoleer is van die nie-veilige toepassing. Die nie-veilige toepassing tydens looptyd kan steeds hierdie oplossing gebruik.

TFM toepassings
Die TFM bied 'n Root of Trust-oplossing, insluitend veilige selflaai- en veilige firmware-opdateringsfunksies
(gebaseer op MCUboot). Die oplossing word gebruik voordat die toepassing uitgevoer word. Die oplossing bied TFM veilige dienste wat geïsoleer is van die nie-veilige toepassing. Die nie-veilige toepassing tydens looptyd kan steeds hierdie oplossing gebruik.

RF toepassings
Die RF-toepassing word in hierdie toepassingsnota beskryf: Bou draadlose toepassings met STM32WBA-reeks mikrobeheerders (AN5928).

Kry STM32CubeWBA-vrystelling-opdaterings
Die nuutste STM32CubeWBA MCU-pakketvrystellings en pleisters is beskikbaar vanaf STM32WBA-reeks. Hulle kan herwin word vanaf die CHECK FOR UPDATE-knoppie in STM32CubeMX. Vir meer besonderhede, verwys na Afdeling 3 van die gebruikershandleiding STM32CubeMX vir STM32-konfigurasie en inisialisering C-kodegenerering (UM1718).

Gereelde vrae

  • Wanneer moet ek HAL in plaas van LL-bestuurders gebruik?
    • HAL-bestuurders bied hoëvlak en funksie-georiënteerde API's, met 'n hoë vlak van oordraagbaarheid. Produk- of perifere kompleksiteit word vir eindgebruikers versteek.
    • LL-bestuurders bied lae-laag registervlak API's, met beter optimalisering maar minder draagbaar. Hulle vereis diepgaande kennis van produk- of IP-spesifikasies.
  • Kan ek HAL- en LL-bestuurders saam gebruik? As ek kan, wat is die beperkings?
    • Dit is moontlik om beide HAL- en LL-bestuurders te gebruik. Gebruik die HAL vir die IP-inisialiseringsfase en bestuur dan die I/O-bewerkings met LL-drywers.
    • Die groot verskil tussen HAL en LL is dat HAL-bestuurders vereis om handvatsels vir operasiebestuur te skep en te gebruik, terwyl LL-bestuurders direk op perifere registers werk. Die Examples_MIX example illustreer hoe om HAL en LL te meng.
  • Hoe word LL inisialisering API's geaktiveer?
    • Die definisie van LL inisialisering API's en geassosieerde hulpbronne (Strukture, letterlike en prototipes) word gekondisioneer deur die USE_FULL_LL_DRIVER samestelling skakelaar.
    • Om LL inisialisering API's te kan gebruik, voeg hierdie skakelaar by die gereedskapskettingsamesteller voorverwerker.
  • Hoe kan STM32CubeMX kode genereer gebaseer op ingebedde sagteware?
    STM32CubeMX het ingeboude kennis van STM32 mikrobeheerders, insluitend hul randapparatuur en sagteware wat dit moontlik maak om 'n grafiese voorstelling aan die gebruiker te verskaf en *.h of *.c te genereer files gebaseer op gebruikerkonfigurasie.

BELANGRIKE KENNISGEWING – LEES SORGVULDIG

  • STMicroelectronics NV en sy filiale (“ST”) behou die reg voor om enige tyd sonder kennisgewing veranderinge, regstellings, verbeterings, wysigings en verbeterings aan ST-produkte en/of hierdie dokument aan te bring. Kopers moet die nuutste relevante inligting oor ST-produkte bekom voordat hulle bestellings plaas. ST-produkte word verkoop ingevolge ST se verkoopsbepalings en -voorwaardes wat ten tyde van bestellingserkenning in plek is.
  • Kopers is alleen verantwoordelik vir die keuse, seleksie en gebruik van ST-produkte en ST aanvaar geen aanspreeklikheid vir aansoekbystand of die ontwerp van kopers se produkte nie.
  • Geen lisensie, uitdruklik of geïmpliseer, tot enige intellektuele eiendomsreg word hierin deur ST toegestaan ​​nie.
  • Herverkoop van ST-produkte met bepalings anders as die inligting wat hierin uiteengesit word, sal enige waarborg wat deur ST vir sodanige produk verleen word, nietig verklaar.
  • ST en die ST-logo is handelsmerke van ST. Vir bykomende inligting oor ST-handelsmerke, verwys na www.st.com/trademarks. Alle ander produk- of diensname is die eiendom van hul onderskeie eienaars.
  • Inligting in hierdie dokument vervang en vervang inligting wat voorheen in enige vorige weergawes van hierdie dokument verskaf is.
  • © 2023 STMicroelectronics – Alle regte voorbehou

Dokumente / Hulpbronne

STMicroelectronics STM32WBA-reeks Aan die gang [pdfGebruikershandleiding
STM32WBA-reeks Aan die gang, aan die gang, aan die gang

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *