STMicroelectronics-logo

STMicroelectronics STM32WBA seeria alustamine

STMicroelectronics-STM32WBA-seeria-Alustamine-joon-1

Tooteteave

Tehnilised andmed:

  • Toote nimi: STM32CubeWBA MCU pakett
  • Tootja: STMikroelektroonika
  • Ühilduvus: STM32WBA seeria mikrokontrollerid
  • Litsentsi andmine: Avatud lähtekoodiga BSD litsents

Toote kasutusjuhised

STM32CubeWBA MCU paketi peamised omadused:
STM32CubeWBA MCU pakett sisaldab kõiki vajalikke manustatud tarkvarakomponente rakenduste arendamiseks STM32WBA seeria mikrokontrolleritel. See on STM32 seerias väga kaasaskantav ning kaasas on HAL ja LL API, ntamples ja vahevara komponendid.

Arhitektuur läbiview:
STM32CubeWBA MCU paketi arhitektuur koosneb kolmest tasemest – rakendused, raamatukogu ja protokollipõhised komponendid, riistvara abstraktsioonikiht, BSP draiverid, põhidraiverid ja madala kihi API-d.

KKK

  • Mida STM32CubeWBA MCU pakett sisaldab?
    Pakett sisaldab madala kihi (LL) ja riistvara abstraktsioonikihi (HAL) API-sid, ntamples, rakendused, vahevara komponendid nagu FileX/LevelX, NetX Duo, mbed-krüptoteegid ja palju muud.
  • Kas STM32CubeWBA MCU pakett ühildub STM32CubeMX koodigeneraatoriga?
    Jah, pakett ühildub täielikult STM32CubeMX koodigeneraatoriga lähtestamiskoodi genereerimiseks.

Sissejuhatus

  • STM32Cube on STMicroelectronicsi originaalalgatus, mis parandab oluliselt disainerite tootlikkust, vähendades arendustegevust, aega ja kulusid. STM32Cube katab kogu STM32 portfelli.
    STM32Cube sisaldab:
    • Kasutajasõbralike tarkvaraarendustööriistade komplekt, mis katab projekti arendamise alates kontseptsioonist kuni teostuseni, sealhulgas:
      • STM32CubeMX, graafiline tarkvara konfiguratsioonitööriist, mis võimaldab graafiliste viisardite abil automaatselt genereerida C-initsialiseerimiskoodi
      • STM32CubeIDE, kõik-ühes arendustööriist perifeerse konfiguratsiooni, koodi genereerimise, koodide kompileerimise ja silumisfunktsioonidega
      • STM32CubeCLT, kõik-ühes käsurea arendustööriistade komplekt koodi koostamise, plaadi programmeerimise ja silumisfunktsioonidega
      • STM32CubeProgrammer (STM32CubeProg), programmeerimistööriist, mis on saadaval graafilises ja käsurea versioonis
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), võimsad jälgimistööriistad STM32 rakenduste käitumise ja jõudluse reaalajas viimistlemiseks
    • STM32Cube MCU ja MPU paketid, iga mikrokontrolleri ja mikroprotsessori seeria jaoks spetsiifilised laiaulatuslikud manustarkvaraplatvormid (nt STM32CubeWBA STM32WBA seeria jaoks), mis hõlmavad järgmist:
      • STM32Cube'i riistvara abstraktsioonikiht (HAL), mis tagab maksimaalse kaasaskantavuse kogu STM32 portfellis
      • STM32Cube madala kihi API-d, mis tagavad parima jõudluse ja jalajälje ning kasutajal on riistvara üle suur kontroll
      • Järjepidev vahevara komponentide komplekt, nagu ThreadX, FileX / LevelX, NetX Duo, USBX, puuteek, mbed-crypto, TFM, MCUboot, OpenBL ja STM32_WPAN (sh Bluetooth® Low Energy profiles ja teenused, Mesh, Zigbee®, OpenThread, Matter ja 802.15.4 MAC kiht)
      • Kõik manustatud tarkvara utiliidid koos välisseadmete ja rakenduste täielike komplektidega, ntamples
    • STM32Cube'i laienduspaketid, mis sisaldavad manustatud tarkvarakomponente, mis täiendavad STM32Cube'i MCU- ja MPU-pakettide funktsioone:
      • Vahevara laiendused ja rakenduskihid
      • Examples töötab mõnel konkreetsel STMicroelectronics arendusplaadil
  • See kasutusjuhend kirjeldab, kuidas alustada STM32CubeWBA MCU paketi kasutamist.
    • Jaotis 2 STM32CubeWBA põhifunktsioonid kirjeldab STM32CubeWBA MCU paketi põhifunktsioone.
    • Jaotis 3 STM32CubeWBA arhitektuur on läbiview annab üleview STM32CubeWBA arhitektuuri ja MCU paketi struktuuri.

Üldine teave

STM32CubeWBA MCU pakett töötab STM32 32-bitistel mikrokontrolleritel, mis põhinevad Arm® Cortex®-M33 protsessoril koos Arm® TrustZone® ja FPU-ga.
Märkus. Arm ja TrustZone on ettevõtte Arm Limited (või selle tütarettevõtete) registreeritud kaubamärgid USA-s ja/või mujal.

STM32CubeWBA peamised omadused

  • STM32CubeWBA MCU pakett töötab STM32 32-bitistel mikrokontrolleritel, mis põhinevad Arm® Cortex®-M33 protsessoril TrustZone® ja FPU-ga.
  • STM32CubeWBA koondab ühte paketti kõik üldised manustatud tarkvarakomponendid, mis on vajalikud STM32WBA seeria mikrokontrollerite rakenduse arendamiseks. Kooskõlas STM32Cube'i algatusega on see komponentide komplekt väga kaasaskantav mitte ainult STM32WBA seeria mikrokontrollerites, vaid ka teistes STM32 seeriates.
  • STM32CubeWBA ühildub lähtekoodi genereerimiseks täielikult STM32CubeMX koodigeneraatoriga. Pakett sisaldab madala kihi (LL) ja riistvara abstraktsioonikihi (HAL) API-sid, mis katavad mikrokontrolleri riistvara, koos ulatusliku komplektigaamples töötab STMicroelectronics plaatidel. HAL ja LL API-d on kasutaja mugavuse huvides saadaval avatud lähtekoodiga BSD litsentsina.
  • STM32CubeWBA MCU pakett sisaldab ka kõikehõlmavat vahevara komponenti, mis on üles ehitatud Microsoft® Azure® RTOS vahevara ja muude majasiseste ja avatud lähtekoodiga virnade ümber koos vastavate eksemplaridega.ampvähem.
  • Nendega kaasnevad tasuta kasutajasõbralikud litsentsitingimused:
    • Integreeritud ja täisfunktsionaalne Azure® RTOS: Azure® RTOS ThreadX
    • CMSIS-RTOS-i juurutamine koos Azure® RTOS ThreadX-iga
    • Paljude klassidega USB-hosti- ja -seadmete virnad: Azure® RTOS USBX
    • Täiustatud file süsteemi- ja välktõlkekiht: FileX / TaseX
    • Tööstusliku kvaliteediga võrgupinn: optimeeritud jõudluseks paljude asjade Interneti-protokollidega: NetX Duo
    • OpenBootloader
    • Arm® Trusted Firmware-M (TF-M) integratsioonilahendus
    • mbed-krüptoteegid
    • ST Netwoki raamatukogu
    • STMTouchi puutetundliku raamatukogu lahendus
  • STM32CubeWBA MCU paketis on ka mitmeid rakendusi ja demonstratsioone, mis rakendavad kõiki neid vahevara komponente.
  • STM32CubeWBA MCU paketi komponentide paigutust illustreerib joonis 1. STM32CubeWBA MCU paketi komponendid.

    STMicroelectronics-STM32WBA-seeria-Alustamine-joon-2

STM32CubeWBA arhitektuur läbiview

STM32CubeWBA MCU paketilahendus on üles ehitatud kolmele sõltumatule tasemele, mis on hõlpsasti interakteeruvad, nagu on kirjeldatud joonisel 2. STM32CubeWBA MCU paketi arhitektuur.

STMicroelectronics-STM32WBA-seeria-Alustamine-joon-3

0. tase

See tase on jagatud kolmeks alamkihiks:

  • Juhatuse tugipakett (BSP).
  • Riistvara abstraktsioonikiht (HAL):
    • HAL välisseadmete draiverid
    • Madala kihi draiverid
  • Välisseadmete põhikasutus, ntampvähem.

Tahvli tugipakett (BSP)
See kiht pakub komplekti API-sid, mis on seotud riistvaraplaatide riistvarakomponentidega (nt LCD-, heli-,\microSD™- ja ​​MEMS-draiverid). See koosneb kahest osast:

  • Komponendi draiver:
    See draiver on seotud plaadil oleva välisseadmega, mitte STM32 seadmega. Komponendidraiver pakub BSP draiveri väliskomponentidele spetsiifilisi API-sid ja seda saab kaasas kanda mis tahes muule plaadile.
  • BSP draiver:
    BSP-draiver võimaldab linkida komponentide draiverid konkreetse plaadiga ja pakub kasutajasõbralikku komplekti
    API-d. API nimetamise reegel on BSP_FUNCT_Action().
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP põhineb modulaarsel arhitektuuril, mis võimaldab hõlpsat portimist mis tahes riistvarale, rakendades lihtsalt madala taseme rutiinid.

Riistvara abstraktsioonikiht (HAL) ja madalkiht (LL)
STM32CubeWBA HAL ja LL täiendavad üksteist ja katavad laia valikut rakendusnõudeid:

  • HAL-draiverid pakuvad kõrgetasemelisi funktsioonidele orienteeritud väga kaasaskantavaid API-sid. Need peidavad lõppkasutaja ees MCU ja välisseadmete keerukuse.
    HAL-draiverid pakuvad üldisi mitme eksemplari funktsioonidele orienteeritud API-sid, mis lihtsustavad kasutajarakenduste juurutamist, pakkudes kasutusvalmis protsesse. Näiteksample, sidevälisseadmete (I2S, UART jt) jaoks pakub see API-sid, mis võimaldavad välisseadme lähtestada ja konfigureerida, hallata andmeedastust pollimise, katkestamise või DMA protsessi alusel ning käsitleda side ajal tekkida võivaid sidevigu. HAL-draiveri API-d on jagatud kahte kategooriasse:
    1. Üldised API-d, mis pakuvad ühiseid ja üldisi funktsioone kõigile STM32 seeria mikrokontrolleritele.
    2. Laiendusliidesed, mis pakuvad spetsiifilisi ja kohandatud funktsioone konkreetse perekonna või konkreetse osanumbri jaoks.
  • Madala kihi API-d pakuvad madala taseme API-sid registri tasemel parema optimeerimisega, kuid väiksema teisaldatavusega.
    • Need nõuavad sügavaid teadmisi MCU ja välisseadmete spetsifikatsioonide kohta.
    • LL-draiverid on loodud pakkuma kiiret ja kerget eksperdile orienteeritud kihti, mis on riistvarale lähemal kui HAL. Vastupidiselt HAL-ile ei pakuta LL API-sid välisseadmetele, mille jaoks optimeeritud juurdepääs ei ole põhifunktsioon, või neile, mis nõuavad rasket tarkvarakonfiguratsiooni või keerukat kõrgema taseme pinu.
    • LL-draiverite funktsioonid:
      • Funktsioonide komplekt välisseadmete põhifunktsioonide lähtestamiseks vastavalt andmestruktuurides määratud parameetritele.
      • Funktsioonide komplekt lähtestamisandmete struktuuride täitmiseks igale väljale vastavate lähtestusväärtustega.
      • Välisseadmete deinitsialiseerimise funktsioon (välisseadmete registrid taastatakse vaikeväärtustele).
      • Sisseehitatud funktsioonide komplekt otseseks ja aatomiregistri juurdepääsuks.
      • Täielik sõltumatus HAL-ist ja võimalus kasutada eraldiseisvas režiimis (ilma HAL-draiveriteta).
      • Toetatud välisseadmete täielik katvus.

Välisseadmete põhikasutus, ntamples
See kiht ümbritseb exampehitatud üle STM32 välisseadmete, kasutades ainult HAL- ja BSP-ressursse.

1. tase

See tase on jagatud kaheks alamkihiks:

  • Vahevara komponendid
  • Examppõhinevad vahevara komponentidel

Vahevara komponendid

  • Vahevara on teekide komplekt, mis hõlmab Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot ja mbed-crypto.
  • Selle kihi komponentide horisontaalne interaktsioon toimub esiletoodud API-de kutsumisega.
  • Vertikaalne suhtlus madala kihi draiveritega toimub spetsiifiliste tagasihelistamiste ja staatiliste makrode kaudu, mis on rakendatud raamatukogu süsteemi kõneliideses.
  • Iga vahevara komponendi põhifunktsioonid on järgmised:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: reaalajas operatsioonisüsteem (RTOS), mis on loodud kahe funktsionaalse režiimiga manustatud süsteemide jaoks.
        • Ühine režiim: tavalised RTOS-i funktsioonid, nagu lõimehaldus ja sünkroonimine, mälukogumi haldamine, sõnumivahetus ja sündmuste haldamine.
        • Moodulirežiim: täiustatud kasutajarežiim, mis võimaldab moodulihalduri kaudu lingitud ThreadX-i mooduleid lennult laadida ja maha laadida.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): rakendab Bluetooth® Low Energy protokolli lingi ja virna kihtide jaoks.
    • MCUboot (avatud lähtekoodiga tarkvara)
    • Zigbee® protokollid virna ja sellega seotud klastrite jaoks.
    • Thread®-i protokollipinn ja lingikiht.
    • Arm®-i usaldusväärne püsivara-M, TF-M (avatud lähtekoodiga tarkvara): TrustZone®-i Arm®-i platvormi turbearhitektuuri (PSA) ja sellega seotud turvateenuste juurutusviis.
    • mbed-crypto (avatud lähtekoodiga tarkvara): mbed-crypto vahevara pakub PSA krüptograafia API juurutamist.
    • STM32 puutetundliku teek: tugev STMTouchi mahtuvuslik puutetundlik lahendus, mis toetab lähedust, puuteklahvi, lineaarseid ja pöörlevaid puuteandureid. See põhineb tõestatud pinnalaengu ülekande omandamise põhimõttel.

Examppõhinevad vahevara komponentidel
Iga vahevara komponendiga on kaasas üks või mitu eksamples (nimetatakse ka rakendusteks), mis näitab, kuidas seda kasutada. Integratsioon ntampPakutakse ka mitut vahevara komponenti kasutavaid tooteid.

STM32CubeWBA püsivara pakett läbiview

Toetatud STM32WBA seeria seadmed ja riistvara

  • STM32Cube pakub suurel määral kaasaskantavat riistvara abstraktsioonikihti (HAL), mis on ehitatud üldise arhitektuuri ümber. See võimaldab ülesehituskihtide põhimõtet, näiteks vahevara kihi kasutamist nende funktsioonide rakendamiseks, teadmata põhjalikult, mida MCU-d kasutatakse. See parandab raamatukogu koodi korduvkasutatavust ja tagab hõlpsa kaasaskantavuse teistele seadmetele.
  • Lisaks pakub STM32CubeWBA tänu oma kihilisele arhitektuurile kõigi STM32WBA seeriate täielikku tuge.
  • Kasutajal tuleb ainult failis stm32wbaxx.h õige makro määratleda.
  • Tabelis 1 on näidatud makro, mis tuleb määrata sõltuvalt kasutatavast STM32WBA seeria seadmest. See makro peab olema määratletud ka kompilaatori eelprotsessoris.
    Tabel 1. STM32WBA seeria makrod
    Makro on määratletud failis stm32wbaxx.h STM32WBA seeria seadmed
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA sisaldab rikkalikku examplesid ja rakendusi kõikidel tasanditel, mistõttu on lihtne mõista ja kasutada kõiki HAL-i draivereid või vahevara komponente. Need examples töötavad tabelis 2 loetletud STMicroelectronics plaatidel.
    Tabel 2. STM32WBA seeria plaadid
    juhatus Pane STM32WBA toetatud seadmetele
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • STM32CubeWBA MCU paketti saab töötada mis tahes ühilduva riistvaraga. Kasutaja värskendab lihtsalt BSP-draivereid, et portida pakutud examples plaadil, kui viimasel on samad riistvarafunktsioonid (nt LED, LCD-ekraan ja nupud).
Püsivarapakett läbiview
  • STM32CubeWBA paketilahendus on saadaval ühes ZIP-paketis, mille struktuur on näidatud joonisel 3. STM32CubeWBA püsivara paketi struktuur.

    STMicroelectronics-STM32WBA-seeria-Alustamine-joon-4

  • Iga tahvli jaoks komplekt examples on varustatud EWARM-i, MDK-ARM-i ja STM32CubeIDE-tööriistaahelate eelkonfigureeritud projektidega.
  • Joonis 4. STM32CubeWBA eksamples läbiview näitab NUCLEO-WBA52CG, NUCLEO-WBA55CG ja STM32WBA55G-DK1 plaatide projekti struktuuri.

    STMicroelectronics-STM32WBA-seeria-Alustamine-joon-5

  • EndineampNeed on klassifitseeritud sõltuvalt STM32Cube'i tasemest, millele need kehtivad, ja neid nimetatakse järgmiselt:
    • Tase 0, ntamplesid nimetatakse Examples, ntamples_LL ja Examples_MIX. Nad kasutavad vastavalt HAL-draivereid, LL-draivereid ning HAL- ja LL-draiverite segu ilma vahevarakomponendita.
    • Tase 1, ntamplesid nimetatakse rakendusteks. Need pakuvad iga vahevara komponendi tüüpilisi kasutusjuhtumeid. Tänu kataloogides Templ ates ja Templates_LL saadaolevatele malliprojektidele saab antud tahvli jaoks mis tahes püsivararakendust kiiresti luua.

TrustZone®-iga lubatud projektid

  • TrustZone® toega Examples nimed sisaldavad eesliidet _TrustZone. Reegel kehtib ka rakenduste puhul (välja arvatud TFM ja SBSFU, mis on natiivselt TrustZone®-i jaoks).
  • TrustZone®-i toega Examples ja Rakendused on varustatud mitmeprojektilise struktuuriga, mis koosneb turvalistest ja mitteturvalistest alamprojektidest, nagu on näidatud joonisel 5. Mitmeprojekti turvaline ja mitteturvaline projekti struktuur.
  • TrustZone®-i toega projektid töötatakse välja vastavalt CMSIS-5 seadmemallile, mida on laiendatud süsteemi partitsioonide päisega file partitsioon_ .h, kes vastutab peamiselt turvalise atribuudiüksuse (SAU), FPU ja turvaliste/mitteturvaliste katkestuste määramise eest turvalises täitmise olekus.
  • See häälestus viiakse läbi turvalises CMSIS-i SystemInit() funktsioonis, mida kutsutakse käivitamisel enne turvalise rakenduse main() funktsiooni sisenemist. Vaadake Arm® TrustZone®-M tarkvarajuhiste dokumentatsiooni.

    STMicroelectronics-STM32WBA-seeria-Alustamine-joon-6

  • STM32CubeWBA paketi püsivarapakett pakub partitsioonis mälu vaikepartitsiooni _ .h files on saadaval all: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • Nendes partitsioonides files, on SAU vaikimisi keelatud. Järelikult kasutatakse IDAU mälu vastendust turvalisuse omistamiseks. Vaadake RM0495 viitejuhendi joonist Turvaline/mitteturvaline partitsioonide eraldamine TrustZone® tehnoloogia abil.
  • Kui kasutaja lubab SAU-d, on sektsioonis SAU-piirkondade vaikekonfiguratsioon eelmääratletud files järgmiselt:
    • SAU piirkond 0: 0x08080000 – 0x081FFFFF (mitteturvaline pool välkmälust (512 kbit))
    • SAU 1. piirkond: 0x0BF88000 – 0x0BF97FFF (mitteturvaline süsteemimälu)
    • SAU 2. piirkond: 0x0C07E000 – 0x0C07FFFF (turvaline, mitteturvaline helistatav)
    • SAU 3. regioon: 0x20010000 – 0x2001FFFF (mitteturvaline SRAM2 (64 KB))
    • SAU piirkond 4: 0x40000000 – 0x4FFFFFFFF (mitteturvaline välisseadmete kaardistatud mälu)
  • Vaikepartitsiooniga sobitamiseks peavad STM32WBAxx seeria seadmetes olema määratud järgmised kasutaja suvandite baidid:
    • TZEN = 1 (TrustZone®-i toega seade)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 lehekülge 128-st sisemisest välkmälust on seatud turvaliseks) Märkus: sisemine välkmälu on TZEN = 1 puhul vaikimisi täielikult turvaline. Kasutaja valikubaidid SECWM1_PSTRT/ SECWM1_PEND tuleb määrata vastavalt rakendusele mälu konfiguratsioon (SAU piirkonnad, kui SAU on lubatud). Turvaliste/mitteturvaliste rakenduste projekti linker files tuleb samuti joondada.
  • Kõik exampneil on sama struktuur:
    • \Inc kaust, mis sisaldab kogu päist files.
    • Src kaust, mis sisaldab lähtekoodi.
    • \EWARM, \MDK-ARM ja \STM32CubeIDE kaustad, mis sisaldavad iga tööriistaahela eelkonfigureeritud projekti.
    • readme.md ja readme.html, mis kirjeldavad endistampkäitumist ja selle toimimiseks vajalikku keskkonda.
    • ioc file mis võimaldab kasutajatel avada suurema osa püsivara ntamples STM32CubeMX-is.

STM32CubeWBA-ga alustamine

Esimese HAL-i eksample

Selles jaotises selgitatakse, kui lihtne on esimese eksample STM32CubeWBA sees. See kasutab illustratsioonina lihtsa LED-lüliti genereerimist, mis töötab NUCLEO-WBA52CG plaadil:

  1. Laadige alla STM32CubeWBA MCU pakett.
  2. Pakkige see lahti oma valitud kataloogi.
  3. Ärge muutke joonisel 1 näidatud paketi struktuuri. Samuti on soovitatav pakett kopeerida oma juurmahu lähedale (tähendab C:\ST või G:\Tests), kuna mõnel IDE-l tekib tee leidmisel probleeme. pikkus on liiga pikk.

Esimese TrustZone®-iga lubatud ntample

  • Enne TrustZone®-iga lubatud nt laadimist ja käivitamistample, on kohustuslik lugeda eksample loe mind file mis tahes konkreetse konfiguratsiooni jaoks, mis tagab, et turvalisus on lubatud, nagu on kirjeldatud jaotises 4.2.1 TrustZone® toega projektid (TZEN=1 (kasutaja valikubait)).
    1. Sirvige jaotist \Projects\NUCLEO-WBA52CG\Exampvähem.
    2. Avage \GPIO ja seejärel \GPIO_IOToggle_TrustZone kaustad.
    3. Avage projekt oma eelistatud tööriistaahelaga. Kiire lõppview kuidas endist avada, ehitada ja juhtidaample koos toetatud tööriistakettidega on toodud allpool.
    4. Ehitage järjestikku ümber kõik turvalised ja mitteturvalised projektid files ja laadige turvalised ja mitteturvalised pildid sihtmällu.
    5. Käivitage endineample: regulaarselt vahetab turvaline rakendus LD2 iga sekundi tagant ja mitteturvaline rakendus LD3 kaks korda kiiremini. Lisateabe saamiseks vaadake lugemist file endisestample.
  • Endise avamiseks, loomiseks ja käitamiseksamptoetatud tööriistakettidega, järgige alltoodud samme.
    • EWARM:
      1. Endise alluvusesample kausta, avage alamkaust \EWARM.
      2. Käivitage tööruum Project.eww
      3. Ehitage uuesti üles turvaprojekt xxxxx_S files: [Projekt]> [Ehita kõik uuesti].
      4. Määrake xxxxx_NS mitteturvaline projekt aktiivseks rakenduseks (paremklõps projektil xxxxx_NS [Set as Active])
      5. Taastage xxxxx_NS mitteturvaline projekt files: [Projekt]> [Ehita kõik uuesti].
      6. Välgutage ebaturvaline kahendfail, valides [Projekt]>[Laadi alla]>[Laadi alla aktiivne rakendus] .
      7. Määrake xxxxx_S aktiivseks rakenduseks (paremklõps projektil xxxxx_S [Set as Active]).
      8. Välgutage turvaline kahendfail nupuga [Laadi alla ja silu] (Ctrl+D).
      9. Käivitage programm: [Silumine]> [Go(F5)]
    • MDK-ARM:
      1. Avage tööriistakett \MDK-ARM.
      2. Avage tööala Multiprojects file Project.uvmpw.
      3. Valige projekt xxxxx_s aktiivseks rakenduseks ([Set as Active Project]).
      4. Ehitage projekt xxxxx_s.
      5. Valige projekt xxxxx_ns aktiivseks projektiks ([Set as Active Project]).
      6. Ehitage projekt xxxxx_ns.
      7. Laadige mitteturvaline kahendfail ([F8]). See laadib faili \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf välkmällu)
      8. Valige Projekti projekt aktiivseks projektiks ([Set as Active Project]).
      9. Laadige turvaline kahendfail ([F8]). See laadib faili \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf välkmällu).
      10. Käivitage endineample.
    • STM32CubeIDE:
      1. Avage STM32CubeIDE tööriistakett.
      2. Avage tööala Multiprojects file .projekt.
      3. Taastage projekt xxxxx_Secure.
      4. Taastage projekt xxxxx_NonSecure.
      5. Käivitage turvalise projekti jaoks rakendus [Debug as STM32 Cortex-M C/C++].
      6. Valige aknas [Edit configuration] paneel [Startup] ja lisage mitteturvalise projekti pilt ja sümbolid.
        Tähtis: Mitteturvaline projekt tuleb laadida enne turvalist projekti.
      7. Klõpsake [OK].
      8. Käivitage endineample silumisperspektiivist.

Esimese TrustZone®-i käivitamine keelatud example

  • Enne TrustZone®-i laadimist ja käivitamist on keelatud ntample, on kohustuslik lugeda eksample loe mind file mis tahes konkreetse konfiguratsiooni jaoks. Kui konkreetseid mainimisi pole, veenduge, et plaadiseadme turvalisus on keelatud (TZEN=0 (kasutaja valiku bait)). Vt KKK-d, et teha valikuline regressioon kuni TZEN = 0
    1. Sirvige jaotist \Projects\NUCLEO-WBA52CG\Exampvähem.
    2. Avage \GPIO ja seejärel \GPIO_EXTI kaustad.
    3. Avage projekt oma eelistatud tööriistaahelaga. Kiire lõppview kuidas endist avada, ehitada ja juhtidaample koos toetatud tööriistakettidega on toodud allpool.
    4. Ehitage kõik uuesti files ja laadige oma pilt sihtmällu.
    5. Käivitage endineample: iga kord, kui vajutatakse [USER] nuppu, lülitub LD1 LED-tuli. Lisateabe saamiseks vaadake lugemist file endisestample.
  • Endise avamiseks, loomiseks ja käitamiseksamptoetatud tööriistakettidega, järgige alltoodud samme.
    • EWARM:
      1. Endise alluvusesample kausta, avage alamkaust \EWARM.
      2. Käivitage tööruum Project.eww (tööruumi nimi võib muutuda ühe ntample teisele).
      3. Ehitage kõik uuesti files: [Projekt]> [Ehita kõik uuesti].
      4. Laadige projekti pilt: [Projekt]>[Silumine].
      5. Käivitage programm: [Silumine]> [Mine (F5)].
    • MDK-ARM:
      1. Endise alluvusesample kausta, avage alamkaust \MDK-ARM.
      2. Käivitage tööruum Project.uvproj (tööruumi nimi võib muutuda ühe ntample teisele).
      3. Ehitage kõik uuesti files:[Projekt]>[Ehita kõik sihtmärgid uuesti üles files].
      4. Laadige projekti pilt: [Silumine]> [Start/Stop Silumisseanss].
      5. Käivitage programm: [Silumine]> [Käivita (F5)].
    • STM32CubeIDE:
      1. Avage STM32CubeIDE tööriistakett.
      2. Klõpsake [File]>[Vaheta tööruumi]>[Muu] ja sirvige STM32CubeIDE tööruumi kataloogi.
      3. Klõpsake [File]> [Import], valige [Üldine]> [Olemasolevad projektid tööruumi] ja seejärel klõpsake [Järgmine].
      4. Sirvige STM32CubeIDE tööruumi kataloogi ja valige projekt.
      5. Ehitage kogu projekt uuesti files: Valige aknas [Project Explorer] projekt, seejärel klõpsake menüüd [Project]> [Build project].
      6. Käivitage programm: [Käivita]>[Silumine (F11)]
Kohandatud rakenduse arendamine

Märkus. Tarkvara peab võimaldama käskude vahemällul (ICACHE) saada välkmälust ooteoleku 0 täitmist ning saavutada maksimaalne jõudlus ja parem energiatarve.

STM32CubeMX kasutamine rakenduse arendamiseks või värskendamiseks

  • STM32CubeWBA MCU paketis on peaaegu kõik projektid, v.aamples genereeritakse STM32CubeMX tööriistaga süsteemi, välisseadmete ja vahevara lähtestamiseks.
  • Olemasoleva projekti otsene kasutamine ntampSTM32CubeMX tööriista jaoks on vaja STM32CubeMX 6.10.0 või uuemat versiooni:
    • Pärast STM32CubeMX installimist avage ja vajadusel värskendage pakutud projekt. Lihtsaim viis olemasoleva projekti avamiseks on topeltklõps *.ioc file nii et STM32CubeMX avab automaatselt projekti ja selle allika files.
    • STM32CubeMX genereerib selliste projektide lähtekoodi. Peamise rakenduse lähtekoodi sisaldavad kommentaarid "KASUTAJAKOODI ALGUS" ja "KASUTAJAKOODI LÕPP". Kui IP valikut ja sätteid muudetakse, värskendab STM32CubeMX koodi lähtestamisosa, kuid säilitab põhirakenduse lähtekoodi.
  • Kohandatud projekti arendamiseks STM32CubeMX-is järgige samm-sammult:
    1. Valige STM32 mikrokontroller, mis vastab nõutavale välisseadmete komplektile.
    2. Konfigureerige kogu vajalik manustatud tarkvara, kasutades pinout-konfliktide lahendajat, kellapuu seadistusabilist, energiatarbimise kalkulaatorit ja utiliiti, mis teostab MCU välisseadmete konfigureerimist (nt GPIO või USART) ja vahevaravirnu (nt USB).
    3. Valitud konfiguratsiooni põhjal genereerige lähtestamiskood C. See kood on kasutamiseks valmis mitmes arenduskeskkonnas. Kasutajakoodi säilitatakse järgmisel koodi genereerimisel.
  • Lisateavet STM32CubeMX kohta leiate kasutusjuhendist STM32CubeMX STM32 konfigureerimise ja lähtestamise C-koodi genereerimiseks (UM1718).
  • Saadaolevate projektide loendi, ntampSTM32CubeWBA puhul vaadake rakenduse märkust STM32Cube püsivara exampvähem STM32WBA seeria jaoks (AN5929).

Draiveri rakendused

HAL rakendus
Selles jaotises kirjeldatakse samme, mis on vajalikud kohandatud HAL-rakenduse loomiseks STM32CubeWBA abil.

  1. Loo projekt
    • Uue projekti loomiseks alustage iga tahvli jaoks \Projects\ all olevast malliprojektist \Mallid või mis tahes saadaolevast projektist jaotises \Projects\ \Näited või \Projektid\ \Rakendused (kus viitab plaadi nimele, näiteks STM32CubeWBA).
    • Mallprojekt pakub tühja põhitsükli funktsiooni. Siiski on see hea lähtepunkt STM32CubeWBA projekti sätete mõistmiseks. Mallil on järgmised omadused:
      • See sisaldab HAL-i lähtekoodi, CMSIS-i ja BSP-draivereid, mis on minimaalne komponentide komplekt, mis on vajalik antud plaadil koodi väljatöötamiseks.
      • See sisaldab kõigi püsivara komponentide kaasatud teid.
      • See määratleb toetatud STM32WBA seeria seadmed, võimaldades CMSIS- ja HAL-draivereid õigesti konfigureerida.
      • See pakub kasutusvalmis kasutajat fileon eelkonfigureeritud, nagu allpool näidatud:
        HAL lähtestati vaikeaja baasiga Arm® core SysTicki abil. SysTicki ISR ​​on rakendatud HAL_Delay() eesmärgil.
        Märkus. Kui kopeerite olemasoleva projekti teise asukohta, veenduge, et kõik kaasatud teed oleksid värskendatud.
  2. Lisage kasutajaprojektile vajalik vahevara (valikuline)
    Allika tuvastamiseks files lisatakse projekti file loendist, vaadake iga vahevara dokumentatsiooni. Vaadake rakendusi jaotises \Projects\STM32xxx_yyy\Applications\ (kus viitab vahevara virnale, näiteks ThreadX), et teada saada, millist allikat files ja include teed tuleb lisada.
  3. Konfigureerige püsivara komponendid
    HAL ja vahevara komponendid pakuvad komplekti ehitusaja konfiguratsioonivalikuid, kasutades päises deklareeritud #define makrosid file. Malli konfiguratsioon file on igas komponendis, mis tuleb kopeerida projekti kausta (tavaliselt konfiguratsiooni file mille nimi on xxx_conf_template.h, tuleb sõna _template selle projekti kausta kopeerimisel eemaldada). Konfiguratsioon file annab piisavalt teavet, et mõista iga konfiguratsioonivaliku mõju. Üksikasjalikum teave on saadaval iga komponendi dokumentatsioonis.
  4. Käivitage HAL-i raamatukogu
    Pärast põhiprogrammi hüppamist peab rakenduse kood kutsuma HAL_Init() API-t, et lähtestada HAL teegi, mis täidab järgmisi ülesandeid:
    • Välkmälu eellaadimise ja SysTicki katkestuse prioriteedi konfigureerimine (failis st m32wbaxx_hal_conf.h määratletud makrode kaudu).
    • SysTicki konfiguratsioon, et genereerida katkestus iga millisekundi SysTicki katkestuse prioriteediga TICK_INT_PRIO, mis on määratletud failis stm32wbaxx_hal_conf.h.
    • NVIC-grupi prioriteediks on seatud 0.
    • Kasutajas stm32wbaxx_hal_msp.c määratletud tagasihelistamisfunktsiooni HAL_MspInit() väljakutse file globaalsete madala taseme riistvara initsialiseerimiseks.
  5. Konfigureerige süsteemi kell
    Süsteemi kella konfigureerimiseks helistatakse kahele allpool kirjeldatud API-le:
    • HAL_RCC_OscConfig(): see API konfigureerib sisemised ja välised ostsillaatorid. Kasutaja valib ühe või kõigi ostsillaatorite konfigureerimise.
    • HAL_RCC_ClockConfig(): see API konfigureerib süsteemi kella allika, välkmälu latentsuse ning AHB ja APB eelskaalajad.
  6. Initsialiseerige välisseade
    • Esmalt kirjutage välisseadme funktsioon HAL_PPP_MspInit. Toimige järgmiselt.
      • Luba välisseadmete kell.
      • Välisseadmete GPIO-de konfigureerimine.
      • Konfigureerige DMA kanal ja lubage DMA katkestus (vajadusel).
      • Luba välisseadmete katkestus (vajadusel).
    • Vajadusel redigeerige faili stm32xxx_it.c, et kutsuda välja vajalikud katkestuste töötlejad (välisseadmed ja DMA).
    • Kirjutage protsessi täielikud tagasihelistamise funktsioonid, kui plaanitakse kasutada välisseadme katkestust või DMA-d.
    • Kasutajas main.c file, lähtestage välisseadme käepideme struktuur ja seejärel kutsuge välisseadme lähtestamiseks funktsioon HAL_PPP_Init().
  7. Arendage rakendus
    • Sellel stage, süsteem on valmis ja kasutajarakenduse koodi arendamine võib alata.
    • HAL pakub välisseadmete konfigureerimiseks intuitiivseid ja kasutusvalmis API-sid. See toetab küsitlust, katkestusi ja DMA programmeerimismudelit, et rahuldada kõiki rakenduse nõudeid. Iga välisseadme kasutamise kohta lisateabe saamiseks vaadake rikkalikku endistampSTM32CubeWBA MCU paketis sisalduv komplekt.
      Ettevaatust: HAL-i vaikerakenduses kasutatakse ajabaasina SysTicki taimerit: see genereerib katkestused regulaarsete ajavahemike järel. Kui HAL_Delay() kutsutakse perifeerse ISR-i protsessist, veenduge, et SysTicki katkestuse prioriteet on kõrgem (arvuliselt madalam) kui välisseadme katkestusel. Vastasel juhul blokeeritakse helistaja ISR-protsess. Funktsioonid, mis mõjutavad ajabaasi konfiguratsioone, on kuulutatud kui __nõrgad, et muuta kasutaja muude rakenduste korral alistamine võimalikuks file (kasutades üldotstarbelist taimerit, ntample või mõni muu ajaallikas). Lisateabe saamiseks vaadake HAL_TimeBase example.

LL rakendus
Selles jaotises kirjeldatakse STM32CubeWBA abil kohandatud LL-rakenduse loomiseks vajalikke samme.

  1. Loo projekt
    • Uue projekti loomiseks alustage iga tahvli jaoks jaotises \Projects\ pakutavast projektist Templates_LL \Templates_LL või mis tahes saadaolevast projektist jaotises \Projects\ \Ntamples_LL ( viitab plaadi nimele, näiteks NUCLEO-WBA32CG).
    • Mallprojekt pakub tühja põhisilmuse funktsiooni, mis on hea lähtepunkt STM32CubeWBA projekti sätete mõistmiseks. Malli peamised omadused on järgmised:
      • See sisaldab LL- ja CMSIS-draiverite lähtekoode, mis on minimaalne komponentide komplekt, mis on vajalik antud plaadil koodi arendamiseks.
      • See sisaldab kõigi vajalike püsivara komponentide kaasasolevaid teid.
      • See valib toetatud STM32WBA seeria seadme ja võimaldab CMSIS- ja LL-draiverite õiget konfigureerimist.
      • See pakub kasutusvalmis kasutajat files, mis on eelkonfigureeritud järgmiselt:
        ◦ main.h: LED ja USER_BUTTON definitsiooni abstraktsioonikiht.
        ◦ main.c: süsteemi kella konfiguratsioon maksimaalse sageduse jaoks.
  2. Portida olemasolev projekt teisele tahvlile
    Olemasoleva projekti toetamiseks teisel sihtplaadil alustage iga tahvli jaoks pakutavast projektist Templates_LL, mis on saadaval jaotises \Projects\ \Mallid_LL.
    • Valige LL example: Et leida tahvel, millel LL examples on kasutusele võetud, vaadake LL examples STM32CubeProjectsList.html.
  3. Port LL example:
    • Kopeerige/kleepige kaust Templates_LL – et säilitada algallikas – või värskendage otse olemasolevat Templates_LL projekti.
    • Seejärel seisneb teisaldamine peamiselt Templates_LL asendamises files eksamples_LL suunatud projekt.
    • Hoidke kõik plaadi spetsiifilised osad alles. Selguse huvides on plaadi spetsiifilised osad tähistatud konkreetsega tags:

      STMicroelectronics-STM32WBA-seeria-Alustamine-joon-7

    • Seega on peamised teisaldamise etapid järgmised:
      • Asendage fail stm32wbaxx_it.h file
      • Asendage fail stm32wbaxx_it.c file
      • Vahetage pea.h file ja värskendage seda: hoidke LL-malli LED-i ja kasutajanupu definitsiooni jaotises PLAADI SPECIFIC CONFIGURATION tags.
      • Vahetage põhi.c file ja värskendage seda:
    • Hoidke mallifunktsiooni SystemClock_Config() LL kella konfiguratsioon jaotises PLAADI SPECIFIKA CONFIGURATION tags.
    • Olenevalt LED-i definitsioonist asendage iga LDx-i esinemine teise LDy-ga, mis on saadaval põhi.h-s file.
    • Nende muudatustega on endineample jookseb nüüd sihitud pardal

Turvarakendused
See pakett tarnitakse koos turvarakendustega.

SBSFU rakendused

  • SBSFU pakub Root of Trust lahendust, sealhulgas turvalise alglaadimise ja turvalise püsivara värskenduse funktsioone (MCUbootil põhinevad).
  • Lahendust kasutatakse enne rakenduse käivitamist.
  • Lahendus pakub exampturvalise teenuse le (GPIO lüliti), mis on isoleeritud mitteturvalisest rakendusest. Käitusajal olev ebaturvaline rakendus saab seda lahendust siiski kasutada.

TFM-i rakendused
TFM pakub Root of Trust lahendust, sealhulgas turvalise alglaadimise ja turvalise püsivara värskenduse funktsioone
(põhineb MCUbootil). Lahendust kasutatakse enne rakenduse käivitamist. Lahendus pakub TFM-i turvateenuseid, mis on isoleeritud mitteturvalisest rakendusest. Käitusajal olev ebaturvaline rakendus saab seda lahendust siiski kasutada.

RF-rakendused
RF-rakendust kirjeldatakse selles rakenduse märkuses: Traadita rakenduste loomine STM32WBA seeria mikrokontrolleritega (AN5928).

STM32CubeWBA versiooni värskenduste hankimine
Uusimad STM32CubeWBA MCU paketi väljalasked ja paigad on saadaval STM32WBA seeriast. Neid saab hankida STM32CubeMX-i nupust CHECK FOR UPDATE. Lisateavet leiate kasutusjuhendi STM3CubeMX jaotisest 32 STM32 konfigureerimise ja lähtestamise C-koodi genereerimiseks (UM1718).

KKK

  • Millal peaksin kasutama LL-draiverite asemel HAL-i?
    • HAL-draiverid pakuvad kõrgetasemelisi ja funktsioonidele orienteeritud API-sid, millel on kõrge kaasaskantavus. Toote või välisseadmete keerukus on lõppkasutajate jaoks peidetud.
    • LL-draiverid pakuvad madala kihi registritaseme API-sid, parema optimeerimisega, kuid vähem kaasaskantavad. Need nõuavad põhjalikke teadmisi toote või IP spetsifikatsioonide kohta.
  • Kas ma saan HAL- ja LL-draivereid koos kasutada? Kui saan, siis millised on piirangud?
    • Võimalik on kasutada nii HAL kui LL draivereid. Kasutage HAL-i IP lähtestamise etapis ja seejärel hallake I/O toiminguid LL-draiverite abil.
    • Peamine erinevus HAL-i ja LL-i vahel seisneb selles, et HAL-draiverid nõuavad tööhalduseks käepidemete loomist ja kasutamist, samas kui LL-draiverid töötavad otse välisseadmete registrites. Examples_MIX example illustreerib HAL-i ja LL-i segamist.
  • Kuidas on LL-i lähtestamise API-d lubatud?
    • LL-i lähtestamise API-de ja nendega seotud ressursside (struktuurid, literaalid ja prototüübid) definitsiooni määrab kompileerimislüliti USE_FULL_LL_DRIVER.
    • LL-i lähtestamise API-de kasutamiseks lisage see lüliti tööriistaahela kompilaatori eelprotsessorisse.
  • Kuidas saab STM32CubeMX sisseehitatud tarkvaral põhinevat koodi genereerida?
    STM32CubeMX-l on sisseehitatud teadmised STM32 mikrokontrolleritest, sealhulgas nende välisseadmetest ja tarkvarast, mis võimaldab pakkuda kasutajale graafilist esitust ja genereerida *.h või *.c files põhineb kasutaja konfiguratsioonil.

TÄHTIS MÄRKUS – LUGEGE HOOLIKAS

  • STMicroelectronics NV ja selle tütarettevõtted („ST”) jätavad endale õiguse teha ST-toodetes ja/või selles dokumendis igal ajal ilma ette teatamata muudatusi, parandusi, täiendusi, modifikatsioone ja täiendusi. Ostjad peaksid enne tellimuste esitamist hankima uusima asjakohase teabe ST-toodete kohta. ST tooteid müüakse vastavalt ST müügitingimustele, mis kehtisid tellimuse kinnitamise ajal.
  • Ostjad vastutavad ainuisikuliselt ST-toodete valiku, valiku ja kasutamise eest ning ST ei vastuta rakendusabi ega ostjate toodete disaini eest.
  • ST ei anna siinkohal mingit otsest ega kaudset litsentsi ühelegi intellektuaalomandi õigusele.
  • ST-toodete edasimüük, mille sätted erinevad siin esitatud teabest, tühistab ST-i antud tootele antud garantii.
  • ST ja ST logo on ST kaubamärgid. ST-kaubamärkide kohta lisateabe saamiseks vaadake www.st.com/trademarks. Kõik muud toote- või teenusenimed kuuluvad nende vastavatele omanikele.
  • Selles dokumendis sisalduv teave asendab ja asendab selle dokumendi varasemates versioonides esitatud teabe.
  • © 2023 STMicroelectronics – kõik õigused kaitstud

Dokumendid / Ressursid

STMicroelectronics STM32WBA seeria alustamine [pdfKasutusjuhend
STM32WBA seeria Alustamine, alustamine, alustamine

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *