STMicroelectronics STM32WBA -sarjan aloitusopas
Tuotetiedot
Tekniset tiedot:
- Tuotteen nimi: STM32CubeWBA MCU-paketti
- Valmistaja: STMicroelectronics
- Yhteensopivuus: STM32WBA-sarjan mikro-ohjaimet
- Lisenssi: Avoimen lähdekoodin BSD-lisenssi
Tuotteen käyttöohjeet
STM32CubeWBA MCU-paketin pääominaisuudet:
STM32CubeWBA MCU Package sisältää kaikki tarvittavat sulautetut ohjelmistokomponentit sovellusten kehittämiseen STM32WBA-sarjan mikrokontrollereilla. Se on erittäin kannettava STM32-sarjassa, ja sen mukana tulee HAL- ja LL-sovellusliittymät, esimamples ja väliohjelmistokomponentit.
Arkkitehtuuri ohiview:
STM32CubeWBA MCU-paketin arkkitehtuuri koostuu kolmesta tasosta – sovellukset, kirjasto- ja protokollapohjaiset komponentit, laitteiston abstraktiokerros, BSP-ajurit, ydinohjaimet ja matalan kerroksen API:t.
FAQ
- Mitä STM32CubeWBA MCU-paketti sisältää?
Paketti sisältää matalan kerroksen (LL) ja laitteiston abstraktiokerroksen (HAL) API:t, esimamples, sovellukset, väliohjelmistokomponentit, kuten FileX/LevelX, NetX Duo, mbed-crypto-kirjastot ja paljon muuta. - Onko STM32CubeWBA MCU-paketti yhteensopiva STM32CubeMX-koodigeneraattorin kanssa?
Kyllä, paketti on täysin yhteensopiva STM32CubeMX-koodigeneraattorin kanssa alustuskoodin luomiseen.
Johdanto
- STM32Cube on STMicroelectronicsin alkuperäinen aloite parantaa suunnittelijoiden tuottavuutta merkittävästi vähentämällä kehitystyötä, aikaa ja kustannuksia. STM32Cube kattaa koko STM32-portfolion.
STM32Cube sisältää:- Joukko käyttäjäystävällisiä ohjelmistokehitystyökaluja, jotka kattavat projektin kehittämisen suunnittelusta toteutukseen, mukaan lukien:
- STM32CubeMX, graafinen ohjelmiston konfigurointityökalu, joka mahdollistaa C-alustuskoodin automaattisen luomisen graafisten ohjattujen toimintojen avulla
- STM32CubeIDE, all-in-one-kehitystyökalu, jossa on oheislaitteiden konfigurointi, koodin luominen, koodin kokoaminen ja virheenkorjausominaisuudet
- STM32CubeCLT, all-in-one komentorivikehitystyökalusarja, jossa on koodin käännös-, korttiohjelmointi- ja virheenkorjausominaisuudet
- STM32CubeProgrammer (STM32CubeProg), ohjelmointityökalu, joka on saatavana graafisina ja komentoriviversioina
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), tehokkaat valvontatyökalut STM32-sovellusten käyttäytymisen ja suorituskyvyn hienosäätöön reaaliajassa
- STM32Cube MCU- ja MPU-paketit, kattavat sulautetut ohjelmistoalustat kullekin mikro-ohjain- ja mikroprosessorisarjalle (kuten STM32CubeWBA STM32WBA-sarjalle), jotka sisältävät:
- STM32Cube hardware abstraction layer (HAL), joka varmistaa maksimaalisen siirrettävyyden STM32-portfoliossa
- STM32Cube matalakerroksiset API-liitännät, jotka takaavat parhaan suorituskyvyn ja jalanjäljen sekä suuren käyttäjän hallinnan laitteistoon
- Johdonmukainen joukko väliohjelmistokomponentteja, kuten ThreadX, FileX / LevelX, NetX Duo, USBX, kosketuskirjasto, mbed-crypto, TFM, MCUboot, OpenBL ja STM32_WPAN (mukaan lukien Bluetooth® Low Energy profiles ja palvelut, Mesh, Zigbee®, OpenThread, Matter ja 802.15.4 MAC-kerros)
- Kaikki sulautetut apuohjelmat, joissa on täydet oheis- ja sovellusohjelmat, esimamples
- STM32Cube-laajennuspaketit, jotka sisältävät sulautettuja ohjelmistokomponentteja, jotka täydentävät STM32Cube MCU- ja MPU-pakettien toimintoja:
- Väliohjelmistolaajennukset ja aplikatiiviset tasot
- Examples toimii tietyillä STMicroelectronics-kehityslevyillä
- Joukko käyttäjäystävällisiä ohjelmistokehitystyökaluja, jotka kattavat projektin kehittämisen suunnittelusta toteutukseen, mukaan lukien:
- Tässä käyttöoppaassa kuvataan STM32CubeWBA MCU-paketin käytön aloittaminen.
- Osassa 2 STM32CubeWBA:n pääominaisuudet kuvataan STM32CubeWBA MCU-paketin pääominaisuudet.
- Osa 3 STM32CubeWBA-arkkitehtuuri ohiview tarjoaa ylityksenview STM32CubeWBA-arkkitehtuurista ja MCU-pakettirakenteesta.
Yleistä tietoa
STM32CubeWBA MCU-paketti toimii 32-bittisissä STM32-mikro-ohjaimissa, jotka perustuvat Arm® Cortex®-M33 -prosessoriin, jossa on Arm® TrustZone® ja FPU.
Huomautus: Arm ja TrustZone ovat Arm Limitedin (tai sen tytäryhtiöiden) rekisteröityjä tavaramerkkejä Yhdysvalloissa ja/tai muualla.
STM32CubeWBA tärkeimmät ominaisuudet
- STM32CubeWBA MCU-paketti toimii 32-bittisissä STM32-mikro-ohjaimissa, jotka perustuvat Arm® Cortex®-M33-prosessoriin TrustZone®- ja FPU:lla.
- STM32CubeWBA kokoaa yhteen pakettiin kaikki yleiset sulautetut ohjelmistokomponentit, joita tarvitaan sovelluksen kehittämiseen STM32WBA-sarjan mikrokontrollereille. STM32Cube-aloitteen mukaisesti tämä komponenttisarja on erittäin kannettava, ei vain STM32WBA-sarjan mikro-ohjainten sisällä, vaan myös muihin STM32-sarjoihin.
- STM32CubeWBA on täysin yhteensopiva STM32CubeMX-koodigeneraattorin kanssa alustuskoodin luomiseksi. Paketti sisältää matalan kerroksen (LL) ja laitteiston abstraktiokerroksen (HAL) API:t, jotka kattavat mikrokontrollerilaitteiston, sekä laajan joukon mm.amples toimii STMicroelectronics-korteilla. HAL- ja LL-sovellusliittymät ovat saatavilla avoimen lähdekoodin BSD-lisenssinä käyttäjien mukavuuden vuoksi.
- STM32CubeWBA MCU-paketti sisältää myös kattavan väliohjelmistokomponentin, joka on rakennettu Microsoft® Azure® RTOS -väliohjelmiston ympärille ja muita talon sisäisiä ja avoimen lähdekoodin pinoja vastaavien examples.
- Niiden mukana tulee ilmaiset, käyttäjäystävälliset lisenssiehdot:
- Integroitu ja täysin varusteltu Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS-toteutus Azure® RTOS ThreadX:n kanssa
- USB-isäntä- ja laitepinot, joissa on useita luokkia: Azure® RTOS USBX
- Edistynyt file järjestelmä- ja flash-käännöskerros: FileX / TasoX
- Teollisuustason verkkopino: optimoitu suorituskykyyn useiden IoT-protokollien kanssa: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF-M) -integraatioratkaisu
- mbed-crypto kirjastot
- ST Netwokin kirjasto
- STMTouch-kosketustunnistuskirjastoratkaisu
- STM32CubeWBA MCU-paketti sisältää myös useita sovelluksia ja esittelyjä, jotka toteuttavat kaikki nämä väliohjelmistokomponentit.
- STM32CubeWBA MCU-paketin komponenttien asettelu on esitetty kuvassa 1. STM32CubeWBA MCU-paketin komponentit.
STM32CubeWBA-arkkitehtuuri ohiview
STM32CubeWBA MCU -pakettiratkaisu on rakennettu kolmen itsenäisen tason ympärille, jotka ovat helposti vuorovaikutuksessa kuvassa 2 kuvatulla tavalla. STM32CubeWBA MCU-paketin arkkitehtuuri.
Taso 0
Tämä taso on jaettu kolmeen alikerrokseen:
- Board tukipaketti (BSP).
- Laitteiston abstraktiokerros (HAL):
- HAL-oheislaitteiden ajurit
- Matalatasoiset ajurit
- Oheislaitteiden peruskäyttö esimamples.
Hallituksen tukipaketti (BSP)
Tämä kerros tarjoaa joukon API-liittymiä suhteessa laitteistolevyjen laitteistokomponentteihin (kuten LCD-, Audio-,\ microSD™- ja MEMS-ohjaimet). Se koostuu kahdesta osasta:
- Komponenttiohjain:
Tämä ohjain liittyy kortilla olevaan ulkoiseen laitteeseen, ei STM32-laitteeseen. Komponenttiohjain tarjoaa erityisiä API-liittymiä BSP-ohjaimen ulkoisille komponenteille, ja se voi olla kannettava millä tahansa muulla kortilla. - BSP-ohjain:
BSP-ajuri mahdollistaa komponenttiohjainten linkittämisen tiettyyn korttiin ja tarjoaa joukon käyttäjäystävällisiä
API:t. API-nimeämissääntö on BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP perustuu modulaariseen arkkitehtuuriin, joka mahdollistaa helpon portoinnin millä tahansa laitteistolla vain toteuttamalla matalan tason rutiinit.
Laitteiston abstraktiokerros (HAL) ja matala kerros (LL)
STM32CubeWBA HAL ja LL täydentävät toisiaan ja kattavat laajan valikoiman sovellusvaatimuksia:
- HAL-ajurit tarjoavat korkean tason toimintosuuntautuneita erittäin kannettavia API:ita. Ne piilottavat MCU:n ja oheislaitteiden monimutkaisuuden loppukäyttäjältä.
HAL-ajurit tarjoavat yleisiä usean ilmentymän ominaisuussuuntautuneita API:ita, jotka yksinkertaistavat käyttäjän sovellusten käyttöönottoa tarjoamalla käyttövalmiita prosesseja. esimample, viestintäoheislaitteille (I2S, UART ja muut), se tarjoaa API:t, jotka mahdollistavat oheislaitteen alustamisen ja konfiguroinnin, tiedonsiirron hallinnan kyselyn, keskeytyksen tai DMA-prosessin perusteella ja viestinnän aikana mahdollisesti ilmenevien tietoliikennevirheiden käsittelemisen. HAL-ohjainsovellusliittymät on jaettu kahteen luokkaan:- Yleiset API:t, jotka tarjoavat yhteisiä ja yleisiä toimintoja kaikille STM32-sarjan mikrokontrollereille.
- Laajennussovellusliittymät, jotka tarjoavat erityisiä ja mukautettuja toimintoja tietylle perheelle tai tietylle osanumerolle.
- Matalan tason API:t tarjoavat matalan tason API:ita rekisteritasolla paremmalla optimoinnilla mutta vähemmän siirrettävillä.
- Ne vaativat syvää tietämystä MCU:sta ja oheislaitteiden spesifikaatioista.
- LL-ajurit on suunniteltu tarjoamaan nopea ja kevyt asiantuntijalähtöinen kerros, joka on lähempänä laitteistoa kuin HAL. Toisin kuin HAL, LL-sovellusliittymiä ei tarjota oheislaitteille, joissa optimoitu käyttöoikeus ei ole keskeinen ominaisuus, tai laitteille, jotka vaativat raskaan ohjelmiston konfiguroinnin tai monimutkaisen ylemmän tason pinon.
- LL-ajureiden ominaisuus:
- Joukko toimintoja oheislaitteiden pääominaisuuksien alustamiseksi tietorakenteissa määritettyjen parametrien mukaisesti.
- Joukko toimintoja alustustietorakenteiden täyttämiseksi kutakin kenttää vastaavilla nollausarvoilla.
- Toiminto oheislaitteiden alustuksenpoistoon (oheislaitteiden rekisterit palautetaan oletusarvoihinsa).
- Joukko sisäisiä toimintoja suoraa ja atomirekisterikäyttöä varten.
- Täysi riippumaton HAL:sta ja kyky käyttää itsenäisessä tilassa (ilman HAL-ajureita).
- Täysi kattavuus tuetuista oheisominaisuuksista.
Oheislaitteiden peruskäyttö esimamples
Tämä kerros sulkee sisäänsä examples rakennettu STM32-oheislaitteiden päälle käyttämällä vain HAL- ja BSP-resursseja.
Taso 1
Tämä taso on jaettu kahteen alakerrokseen:
- Middleware komponentit
- Exampperustuu väliohjelmistokomponentteihin
Middleware komponentit
- Väliohjelmisto on joukko kirjastoja, jotka kattavat Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot ja mbed-crypto.
- Tämän kerroksen komponenttien välinen horisontaalinen vuorovaikutus tapahtuu kutsumalla esiteltyjä API:ita.
- Pystysuora vuorovaikutus matalan kerroksen ajureiden kanssa tapahtuu erityisten takaisinkutsujen ja staattisten makrojen avulla, jotka on toteutettu kirjastojärjestelmän kutsuliittymässä.
- Kunkin väliohjelmistokomponentin pääominaisuudet ovat seuraavat:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Reaaliaikainen käyttöjärjestelmä (RTOS), joka on suunniteltu sulautetuille järjestelmille, joissa on kaksi toimintatilaa.
- Yhteinen tila: Yleiset RTOS-toiminnot, kuten säikeiden hallinta ja synkronointi, muistivarannon hallinta, viestit ja tapahtumien käsittely.
- Moduulitila: Kehittynyt käyttäjätila, joka mahdollistaa esilinkitettyjen ThreadX-moduulien lataamisen ja purkamisen lennossa moduulinhallinnan kautta.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Reaaliaikainen käyttöjärjestelmä (RTOS), joka on suunniteltu sulautetuille järjestelmille, joissa on kaksi toimintatilaa.
- Bluetooth® Low Energy (BLE): Toteuttaa Bluetooth® Low Energy -protokollan Link- ja Stack-kerroksille.
- MCUboot (avoimen lähdekoodin ohjelmisto)
- Zigbee®-protokollat pinolle ja siihen liittyville klusteille.
- Thread®-protokollapino ja linkkikerros.
- Arm®-luotettu laiteohjelmisto-M, TF-M (avoimen lähdekoodin ohjelmisto): TrustZone®:n Arm®-alustan suojausarkkitehtuurin (PSA) ja siihen liittyvien suojattujen palvelujen viitetoteutus.
- mbed-crypto (avoimen lähdekoodin ohjelmisto): mbed-crypto-väliohjelmisto tarjoaa PSA-salaussovellusliittymän toteutuksen.
- STM32 Touch Sensing -kirjasto: Vankka STMTouch-kapasitiivinen kosketustunnistusratkaisu, joka tukee läheisyys-, kosketusnäppäintä, lineaarisia ja pyöriviä kosketusantureita. Se perustuu todistettuun pintavarauksen siirron hankintaperiaatteeseen.
- Microsoft® Azure® RTOS
Exampperustuu väliohjelmistokomponentteihin
Jokaisen väliohjelmistokomponentin mukana tulee yksi tai useampi esimamples (kutsutaan myös sovelluksiksi), joka näyttää kuinka sitä käytetään. Integraatio esimampTarjolla on myös useita väliohjelmistokomponentteja käyttäviä osia.
STM32CubeWBA-laiteohjelmistopaketti ohiview
Tuetut STM32WBA-sarjan laitteet ja laitteistot
- STM32Cube tarjoaa erittäin kannettavan laitteiston abstraktiokerroksen (HAL), joka on rakennettu yleisen arkkitehtuurin ympärille. Se mahdollistaa kerrosten rakentamisen periaatteen, kuten väliohjelmistokerroksen käytön niiden toimintojen toteuttamiseen tietämättä syvällisesti, mitä MCU:ta käytetään. Tämä parantaa kirjastokoodin uudelleenkäytettävyyttä ja varmistaa helpon siirrettävyyden muihin laitteisiin.
- Lisäksi kerroksellisen arkkitehtuurinsa ansiosta STM32CubeWBA tarjoaa täyden tuen kaikille STM32WBA-sarjoille.
- Käyttäjän on vain määritettävä oikea makro tiedostossa stm32wbaxx.h.
- Taulukko 1 näyttää makron, joka määritetään käytetyn STM32WBA-sarjan laitteen mukaan. Tämä makro on myös määritettävä kääntäjän esiprosessorissa.
Taulukko 1. STM32WBA-sarjan makrotMakro määritetty tiedostossa stm32wbaxx.h STM32WBA-sarjan laitteet stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA sisältää runsaasti mmamples ja sovellukset kaikilla tasoilla, joten on helppo ymmärtää ja käyttää kaikkia HAL-ajureita tai väliohjelmistokomponentteja. Nämä examples toimivat taulukossa 2 luetelluilla STMicroelectronics-korteilla.
Taulukko 2. STM32WBA-sarjan levythallitus Hallitse STM32WBA-tuettuja laitteita NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - STM32CubeWBA MCU-paketti voi toimia millä tahansa yhteensopivalla laitteistolla. Käyttäjä yksinkertaisesti päivittää BSP-ajurit porttia varten toimitetun examples levylle, jos jälkimmäisessä on samat laitteisto-ominaisuudet (kuten LED, LCD-näyttö ja painikkeet).
Firmware-paketti ohiview
- STM32CubeWBA-pakettiratkaisu toimitetaan yhdessä zip-paketissa, jonka rakenne on esitetty kuvassa 3. STM32CubeWBA-laiteohjelmistopaketin rakenne.
- Jokaiselle taululle sarja examples sisältää esikonfiguroidut projektit EWARM-, MDK-ARM- ja STM32CubeIDE-työkaluketjuille.
- Kuva 4. STM32CubeWBA esimamples ohiview näyttää projektirakenteen NUCLEO-WBA52CG-, NUCLEO-WBA55CG- ja STM32WBA55G-DK1-levyille.
- Exampne luokitellaan sen STM32Cube-tason mukaan, jota ne koskevat, ja ne on nimetty seuraavasti:
- Taso 0 esimamples on nimeltään Examples, esimamples_LL ja esimamples_MIX. Ne käyttävät vastaavasti HAL-ajureita, LL-ajureita sekä HAL- ja LL-ohjainten yhdistelmää ilman väliohjelmistokomponentteja.
- Taso 1 esimampniitä kutsutaan sovelluksiksi. Ne tarjoavat tyypillisiä käyttötapauksia jokaiselle väliohjelmistokomponentille. Mikä tahansa laiteohjelmistosovellus tietylle levylle voidaan rakentaa nopeasti Templ ates- ja Templates_LL-hakemistoissa olevien malliprojektien ansiosta.
TrustZone®-yhteensopivat projektit
- TrustZone®-yhteensopiva esimamples-nimet sisältävät _TrustZone-etuliitteen. Sääntöä sovelletaan myös sovelluksiin (paitsi TFM ja SBSFU, jotka ovat natiivisti TrustZone®:lle).
- TrustZone®-yhteensopiva esimamples ja Sovellukset on varustettu moniprojektirakenteella, joka koostuu suojatuista ja ei-suojatuista aliprojekteista, kuten kuvassa 5 on esitetty. Moniprojektin suojattu ja suojaamaton projektirakenne.
- TrustZone®-yhteensopivia projekteja kehitetään CMSIS-5-laitemallin mukaan, joka on laajennettu sisältämään järjestelmän osiointiotsikon. file osio_ .h, joka on pääosin vastuussa suojatun attribuuttiyksikön (SAU), FPU:n ja suojattujen/ei-suojattujen keskeytysten määrittämisestä suojatussa suoritustilassa.
- Tämä asetus suoritetaan suojatussa CMSIS SystemInit() -funktiossa, jota kutsutaan käynnistyksen yhteydessä ennen suojatun sovelluksen main()-toimintoon siirtymistä. Katso Arm® TrustZone®-M -dokumentaatiota ohjelmistoohjeista.
- STM32CubeWBA-paketin laiteohjelmistopaketti tarjoaa oletusarvoisen muistin osioinnin osioon _ .h fileon saatavilla hakemistosta: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- Näissä osioissa files, SAU on oletusarvoisesti poissa käytöstä. Tästä syystä IDAU-muistikartoitusta käytetään suojausmäärityksessä. Katso kuvaa Suojattu/ei-suojattu osiointi TrustZone®-tekniikalla RM0495-viiteoppaasta.
- Jos käyttäjä ottaa SAU:n käyttöön, oletus-SAU-alueiden konfiguraatio on ennalta määritetty osioon files seuraavasti:
- SAU-alue 0: 0x08080000 – 0x081FFFFF (epäturvallinen suojattu puolet flash-muistista (512 kt))
- SAU-alue 1: 0x0BF88000 – 0x0BF97FFF (turvaton järjestelmämuisti)
- SAU-alue 2: 0x0C07E000 – 0x0C07FFFF (suojattu, ei-suojattu kutsuttava)
- SAU-alue 3: 0x20010000 – 0x2001FFFF (suojaamaton SRAM2 (64 kt))
- SAU-alue 4: 0x40000000 – 0x4FFFFFFFF (ei-suojattu oheislaitekartoitettu muisti)
- Vastatakseen oletusosiointia STM32WBAxx-sarjan laitteissa on oltava seuraavat käyttäjän asetustavut:
- TZEN = 1 (TrustZone®-yhteensopiva laite)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 sivua 128:sta sisäisestä flash-muistista asetettu suojatuksi) Huomautus: Sisäinen flash-muisti on oletuksena täysin suojattu TZEN = 1:ssä. Käyttäjän tavut SECWM1_PSTRT/ SECWM1_PEND on asetettava sovelluksen mukaan muistin konfigurointi (SAU-alueet, jos SAU on käytössä). Turvallisten/ei-turvallisten sovellusten projektilinkki files on myös kohdistettava.
- kaikki examplesillä on sama rakenne:
- \Inc kansio, joka sisältää kaikki otsikot files.
- Src-kansio, joka sisältää lähdekoodin.
- \EWARM-, \MDK-ARM- ja \STM32CubeIDE-kansiot, jotka sisältävät esikonfiguroidun projektin jokaiselle työkaluketjulle.
- readme.md ja readme.html, jotka kuvaavat exampkäyttäytyminen ja tarvittava ympäristö, jotta se toimii.
- ioc file jonka avulla käyttäjät voivat avata suurimman osan laiteohjelmistosta, esimamples sisällä STM32CubeMX.
STM32CubeWBA:n käytön aloittaminen
Ensimmäinen HAL-example
Tämä osio selittää, kuinka helppoa on suorittaa ensimmäinen example STM32CubeWBA:ssa. Se käyttää esimerkkinä NUCLEO-WBA52CG-kortilla toimivan yksinkertaisen LED-kytkimen luomista:
- Lataa STM32CubeWBA MCU-paketti.
- Pura se valitsemaasi hakemistoon.
- Varmista, ettet muokkaa kuvassa 1 näkyvää pakettirakennetta. On myös suositeltavaa kopioida paketti paikkaan, joka on lähellä juuritaltiota (eli C:\ST tai G:\Tests), koska jotkin IDE:t kohtaavat ongelmia polun aikana. pituus on liian pitkä.
Ensimmäisen TrustZone®-yhteensopivan example
- Ennen kuin lataat ja käytät TrustZone®-yhteensopivaa esimample, on pakollista lukea example readme file mille tahansa tietylle kokoonpanolle, joka varmistaa, että suojaus on käytössä kohdassa 4.2.1 TrustZone®-yhteensopivat projektit kuvatulla tavalla (TZEN=1 (käyttäjän optiotavu)).
- Selaa kohtaan \Projects\NUCLEO-WBA52CG\Examples.
- Avaa \GPIO ja sitten \GPIO_IOToggle_TrustZone-kansiot.
- Avaa projekti haluamallasi työkaluketjulla. Nopea loppuview kuinka avata, rakentaa ja johtaa example tuetuilla työkaluketjuilla on annettu alla.
- Rakenna uudelleen järjestyksessä kaikki turvalliset ja suojaamattomat projektit files ja lataa suojatut ja suojaamattomat kuvat kohdemuistiin.
- Aja example: säännöllisesti, suojattu sovellus vaihtaa LD2:ta joka sekunti ja ei-suojattu sovellus vaihtaa LD3:a kaksi kertaa nopeammin. Katso lisätietoja readme-osiosta file ex:stäample.
- Avaa, rakentaa ja ajaa examptuettujen työkaluketjujen kanssa, noudata seuraavia ohjeita:
- EWARM:
- Exän allaampkansio, avaa \EWARM-alikansio.
- Käynnistä Project.eww-työtila
- Rakenna suojattu xxxxx_S-projekti uudelleen files: [Projekti]> [Rakenna kaikki uudelleen].
- Aseta xxxxx_NS ei-suojattu projekti aktiiviseksi sovellukseksi (klikkaa hiiren kakkospainikkeella xxxxx_NS-projektia [Aseta aktiiviseksi])
- Rakenna xxxxx_NS ei-suojattu projekti files: [Projekti]> [Rakenna kaikki uudelleen].
- Flasha suojaamaton binaari valitsemalla [Projekti]>[Lataa]>[Lataa aktiivinen sovellus] .
- Aseta xxxxx_S aktiiviseksi sovellukseksi (klikkaa hiiren kakkospainikkeella xxxxx_S-projektia [Aseta aktiiviseksi].
- Flash suojattu binaari käyttämällä [Download and Debug] (Ctrl+D).
- Suorita ohjelma: [Debug]> [Go(F5)]
- MDK-ARM:
- Avaa \MDK-ARM-työkaluketju.
- Avaa Multiprojects-työtila file Project.uvmpw.
- Valitse xxxxx_s-projekti aktiiviseksi sovellukseksi ([Aseta aktiiviseksi projektiksi]).
- Rakenna xxxxx_s-projekti.
- Valitse xxxxx_ns-projekti aktiiviseksi projektiksi ([Aseta aktiiviseksi projektiksi]).
- Rakenna xxxxx_ns-projekti.
- Lataa suojaamaton binaari ([F8]). Tämä lataa tiedoston \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf flash-muistiin)
- Valitse Project_s-projekti aktiiviseksi projektiksi ([Aseta aktiiviseksi projektiksi]).
- Lataa suojattu binaari ([F8]). Tämä lataa tiedoston \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf flash-muistiin).
- Aja example.
- STM32CubeIDE:
- Avaa STM32CubeIDE-työkaluketju.
- Avaa Multiprojects-työtila file .projekti.
- Rakenna xxxxx_Secure-projekti uudelleen.
- Rakenna xxxxx_NonSecure-projekti uudelleen.
- Käynnistä suojatun projektin [Debug as STM32 Cortex-M C/C++] -sovellus.
- Valitse [Muokkaa määritystä] -ikkunassa [Käynnistys]-paneeli ja lisää suojaamattoman projektin kuva ja symbolit.
Tärkeää: Ei-suojattu projekti on ladattava ennen suojattua projektia. - Napsauta [OK].
- Aja exampdebug-näkökulmasta.
- EWARM:
Ensimmäisen TrustZone®-käytöstä poistetun example
- Ennen kuin lataat ja käytät TrustZone®-toimintoa pois käytöstä esimample, on pakollista lukea example readme file mille tahansa tietylle kokoonpanolle. Jos erityisiä mainintoja ei ole, varmista, että korttilaitteen suojaus on poistettu käytöstä (TZEN=0 (käyttäjän optiotavu)). Katso FAQ, jos haluat tehdä valinnaisen regression arvoon TZEN = 0
- Selaa kohtaan \Projects\NUCLEO-WBA52CG\Examples.
- Avaa \GPIO ja sitten \GPIO_EXTI-kansiot.
- Avaa projekti haluamallasi työkaluketjulla. Nopea loppuview kuinka avata, rakentaa ja johtaa example tuetuilla työkaluketjuilla on annettu alla.
- Rakenna kaikki uudelleen files ja lataa kuvasi kohdemuistiin.
- Aja example: Joka kerta kun [USER]-painiketta painetaan, LD1-LED vaihtuu. Katso lisätietoja readme-osiosta file ex:stäample.
- Avaa, rakentaa ja ajaa examptuettujen työkaluketjujen kanssa, noudata seuraavia ohjeita:
- EWARM:
- Exän allaampkansio, avaa \EWARM-alikansio.
- Käynnistä Project.eww-työtila (työtilan nimi voi muuttua yhdestä esimample toiselle).
- Rakenna kaikki uudelleen files: [Projekti]> [Rakenna kaikki uudelleen].
- Lataa projektin kuva: [Project]>[Debug].
- Suorita ohjelma: [Debug]> [Go (F5)].
- MDK-ARM:
- Exän allaample-kansioon, avaa \MDK-ARM-alikansio.
- Käynnistä Project.uvproj-työtila (työtilan nimi voi muuttua yhdestä esimample toiselle).
- Rakenna kaikki uudelleen files:[Projekti]>[Rakenna kaikki kohde uudelleen files].
- Lataa projektin kuva: [Debug]> [Start/Stop Debug Session].
- Suorita ohjelma: [Debug]> [Suorita (F5)].
- STM32CubeIDE:
- Avaa STM32CubeIDE-työkaluketju.
- Klikkaus [File]>[Vaihda työtilaa]>[Muu] ja selaa STM32CubeIDE-työtilahakemistoon.
- Klikkaus [File]>[Tuo], valitse [Yleiset]>[Olemassa olevat projektit työtilaan] ja napsauta sitten [Seuraava].
- Selaa STM32CubeIDE-työtilahakemistoon ja valitse projekti.
- Rakenna koko projekti uudelleen files: Valitse projekti [Project Explorer] -ikkunasta ja napsauta sitten [Project]> [Build project] -valikkoa.
- Suorita ohjelma: [Suorita]> [Debug (F11)]
- EWARM:
Mukautetun sovelluksen kehittäminen
Huomautus: Ohjelmiston on sallittava käskyvälimuisti (ICACHE) saada 0 odotustilan suoritus flash-muistista ja saavuttaa maksimaalinen suorituskyky ja parempi virrankulutus.
STM32CubeMX:n käyttö sovelluksen kehittämiseen tai päivittämiseen
- STM32CubeWBA MCU -paketissa lähes kaikki projektit mmamples luodaan STM32CubeMX-työkalulla järjestelmän, oheislaitteiden ja väliohjelmiston alustamiseksi.
- Olemassa olevan projektin suora käyttö esimampSTM32CubeMX-työkalu vaatii STM32CubeMX 6.10.0:n tai uudemman:
- Avaa ja tarvittaessa päivitä ehdotettu projekti STM32CubeMX:n asennuksen jälkeen. Yksinkertaisin tapa avata olemassa oleva projekti on kaksoisnapsauttaa *.ioc file jotta STM32CubeMX avaa projektin ja sen lähteen automaattisesti files.
- STM32CubeMX luo tällaisten projektien alustuslähdekoodin. Pääsovelluksen lähdekoodin sisältävät kommentit "USER CODE BEGIN" ja "USER CODE END". Jos IP-valintaa ja asetusta muutetaan, STM32CubeMX päivittää koodin alustusosan, mutta säilyttää pääsovelluksen lähdekoodin.
- Mukautetun projektin kehittämiseksi STM32CubeMX:ssä noudata vaiheittaista prosessia:
- Valitse STM32-mikro-ohjain, joka vastaa vaadittua oheislaitteiden sarjaa.
- Määritä kaikki tarvittavat sulautetut ohjelmistot käyttämällä pinout-konfliktin ratkaisijaa, kellopuun asetusapuohjelmaa, virrankulutuslaskuria ja MCU-oheislaitteiden konfigurointia (kuten GPIO tai USART) ja väliohjelmistopinoja (kuten USB) suorittavaa apuohjelmaa.
- Luo alustus C-koodi valitun kokoonpanon perusteella. Tämä koodi on valmis käytettäväksi useissa kehitysympäristöissä. Käyttäjäkoodi säilytetään seuraavan koodisukupolven yhteydessä.
- Lisätietoja STM32CubeMX:stä on STM32CubeMX-käyttöoppaassa STM32:n konfiguroimiseksi ja C-koodin alustuksen luomiseksi (UM1718).
- Saat luettelon käytettävissä olevista projekteista esimampSTM32CubeWBA:lle, katso sovellushuomautus STM32Cube firmware exampvähemmän STM32WBA-sarjalle (AN5929).
Ohjainsovellukset
HAL-sovellus
Tässä osiossa kuvataan vaiheet, jotka vaaditaan mukautetun HAL-sovelluksen luomiseen STM32CubeWBA:ta käyttämällä:
- Luo projekti
- Jos haluat luoda uuden projektin, aloita joko kunkin taulun malliprojektista kohdassa \Projektit\ \Templates tai mistä tahansa \Projects\ alla olevista projekteista \Esimerkit tai \Projektit\ \Applications (jos viittaa levyn nimeen, kuten STM32CubeWBA).
- Malliprojekti tarjoaa tyhjän pääsilmukkatoiminnon. Se on kuitenkin hyvä lähtökohta ymmärtää STM32CubeWBA-projektin asetukset. Mallilla on seuraavat ominaisuudet:
- Se sisältää HAL-lähdekoodin, CMSIS- ja BSP-ajurit, jotka ovat vähimmäismäärä komponentteja, jotka vaaditaan koodin kehittämiseen tietylle kortille.
- Se sisältää mukana tulleet polut kaikille laiteohjelmistokomponenteille.
- Se määrittelee tuetut STM32WBA-sarjan laitteet, jolloin CMSIS- ja HAL-ajurit voidaan määrittää oikein.
- Se tarjoaa käyttövalmiin käyttäjän fileon esikonfiguroitu alla olevan kuvan mukaisesti:
HAL alustettu oletusaikapohjalla Arm® core SysTickillä. SysTick ISR toteutettu HAL_Delay()-tarkoituksiin.
Huomautus: Kun kopioit olemassa olevan projektin toiseen paikkaan, varmista, että kaikki mukana olevat polut on päivitetty.
- Lisää tarvittava väliohjelmisto käyttäjäprojektiin (valinnainen)
Lähteen tunnistamiseksi files lisätään projektiin file lue kunkin väliohjelmiston dokumentaatiosta. Katso sovellukset kohdasta \Projects\STM32xxx_yyy\Applications\ (jossa viittaa väliohjelmistopinoon, kuten ThreadX) tietääkseen mistä lähteestä files ja include polut on lisättävä. - Määritä laiteohjelmiston osat
HAL- ja väliohjelmistokomponentit tarjoavat joukon rakennusaikaisia konfigurointivaihtoehtoja käyttämällä makroja #define, jotka on ilmoitettu otsikossa file. Mallin kokoonpano file on jokaisessa komponentissa, joka on kopioitava projektikansioon (yleensä kokoonpano file jonka nimi on xxx_conf_template.h, sana _template on poistettava, kun se kopioidaan projektikansioon). Kokoonpano file tarjoaa riittävästi tietoa kunkin kokoonpanovaihtoehdon vaikutuksen ymmärtämiseksi. Tarkempia tietoja on saatavilla kunkin komponentin asiakirjoissa. - Käynnistä HAL-kirjasto
Pääohjelmaan siirtymisen jälkeen sovelluskoodin on kutsuttava HAL_Init() API alustaakseen HAL-kirjaston, joka suorittaa seuraavat tehtävät:- Flash-muistin esihaun ja SysTick-keskeytysprioriteetin konfigurointi (st m32wbaxx_hal_conf.h:ssa määritettyjen makrojen kautta).
- SysTickin konfigurointi luomaan keskeytyksen millisekunnin välein SysTickin keskeytysprioriteetilla TICK_INT_PRIO, joka on määritetty tiedostossa stm32wbaxx_hal_conf.h.
- NVIC-ryhmän prioriteetin asetus 0.
- HAL_MspInit()-soittotoiminnon kutsu, joka on määritetty stm32wbaxx_hal_msp.c-käyttäjässä file suorittaa maailmanlaajuisia matalan tason laitteiston alustuksia.
- Määritä järjestelmän kello
Järjestelmän kellon määritys tehdään kutsumalla kaksi alla kuvattua API:ta:- HAL_RCC_OscConfig(): tämä API määrittää sisäiset ja ulkoiset oskillaattorit. Käyttäjä voi määrittää yhden tai kaikki oskillaattorit.
- HAL_RCC_ClockConfig(): tämä API määrittää järjestelmän kellolähteen, flash-muistin latenssin sekä AHB- ja APB-esiskaalaimet.
- Alusta oheislaite
- Kirjoita ensin oheislaitteen HAL_PPP_MspInit-funktio. Toimi seuraavasti:
- Ota oheislaitteiden kello käyttöön.
- Määritä oheislaitteiden GPIO:t.
- Määritä DMA-kanava ja ota DMA-keskeytys käyttöön (tarvittaessa).
- Ota oheislaitteiden keskeytys käyttöön (tarvittaessa).
- Muokkaa tiedostoa stm32xxx_it.c kutsumaan tarvittavat keskeytyskäsittelijät (oheislaitteet ja DMA) tarvittaessa.
- Kirjoita prosessin täydelliset takaisinkutsut, jos oheislaitekeskeytystä tai DMA:ta on tarkoitus käyttää.
- Käyttäjässä main.c file, alusta oheislaitteen kahvarakenne ja kutsu funktio HAL_PPP_Init() alustaaksesi oheislaitteen.
- Kirjoita ensin oheislaitteen HAL_PPP_MspInit-funktio. Toimi seuraavasti:
- Kehitä sovellus
- Tällä stage, järjestelmä on valmis ja käyttäjäsovelluskoodin kehittäminen voi alkaa.
- HAL tarjoaa intuitiivisia ja käyttövalmiita sovellusliittymiä oheislaitteiden määrittämiseen. Se tukee kyselyä, keskeytyksiä ja DMA-ohjelmointimallia sovellusvaatimusten täyttämiseksi. Lisätietoja kunkin oheislaitteen käytöstä on rikkaassa exampSTM32CubeWBA MCU-paketin mukana toimitettu sarja.
Varoitus: Oletusarvoisessa HAL-toteutuksessa SysTick-ajastinta käytetään aikapohjana: se tuottaa keskeytyksiä säännöllisin aikavälein. Jos HAL_Delay() kutsutaan oheislaitteen ISR-prosessista, varmista, että SysTick-keskeytyksellä on korkeampi prioriteetti (numeerisesti pienempi) kuin oheislaitteiden keskeytyksellä. Muussa tapauksessa soittajan ISR-prosessi estetään. Aikakantakokoonpanoihin vaikuttavat toiminnot ilmoitetaan __heikoiksi, jotta ne voidaan ohittaa, jos käyttäjässä on muita toteutuksia file (käyttäen yleiskäyttöistä ajastinta, esimample tai muu aikalähde). Katso lisätietoja julkaisusta HAL_TimeBase example.
LL-sovellus
Tässä osassa kuvataan vaiheet, jotka tarvitaan mukautetun LL-sovelluksen luomiseen STM32CubeWBA:ta käyttämällä.
- Luo projekti
- Luo uusi projekti joko aloittamalla Templates_LL-projektista, joka on jokaiselle levylle kohdassa \Projects\ \Templates_LL tai mistä tahansa \Projects\-kohdassa olevasta projektista \Examples_LL ( viittaa levyn nimeen, kuten NUCLEO-WBA32CG).
- Malliprojekti tarjoaa tyhjän pääsilmukkatoiminnon, joka on hyvä lähtökohta STM32CubeWBA:n projektiasetusten ymmärtämiseen. Mallin pääominaisuudet ovat seuraavat:
- Se sisältää LL- ja CMSIS-ajurien lähdekoodit, jotka ovat vähimmäisjoukko komponentteja, joita tarvitaan koodin kehittämiseen tietylle kortille.
- Se sisältää mukana tulleet polut kaikille vaadituille laiteohjelmistokomponenteille.
- Se valitsee tuetun STM32WBA-sarjan laitteen ja mahdollistaa CMSIS- ja LL-ajurien oikean konfiguroinnin.
- Se tarjoaa käyttövalmiin käyttäjän files, jotka on esikonfiguroitu seuraavasti:
◦ main.h: LED- ja USER_BUTTON-määritelmän abstraktiokerros.
◦ main.c: Järjestelmän kellon konfigurointi maksimitaajuudelle.
- Siirrä olemassa oleva projekti toiselle levylle
Jos haluat tukea olemassa olevaa projektia toisella kohdelevyllä, aloita Templates_LL-projektista, joka on saatavilla kullekin levylle ja joka on saatavilla kohdassa \Projects\ \Templates_LL.- Valitse LL example: Löytää taulu, jolla LL examples ovat käytössä, katso LL examples STM32CubeProjectsList.html.
- Siirrä LL exampseuraavat:
- Kopioi/liitä Templates_LL-kansio – alkuperäisen lähteen säilyttämiseksi – tai päivitä suoraan olemassa oleva Templates_LL-projekti.
- Tällöin siirtäminen koostuu pääasiassa Templates_LL:n korvaamisesta files examples_LL kohdistettu projekti.
- Säilytä kaikki levykohtaiset osat. Selvyyden vuoksi korttikohtaiset osat on merkitty erityisillä tags:
- Siten siirron tärkeimmät vaiheet ovat seuraavat:
- Korvaa stm32wbaxx_it.h file
- Korvaa stm32wbaxx_it.c file
- Vaihda pää.h file ja päivitä se: Säilytä LL-mallin LED- ja käyttäjäpainikkeen määritelmä kohdassa BOARD SPECIFIC CONFIGURATION tags.
- Vaihda pää.c file ja päivitä se:
- Säilytä SystemClock_Config() LL -mallitoiminnon kelloasetukset kohdassa BOARD SPECIFIC CONFIGURATION tags.
- Riippuen LED-määrityksestä, korvaa jokainen LDx-esiintymä toisella LDy:llä, joka on saatavilla main.h:ssa file.
- Näillä muutoksilla example toimii nyt kohdistetulla aluksella
Suojaussovellukset
Tämä paketti toimitetaan tietoturvasovellusten kanssa.
SBSFU-sovellukset
- SBSFU tarjoaa Root of Trust -ratkaisun, joka sisältää Secure Boot- ja Secure Firmware Update -toiminnot (perustuu MCUbootiin).
- Ratkaisua käytetään ennen sovelluksen suorittamista.
- Ratkaisu tarjoaa exampsuojatun palvelun (GPIO-vaihtokytkin), joka on eristetty ei-suojatusta sovelluksesta. Ajonaikaisesti suojaamaton sovellus voi silti käyttää tätä ratkaisua.
TFM-sovellukset
TFM tarjoaa Root of Trust -ratkaisun, joka sisältää Secure Boot- ja Secure Firmware Update -toiminnot
(perustuu MCUbootiin). Ratkaisua käytetään ennen sovelluksen suorittamista. Ratkaisu tarjoaa suojattuja TFM-palveluita, jotka on eristetty suojaamattomasta sovelluksesta. Ajonaikaisesti suojaamaton sovellus voi silti käyttää tätä ratkaisua.
RF-sovellukset
RF-sovellus on kuvattu tässä hakemushuomautuksessa: Langattomien sovellusten rakentaminen STM32WBA-sarjan mikrokontrollereilla (AN5928).
Haetaan STM32CubeWBA-julkaisupäivityksiä
Uusimmat STM32CubeWBA MCU-pakettijulkaisut ja -korjaukset ovat saatavilla STM32WBA-sarjasta. Ne voidaan hakea STM32CubeMX:n CHECK FOR UPDATE -painikkeesta. Katso lisätietoja STM3CubeMX-käyttöoppaan osiosta 32 STM32-konfiguroinnista ja C-koodin alustuksen luomisesta (UM1718).
FAQ
- Milloin minun pitäisi käyttää HAL-ajureita LL-ajurien sijaan?
- HAL-ajurit tarjoavat korkean tason ja toimintosuuntautuneita API-liittymiä, joilla on korkea siirrettävyys. Tuotteen tai oheislaitteiden monimutkaisuus on piilotettu loppukäyttäjiltä.
- LL-ajurit tarjoavat matalan tason rekisteritason API-liittymiä, joissa on parempi optimointi, mutta vähemmän kannettavia. Ne edellyttävät syvällistä tietoa tuote- tai IP-spesifikaatioista.
- Voinko käyttää HAL- ja LL-ajureita yhdessä? Jos voin, mitkä ovat rajoitukset?
- On mahdollista käyttää sekä HAL- että LL-ajureita. Käytä HAL:ia IP-alustusvaiheessa ja hallitse sitten I/O-toimintoja LL-ajureilla.
- Suurin ero HAL:n ja LL:n välillä on, että HAL-ajurit edellyttävät kahvojen luomista ja käyttöä toiminnan hallintaan, kun taas LL-ajurit toimivat suoraan oheisrekistereissä. Examples_MIX esimample kuvaa HAL:n ja LL:n sekoittamista.
- Miten LL-alustuksen API:t otetaan käyttöön?
- LL-alustuksen sovellusliittymien ja niihin liittyvien resurssien (rakenteet, literaalit ja prototyypit) määrittelyn määrää USE_FULL_LL_DRIVER-käännöskytkin.
- Jotta voit käyttää LL-alustuksen sovellusliittymiä, lisää tämä kytkin työkaluketjun kääntäjän esiprosessoriin.
- Kuinka STM32CubeMX voi luoda koodia sulautettujen ohjelmistojen perusteella?
STM32CubeMX:llä on sisäänrakennettu tietämys STM32-mikro-ohjaimista, mukaan lukien niiden oheislaitteet ja ohjelmistot, jotka mahdollistavat graafisen esityksen tarjoamisen käyttäjälle ja *.h:n tai *.c:n luomisen. files perustuu käyttäjän kokoonpanoon.
TÄRKEÄ HUOMAUTUS – LUE HUOLELLISESTI
- STMicroelectronics NV ja sen tytäryhtiöt ("ST") varaavat oikeuden tehdä muutoksia, korjauksia, parannuksia, muunnoksia ja parannuksia ST-tuotteisiin ja/tai tähän asiakirjaan milloin tahansa ilman erillistä ilmoitusta. Ostajien tulee saada viimeisimmät asiaankuuluvat tiedot ST-tuotteista ennen tilauksen tekemistä. ST-tuotteita myydään tilausvahvistushetkellä voimassa olevien ST:n myyntiehtojen mukaisesti.
- Ostajat ovat yksin vastuussa ST-tuotteiden valinnasta, valinnasta ja käytöstä, eikä ST ota vastuuta sovellusavusta tai ostajien tuotteiden suunnittelusta.
- ST ei myönnä tässä asiakirjassa mitään nimenomaista tai epäsuoraa lisenssiä millekään immateriaalioikeuksille.
- ST-tuotteiden jälleenmyynti, jossa on poikkeavia ehtoja kuin tässä esitetyt tiedot, mitätöi kaikki ST:n kyseiselle tuotteelle myöntämät takuut.
- ST ja ST-logo ovat ST:n tavaramerkkejä. Lisätietoja ST-tavaramerkeistä on osoitteessa www.st.com/trademarks. Kaikki muut tuotteiden tai palveluiden nimet ovat omistajiensa omaisuutta.
- Tämän asiakirjan tiedot korvaavat ja korvaavat tämän asiakirjan aiemmissa versioissa aiemmin annetut tiedot.
- © 2023 STMicroelectronics – Kaikki oikeudet pidätetään
Asiakirjat / Resurssit
![]() |
STMicroelectronics STM32WBA -sarjan aloitusopas [pdfKäyttöopas STM32WBA-sarja Aloitus, Aloitus, Aloitus |