STMicroelectronics STM32WBA serijos pradžia
Informacija apie produktą
Specifikacijos:
- Produkto pavadinimas: STM32CubeWBA MCU paketas
- Gamintojas: STMikroelektronika
- Suderinamumas: STM32WBA serijos mikrovaldikliai
- Licencijavimas: Atvirojo kodo BSD licencija
Produkto naudojimo instrukcijos
Pagrindinės STM32CubeWBA MCU paketo savybės:
STM32CubeWBA MCU pakete yra visi būtini įterptosios programinės įrangos komponentai, skirti programoms kurti STM32WBA serijos mikrovaldikliuose. Jis yra labai nešiojamas STM32 serijoje ir pateikiamas su HAL ir LL API, pvzamples ir tarpinės programinės įrangos komponentus.
Architektūra baigtaview:
STM32CubeWBA MCU paketo architektūrą sudaro trys lygiai – programos, biblioteka ir protokolais pagrįsti komponentai, aparatinės įrangos abstrakcijos sluoksnis, BSP tvarkyklės, pagrindinės tvarkyklės ir žemo sluoksnio API.
DUK
- Kas įtraukta į STM32CubeWBA MCU paketą?
Į paketą įeina žemo sluoksnio (LL) ir aparatinės įrangos abstrakcijos sluoksnio (HAL) API, pvzamples, programos, tarpinės programinės įrangos komponentai, tokie kaip FileX/LevelX, NetX Duo, mbed-crypto bibliotekos ir kt. - Ar STM32CubeWBA MCU paketas suderinamas su STM32CubeMX kodų generatoriumi?
Taip, paketas yra visiškai suderinamas su STM32CubeMX kodų generatoriumi inicijavimo kodui generuoti.
Įvadas
- STM32Cube yra originali STMicroelectronics iniciatyva, skirta žymiai pagerinti dizainerių produktyvumą sumažinant kūrimo pastangas, laiką ir išlaidas. STM32Cube apima visą STM32 portfelį.
STM32Cube apima:- Patogių programinės įrangos kūrimo įrankių rinkinys, apimantis projekto kūrimą nuo sumanymo iki realizavimo, įskaitant:
- STM32CubeMX – grafinės programinės įrangos konfigūravimo įrankis, leidžiantis automatiškai generuoti C inicijavimo kodą naudojant grafinius vedlius
- STM32CubeIDE – „viskas viename“ kūrimo įrankis su periferine konfigūracija, kodo generavimu, kodo kompiliavimo ir derinimo funkcijomis
- STM32CubeCLT – „viskas viename“ komandinės eilutės kūrimo įrankių rinkinys su kodo kompiliavimo, plokštės programavimo ir derinimo funkcijomis
- STM32CubeProgrammer (STM32CubeProg), programavimo įrankis, galimas grafinėmis ir komandinės eilutės versijomis
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), galingi stebėjimo įrankiai, skirti tiksliai suderinti STM32 programų veikimą ir veikimą realiuoju laiku
- STM32Cube MCU ir MPU paketai, išsamios įterptosios programinės įrangos platformos, būdingos kiekvienai mikrovaldiklio ir mikroprocesorių serijai (pvz., STM32CubeWBA STM32WBA serijai), kurios apima:
- STM32Cube aparatūros abstrakcijos sluoksnis (HAL), užtikrinantis maksimalų perkeliamumą visame STM32 portfelyje
- STM32Cube žemo sluoksnio API, užtikrinančios geriausią našumą ir pėdsakus su dideliu vartotojo aparatinės įrangos valdymo laipsniu
- Nuoseklus tarpinės programinės įrangos komponentų rinkinys, pvz., „ThreadX“, FileX / LevelX, NetX Duo, USBX, jutiklinė biblioteka, mbed-crypto, TFM, MCUboot, OpenBL ir STM32_WPAN (įskaitant Bluetooth® Low Energy profiles ir paslaugos, „Mesh“, „Zigbee®“, „OpenThread“, „Matter“ ir 802.15.4 MAC sluoksnis)
- Visos įterptosios programinės įrangos paslaugos su visais periferinių ir taikomųjų įrenginių rinkiniais, pvzamples
- STM32Cube išplėtimo paketai, kuriuose yra įterptųjų programinės įrangos komponentų, kurie papildo STM32Cube MCU ir MPU paketų funkcijas:
- Tarpinės programinės įrangos plėtiniai ir taikomieji sluoksniai
- Examples veikia kai kuriose konkrečiose STMicroelectronics kūrimo plokštėse
- Patogių programinės įrangos kūrimo įrankių rinkinys, apimantis projekto kūrimą nuo sumanymo iki realizavimo, įskaitant:
- Šiame vartotojo vadove aprašoma, kaip pradėti naudoti STM32CubeWBA MCU paketą.
- 2 skyriuje STM32CubeWBA pagrindinės savybės aprašomos pagrindinės STM32CubeWBA MCU paketo savybės.
- 3 skyrius STM32CubeWBA architektūra baigtaview suteikia pabaigąview STM32CubeWBA architektūra ir MCU paketo struktūra.
Bendra informacija
STM32CubeWBA MCU paketas veikia STM32 32 bitų mikrovaldikliuose, paremtuose Arm® Cortex®-M33 procesoriumi su Arm® TrustZone® ir FPU.
Pastaba: Arm ir TrustZone yra registruotieji Arm Limited (arba jos dukterinių įmonių) prekių ženklai JAV ir (arba) kitur.
STM32CubeWBA pagrindinės savybės
- STM32CubeWBA MCU paketas veikia STM32 32 bitų mikrovaldikliuose, paremtuose Arm® Cortex®-M33 procesoriumi su TrustZone® ir FPU.
- STM32CubeWBA į vieną paketą surenka visus bendruosius įterptosios programinės įrangos komponentus, reikalingus STM32WBA serijos mikrovaldiklių programai sukurti. Remiantis STM32Cube iniciatyva, šis komponentų rinkinys yra labai nešiojamas ne tik STM32WBA serijos mikrovaldikliuose, bet ir kitose STM32 serijose.
- STM32CubeWBA yra visiškai suderinamas su STM32CubeMX kodo generatoriumi, kad būtų galima generuoti iniciacijos kodą. Į paketą įeina žemo sluoksnio (LL) ir aparatinės įrangos abstrakcijos sluoksnio (HAL) API, apimančios mikrovaldiklio aparatinę įrangą, kartu su dideliu ex.amples veikia STMicroelectronics plokštėse. Vartotojo patogumui HAL ir LL API yra prieinamos atvirojo kodo BSD licencijoje.
- STM32CubeWBA MCU pakete taip pat yra išsamus tarpinės programinės įrangos komponentas, sukurtas aplink Microsoft® Azure® RTOS tarpinę programinę įrangą ir kitus vidinius ir atvirojo kodo paketus su atitinkamais ex.amples.
- Jie pateikiami su nemokamomis, patogiomis licencijos sąlygomis:
- Integruotas ir visas funkcijas turintis Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS diegimas naudojant Azure® RTOS ThreadX
- USB prieglobos ir įrenginių krūvos su daugybe klasių: Azure® RTOS USBX
- Išplėstinė file sistemos ir „flash“ vertimo sluoksnis: FileX / LygisX
- Pramoninio lygio tinklo dėklas: optimizuotas našumui su daugeliu daiktų interneto protokolų: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF-M) integravimo sprendimas
- mbed-crypto bibliotekos
- ST Netwok biblioteka
- STMTouch jutiklinis bibliotekos sprendimas
- STM32CubeWBA MCU pakete taip pat yra keletas programų ir demonstracijų, įgyvendinančių visus šiuos tarpinės programinės įrangos komponentus.
- STM32CubeWBA MCU paketo komponentų išdėstymas parodytas 1 paveiksle. STM32CubeWBA MCU paketo komponentai .
STM32CubeWBA architektūra baigtaview
STM32CubeWBA MCU paketo sprendimas yra sukurtas pagal tris nepriklausomus lygius, kurie lengvai sąveikauja, kaip aprašyta 2 pav. STM32CubeWBA MCU paketo architektūra.
0 lygis
Šis lygis yra padalintas į tris posluoksnius:
- Lentos palaikymo paketas (BSP).
- Aparatinės įrangos abstrakcijos sluoksnis (HAL):
- HAL periferinės tvarkyklės
- Žemo sluoksnio vairuotojai
- Pagrindinis periferinis naudojimas, pvzamples.
Lentos palaikymo paketas (BSP)
Šis sluoksnis siūlo API rinkinį, susijusį su aparatūros komponentais aparatinės įrangos plokštėse (pvz., LCD, garso,\ microSD™ ir MEMS tvarkyklės). Jį sudaro dvi dalys:
- Komponento tvarkyklė:
Ši tvarkyklė yra susijusi su išoriniu plokštės įrenginiu, o ne su STM32 įrenginiu. Komponento tvarkyklė teikia specifines API išoriniams BSP tvarkyklės komponentams ir gali būti nešiojama bet kurioje kitoje plokštėje. - BSP vairuotojas:
BSP tvarkyklė leidžia susieti komponentų tvarkykles su konkrečia plokšte ir suteikia patogių tvarkyklių rinkinį
API. API pavadinimo taisyklė yra BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP yra pagrįsta moduline architektūra, leidžiančia lengvai perkelti bet kokią aparatinę įrangą, tiesiog įgyvendinant žemo lygio procedūras.
Aparatinės įrangos abstrakcijos sluoksnis (HAL) ir žemas sluoksnis (LL)
STM32CubeWBA HAL ir LL papildo vienas kitą ir atitinka įvairius taikymo reikalavimus:
- HAL tvarkyklės siūlo aukšto lygio funkcijas orientuotas labai nešiojamas API. Jie paslepia MCU ir periferinį sudėtingumą galutiniam vartotojui.
HAL tvarkyklės teikia bendrąsias į daugelį egzempliorių funkcijas orientuotas API, kurios supaprastina naudotojo taikomųjų programų įgyvendinimą, suteikdamos paruoštus naudoti procesus. Pavyzdžiui,ample, komunikacijos periferiniams įrenginiams (I2S, UART ir kitiems), teikia API, leidžiančias inicijuoti ir konfigūruoti periferinį įrenginį, valdyti duomenų perdavimą, pagrįstą apklausos, pertraukimo ar DMA procesu, ir tvarkyti ryšio klaidas, kurios gali kilti ryšio metu. HAL tvarkyklės API yra suskirstytos į dvi kategorijas:- Bendrosios API, kurios teikia bendras ir bendrąsias funkcijas visiems STM32 serijos mikrovaldikliams.
- Išplėtimo API, kurios teikia specifines ir pritaikytas funkcijas konkrečiai šeimai arba konkrečiam dalies numeriui.
- Žemo sluoksnio API teikia žemo lygio API registro lygiu su geresne optimizacija, bet mažesniu perkeliamumu.
- Jie reikalauja gilių žinių apie MCU ir periferines specifikacijas.
- LL tvarkyklės sukurtos taip, kad pasiūlytų greitą ir lengvą, į ekspertus orientuotą sluoksnį, kuris yra arčiau aparatinės įrangos nei HAL. Priešingai nei HAL, LL API nėra teikiamos išoriniams įrenginiams, kuriuose optimizuota prieiga nėra pagrindinė funkcija, arba tiems, kuriems reikalinga sudėtinga programinės įrangos konfigūracija arba sudėtingas viršutinio lygio dėklas.
- LL tvarkyklės turi:
- Funkcijų rinkinys, skirtas pagrindinėms periferinėms funkcijoms inicijuoti pagal duomenų struktūrose nurodytus parametrus.
- Funkcijų rinkinys, skirtas užpildyti inicijavimo duomenų struktūras iš naujo nustatytomis reikšmėmis, atitinkančiomis kiekvieną lauką.
- Išorinio įrenginio inicijavimo panaikinimo funkcija (atkurtos numatytosios periferinių įrenginių registrų reikšmės).
- Įterptinių funkcijų rinkinys, skirtas tiesioginei ir atominei prieigai prie registrų.
- Visiška nepriklausomybė nuo HAL ir galimybė naudoti autonominiu režimu (be HAL tvarkyklių).
- Visa palaikomų periferinių funkcijų aprėptis.
Pagrindinis periferinis naudojimas, pvzamples
Šis sluoksnis apima buvamples pastatyti per STM32 periferinius įrenginius, naudojant tik HAL ir BSP išteklius.
1 lygis
Šis lygis yra padalintas į du posluoksnius:
- Tarpinės programinės įrangos komponentai
- Exampmažiau pagrįsta tarpinės programinės įrangos komponentais
Tarpinės programinės įrangos komponentai
- Tarpinė programinė įranga yra bibliotekų rinkinys, apimantis Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF-M, MCUboot ir mbed-crypto.
- Horizontali sąveika tarp šio sluoksnio komponentų atliekama iškviečiant siūlomas API.
- Vertikali sąveika su žemo sluoksnio tvarkyklėmis atliekama naudojant specifinius atgalinius skambučius ir statines makrokomandas, įdiegtas bibliotekos sistemos skambučių sąsajoje.
- Pagrindinės kiekvieno tarpinės programinės įrangos komponento savybės yra šios:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Realaus laiko operacinė sistema (RTOS), sukurta įterptoms sistemoms su dviem funkciniais režimais.
- Bendrasis režimas: įprastos RTOS funkcijos, tokios kaip gijų valdymas ir sinchronizavimas, atminties telkinio valdymas, pranešimų siuntimas ir įvykių tvarkymas.
- Modulio režimas: Išplėstinis vartotojo režimas, leidžiantis įkelti ir iškrauti iš anksto susietus ThreadX modulius per modulių tvarkyklę.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Realaus laiko operacinė sistema (RTOS), sukurta įterptoms sistemoms su dviem funkciniais režimais.
- Bluetooth® Low Energy (BLE): įgyvendina Bluetooth® Low Energy protokolą Link ir Stack sluoksniams.
- MCUboot (atvirojo kodo programinė įranga)
- „Zigbee®“ protokolai, skirti kaminui ir susijusioms grupėms.
- Thread® protokolo kaminas ir nuorodų sluoksnis.
- Arm® patikima programinė įranga-M, TF-M (atvirojo kodo programinė įranga): „TrustZone®“ skirtos Arm® platformos saugos architektūros (PSA) su susijusiomis saugiomis paslaugomis įgyvendinimo nuoroda.
- mbed-crypto (atvirojo kodo programinė įranga): mbed-crypto tarpinė programinė įranga suteikia PSA kriptografijos API įgyvendinimą.
- STM32 lietimo jutimo biblioteka: tvirtas STMTouch talpinis jutiklinis sprendimas, palaikantis artumo, jutiklinius, linijinius ir rotacinius jutiklinius jutiklius. Jis pagrįstas patikrintu paviršiaus krūvio perdavimo principu.
- Microsoft® Azure® RTOS
Exampmažiau pagrįsta tarpinės programinės įrangos komponentais
Kiekvienas tarpinės programinės įrangos komponentas yra su vienu ar daugiau examples (taip pat vadinamos programomis), rodančios, kaip ja naudotis. Integracija pvzampTaip pat pateikiami keli tarpinės programinės įrangos komponentai.
STM32CubeWBA programinės įrangos paketas baigėsiview
Palaikomi STM32WBA serijos įrenginiai ir aparatinė įranga
- STM32Cube siūlo labai nešiojamą aparatinės įrangos abstrakcijos sluoksnį (HAL), sukurtą pagal bendrą architektūrą. Tai leidžia sukurti sluoksnių principą, pvz., naudojant tarpinės programinės įrangos sluoksnį jų funkcijoms įgyvendinti, giliai nežinant, koks MCU naudojamas. Tai pagerina bibliotekos kodo pakartotinį naudojimą ir užtikrina lengvą perkėlimą į kitus įrenginius.
- Be to, dėl daugiasluoksnės architektūros STM32CubeWBA siūlo visišką visų STM32WBA serijų palaikymą.
- Vartotojas turi tik apibrėžti tinkamą makrokomandą stm32wbaxx.h.
- 1 lentelėje parodyta makrokomanda, kurią reikia apibrėžti atsižvelgiant į naudojamą STM32WBA serijos įrenginį. Ši makrokomanda taip pat turi būti apibrėžta kompiliatoriaus pirminiame procese.
1 lentelė. STM32WBA serijos makrokomandosMakrokomandas, apibrėžtas stm32wbaxx.h STM32WBA serijos įrenginiai stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA pasižymi gausiu examples ir programas visais lygiais, todėl lengva suprasti ir naudoti bet kokias HAL tvarkykles ar tarpinės programinės įrangos komponentus. Šie buvęamples veikia 2 lentelėje nurodytose STMicroelectronics plokštėse.
2 lentelė. STM32WBA serijos plokštėslenta Įdėkite STM32WBA palaikomus įrenginius NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - STM32CubeWBA MCU paketas gali veikti su bet kokia suderinama aparatūra. Vartotojas tiesiog atnaujina BSP tvarkykles, kad pervestų pateiktą examples lentoje, jei pastaroji turi tas pačias techninės įrangos funkcijas (pvz., LED, LCD ekraną ir mygtukus).
Baigtas programinės įrangos paketasview
- STM32CubeWBA paketo sprendimas pateikiamas viename zip pakete, kurio struktūra parodyta 3 pav. STM32CubeWBA programinės įrangos paketo struktūra.
- Kiekvienai lentai rinkinys examples yra su iš anksto sukonfigūruotais EWARM, MDK-ARM ir STM32CubeIDE įrankių grandinių projektais.
- 4 pav. STM32CubeWBA examples baigiasiview parodyta NUCLEO-WBA52CG, NUCLEO-WBA55CG ir STM32WBA55G-DK1 plokščių projekto struktūra.
- Buvęsamples yra klasifikuojami atsižvelgiant į STM32Cube lygį, kuriam jie taikomi, ir pavadinti taip:
- 0 lygis, pvzamples vadinami Examples, pvzamples_LL ir Pvzamples_MIX. Jie naudoja atitinkamai HAL tvarkykles, LL tvarkykles ir HAL bei LL tvarkyklių derinį be jokio tarpinės programinės įrangos komponento.
- 1 lygis, pvzamples vadinamos programomis. Jie pateikia tipinius kiekvieno tarpinės programinės įrangos komponento naudojimo atvejus. Dėl šablonų projektų, esančių kataloguose Templ ates ir Templates_LL, galima greitai sukurti bet kurią konkrečios plokštės programinės įrangos programą.
TrustZone® įgalinti projektai
- „TrustZone®“ įgalintas Pvzamples pavadinimuose yra _TrustZone priešdėlis. Taisyklė taip pat taikoma programoms (išskyrus TFM ir SBSFU, kurios yra skirtos TrustZone®).
- „TrustZone®“ įgalintas Pvzamples ir Programos yra su kelių projektų struktūra, sudaryta iš saugių ir nesaugių subprojektų, kaip parodyta 5 pav. Kelių projektų saugi ir nesaugi projekto struktūra.
- „TrustZone®“ palaikantys projektai kuriami pagal CMSIS-5 įrenginio šabloną, išplėstą įtraukiant sistemos skaidymo antraštę. file skaidinys_ .h, kuris daugiausia atsakingas už saugaus atributo vieneto (SAU), FPU ir saugių / nesaugių pertraukimų priskyrimą saugaus vykdymo būsenoje.
- Ši sąranka atliekama naudojant saugią CMSIS SystemInit() funkciją, kuri iškviečiama paleidžiant prieš įeinant į saugios programos main() funkciją. Žr. Arm® TrustZone®-M programinės įrangos gairių dokumentaciją.
- STM32CubeWBA paketo programinės įrangos paketas suteikia numatytąjį atminties skaidymą skaidinyje _ .h filegalima rasti čia: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- Šiuose skyriuose files, pagal numatytuosius nustatymus SAU yra išjungtas. Todėl saugos priskyrimui naudojamas IDAU atminties susiejimas. Žr. pav. Saugus / nesaugus skaidymas naudojant TrustZone® technologiją RM0495 informaciniame vadove.
- Jei vartotojas įgalina SAU, skaidinyje iš anksto nustatoma numatytoji SAU regionų konfigūracija files taip:
- SAU regionas 0: 0x08080000 – 0x081FFFFF (nesaugi saugi pusė „flash“ atminties (512 KB))
- SAU 1 regionas: 0x0BF88000 – 0x0BF97FFF (nesaugi sistemos atmintis)
- SAU 2 regionas: 0x0C07E000 – 0x0C07FFFF (saugus, nesaugus skambinimas)
- SAU 3 regionas: 0x20010000 – 0x2001FFFF (nesaugus SRAM2 (64 KB))
- SAU 4 regionas: 0x40000000 – 0x4FFFFFFF (nesaugi periferinė atmintis)
- Kad atitiktų numatytąjį skaidymą, STM32WBAxx serijos įrenginiuose turi būti nustatyti šie vartotojo parinkčių baitai:
- TZEN = 1 (įrenginys su „TrustZone®“)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 puslapiai iš 128 vidinės „flash“ atminties nustatyti kaip saugūs) Pastaba: pagal numatytuosius nustatymus vidinė „flash“ atmintis yra visiškai saugi TZEN = 1. Vartotojo parinkčių baitai SECWM1_PSTRT/ SECWM1_PEND turi būti nustatyti pagal programą atminties konfigūracija (SAU regionai, jei SAU įjungtas). Saugių / nesaugių programų projektų nuoroda files taip pat turi būti išlygintos.
- Viskas examples turi tą pačią struktūrą:
- \Inc aplankas, kuriame yra visa antraštė files.
- Src aplankas, kuriame yra šaltinio kodas.
- \EWARM, \MDK-ARM ir \STM32CubeIDE aplankai, kuriuose yra iš anksto sukonfigūruotas kiekvienos įrankių grandinės projektas.
- readme.md ir readme.html, aprašantys buvampelgseną ir reikalingą aplinką, kad jis veiktų.
- ioc file leidžia vartotojams atidaryti daugumą programinės įrangos, pvzamples per STM32CubeMX.
Darbo su STM32CubeWBA pradžia
Vykdo pirmąjį HAL example
Šiame skyriuje paaiškinama, kaip paprasta paleisti pirmąjį example per STM32CubeWBA. Jame kaip iliustracija naudojama paprasto LED perjungiklio, veikiančio NUCLEO-WBA52CG plokštėje, generavimas:
- Atsisiųskite STM32CubeWBA MCU paketą.
- Išpakuokite jį į pasirinktą katalogą.
- Nepakeiskite paketo struktūros, parodytos 1 paveiksle. Taip pat rekomenduojama kopijuoti paketą į vietą, esančią netoli šakninio tomo (tai reiškia C:\ST arba G:\Tests), nes kai kurie IDE susiduria su problemomis, kai kelias ilgis per ilgas.
Pirmosios „TrustZone®“ įjungtos eksample
- Prieš įkeldami ir paleisdami „TrustZone®“, pvzample, privaloma perskaityti buvample readme file bet kuriai konkrečiai konfigūracijai, kuri užtikrina, kad saugumas įjungtas, kaip aprašyta 4.2.1 skyriuje „TrustZone®“ įgalinti projektai (TZEN=1 (vartotojo parinkties baitas)).
- Eikite į \Projects\NUCLEO-WBA52CG\Examples.
- Atidarykite \GPIO, tada \GPIO_IOToggle_TrustZone aplankus.
- Atidarykite projektą naudodami pageidaujamą įrankių grandinę. Greita pabaigaview apie tai, kaip atidaryti, sukurti ir valdyti buvusį asmenįample su palaikomomis įrankių grandinėmis pateikta žemiau.
- Iš eilės atkurkite visą saugų ir nesaugų projektą files ir įkelkite saugius ir nesaugius vaizdus į tikslinę atmintį.
- Paleiskite buvusįjįample: reguliariai, saugi programa perjungia LD2 kas sekundę, o nesaugi programa perjungia LD3 du kartus greičiau. Norėdami gauti daugiau informacijos, žr. readme file iš buvusioample.
- Norėdami atidaryti, sukurti ir paleisti buvample su palaikomomis įrankių grandinėmis, atlikite toliau nurodytus veiksmus.
- EWARM:
- Pagal buvusiąample aplanką, atidarykite \EWARM poaplankį.
- Paleiskite Project.eww darbo sritį
- Atkurkite xxxxx_S saugų projektą files: [Projektas]> [Atkurti viską].
- Nustatykite xxxxx_NS nesaugų projektą kaip aktyvią programą (dešiniuoju pelės mygtuku spustelėkite xxxxx_NS projektą [Nustatyti kaip aktyvų])
- Atkurkite nesaugų projektą xxxxx_NS files: [Projektas]> [Atkurti viską].
- Atkurkite nesaugų dvejetainį failą naudodami [Projektas]> [Atsisiųsti]> [Atsisiųsti aktyvią programą].
- Nustatykite xxxxx_S kaip aktyvią programą (dešiniuoju pelės mygtuku spustelėkite xxxxx_S projektą [Nustatyti kaip aktyvų].
- Atkurkite saugų dvejetainį failą naudodami [Atsisiųsti ir derinti] (Ctrl+D).
- Paleiskite programą: [Debug]> [Go(F5)]
- MDK-ARM:
- Atidarykite \MDK-ARM įrankių grandinę.
- Atidarykite kelių projektų darbo sritį file Project.uvmpw.
- Pasirinkite xxxxx_s projektą kaip aktyvią programą ([Nustatyti kaip aktyvų projektą]).
- Sukurkite xxxxx_s projektą.
- Pasirinkite projektą xxxxx_ns kaip aktyvų projektą ([Nustatyti kaip aktyvų projektą]).
- Sukurkite xxxxx_ns projektą.
- Įkelkite nesaugų dvejetainį failą ([F8]). Tai atsisiunčia \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf į „flash“ atmintį)
- Pasirinkite Project_s projektą kaip aktyvų projektą ([Nustatyti kaip aktyvų projektą]).
- Įkelkite saugų dvejetainį failą ([F8]). Tai atsisiunčia \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf į „flash“ atmintį).
- Paleiskite buvusįjįample.
- STM32CubeIDE:
- Atidarykite STM32CubeIDE įrankių grandinę.
- Atidarykite kelių projektų darbo sritį file .projektas.
- Atkurkite xxxxx_Secure projektą.
- Atkurkite xxxxx_NonSecure projektą.
- Paleiskite saugiam projektui skirtą programą [Debug as STM32 Cortex-M C/C++].
- Lange [Redaguoti konfigūraciją] pasirinkite skydelį [Startup] ir įkelkite nesaugaus projekto vaizdą ir simbolius.
Svarbu: Nesaugus projektas turi būti įkeltas prieš saugų projektą. - Spustelėkite [Gerai].
- Paleiskite buvusįjįample apie derinimo perspektyvą.
- EWARM:
Pirmosios „TrustZone®“ išjungtos example
- Prieš įkeldami ir paleisdami išjungtą „TrustZone®“, pvzample, privaloma perskaityti buvample readme file bet kokiai konkrečiai konfigūracijai. Jei nėra konkrečių paminėjimų, įsitikinkite, kad plokštės įrenginio sauga išjungta (TZEN=0 (vartotojo parinkties baitas)). Žr. DUK, kaip atlikti pasirenkamą regresiją iki TZEN = 0
- Eikite į \Projects\NUCLEO-WBA52CG\Examples.
- Atidarykite \GPIO, tada \GPIO_EXTI aplankus.
- Atidarykite projektą naudodami pageidaujamą įrankių grandinę. Greita pabaigaview apie tai, kaip atidaryti, sukurti ir valdyti buvusį asmenįample su palaikomomis įrankių grandinėmis pateikta žemiau.
- Viską atstatyti files ir įkelkite savo vaizdą į tikslinę atmintį.
- Paleiskite buvusįjįample: Kiekvieną kartą, kai paspaudžiamas [USER] mygtukas, LD1 šviesos diodas persijungia. Norėdami gauti daugiau informacijos, žr. readme file iš buvusioample.
- Norėdami atidaryti, sukurti ir paleisti buvample su palaikomomis įrankių grandinėmis, atlikite toliau nurodytus veiksmus.
- EWARM:
- Pagal buvusiąample aplanką, atidarykite \EWARM poaplankį.
- Paleiskite Project.eww darbo sritį (darbo srities pavadinimas gali pasikeisti nuo vieno pvzample kitam).
- Viską atstatyti files: [Projektas]> [Atkurti viską].
- Įkelkite projekto vaizdą: [Project]> [Debug].
- Paleiskite programą: [Debug]> [Go (F5)].
- MDK-ARM:
- Pagal buvusiąample aplanką, atidarykite \MDK-ARM poaplankį.
- Paleiskite Project.uvproj darbo sritį (darbo srities pavadinimas gali pasikeisti nuo vieno pvzample kitam).
- Viską atstatyti files:[Projektas]>[Atkurti visą taikinį files].
- Įkelkite projekto vaizdą: [Debug]> [Start/Stop Debug Session].
- Paleiskite programą: [Debug]> [Run (F5)].
- STM32CubeIDE:
- Atidarykite STM32CubeIDE įrankių grandinę.
- Spustelėkite [File]>[Perjungti darbo sritį]>[Kita] ir naršykite STM32CubeIDE darbo srities katalogą.
- Spustelėkite [File]> [Importuoti] , pasirinkite [Bendra]> [Esami projektai darbo srityje], tada spustelėkite [Kitas].
- Eikite į STM32CubeIDE darbo srities katalogą ir pasirinkite projektą.
- Atkurti visą projektą files: Pasirinkite projektą lange [Project Explorer], tada spustelėkite meniu [Project]> [Build project].
- Paleiskite programą: [Vykdyti]> [Debug (F11)]
- EWARM:
Pasirinktinės programos kūrimas
Pastaba: Programinė įranga turi leisti instrukcijų talpyklai (ICACHE) gauti 0 laukimo būsenos vykdymą iš „flash“ atminties ir pasiekti maksimalų našumą bei geresnį energijos suvartojimą.
STM32CubeMX naudojimas programai kurti arba atnaujinti
- STM32CubeWBA MCU pakete beveik visi projektai, pvzamples generuojami naudojant STM32CubeMX įrankį, kad būtų galima inicijuoti sistemą, išorinius įrenginius ir tarpinę programinę įrangą.
- Tiesioginis esamo projekto naudojimas, pvzampSTM32CubeMX įrankiui reikalinga STM32CubeMX 6.10.0 arba naujesnė versija:
- Įdiegę STM32CubeMX atidarykite ir, jei reikia, atnaujinkite siūlomą projektą. Paprasčiausias būdas atidaryti esamą projektą yra dukart spustelėti *.ioc file kad STM32CubeMX automatiškai atidarytų projektą ir jo šaltinį files.
- STM32CubeMX generuoja tokių projektų inicijavimo šaltinio kodą. Pagrindinis programos šaltinio kodas yra komentaruose „VARTOTOJO KODO PRADŽIA“ ir „VARTOTOJO KODO PABAIGA“. Jei IP pasirinkimas ir nustatymas yra modifikuojami, STM32CubeMX atnaujina kodo inicijavimo dalį, bet išsaugo pagrindinės programos šaltinio kodą.
- Norėdami sukurti pasirinktinį projektą STM32CubeMX, atlikite žingsnis po žingsnio procesą:
- Pasirinkite STM32 mikrovaldiklį, atitinkantį reikiamą periferinių įrenginių rinkinį.
- Sukonfigūruokite visą reikiamą įterptąją programinę įrangą naudodami pinout-konfliktų sprendimą, laikrodžio medžio nustatymo pagalbinį įrankį, energijos suvartojimo skaičiuotuvą ir MCU periferinių įrenginių konfigūravimo programą (pvz., GPIO arba USART) ir tarpinės programinės įrangos paketus (pvz., USB).
- Sugeneruokite inicijavimo C kodą pagal pasirinktą konfigūraciją. Šis kodas yra paruoštas naudoti keliose kūrimo aplinkose. Vartotojo kodas saugomas kitos kartos kodo metu.
- Norėdami gauti daugiau informacijos apie STM32CubeMX, žr. vartotojo vadovą STM32CubeMX, skirtą STM32 konfigūracijai ir inicijavimo C kodo generavimui (UM1718).
- Norėdami gauti galimų projektų sąrašą, pvzampSTM32CubeWBA, žr. paraiškos pastabą STM32Cube firmware exampmažiau STM32WBA serijai (AN5929).
Tvarkyklės programos
HAL taikymas
Šiame skyriuje aprašomi veiksmai, kurių reikia norint sukurti pasirinktinę HAL programą naudojant STM32CubeWBA:
- Sukurti projektą
- Norėdami sukurti naują projektą, pradėkite nuo šablono projekto, pateikto kiekvienai lentai \Projects\ \Šablonai arba iš bet kurio pasiekiamo projekto, esančio \Projects\ \Pavyzdžiai arba \Projektai\ \Programos (kur nurodo plokštės pavadinimą, pvz., STM32CubeWBA).
- Šablono projektas suteikia tuščios pagrindinės kilpos funkciją. Tačiau tai yra geras atspirties taškas norint suprasti STM32CubeWBA projekto nustatymus. Šablonas turi šias charakteristikas:
- Jame yra HAL šaltinio kodas, CMSIS ir BSP tvarkyklės, kurios yra minimalus komponentų rinkinys, reikalingas tam tikroje plokštėje sukurti kodą.
- Jame yra įtraukti visų programinės įrangos komponentų keliai.
- Jis apibrėžia palaikomus STM32WBA serijos įrenginius, leidžiančius tinkamai sukonfigūruoti CMSIS ir HAL tvarkykles.
- Tai paruoštas naudoti vartotojas fileyra iš anksto sukonfigūruotas, kaip parodyta žemiau:
HAL inicijuotas naudojant numatytąją laiko bazę su Arm® core SysTick. SysTick ISR įdiegtas HAL_Delay() tikslu.
Pastaba: Kopijuodami esamą projektą į kitą vietą įsitikinkite, kad visi įtraukti keliai yra atnaujinti.
- Pridėkite reikiamą tarpinę programinę įrangą prie vartotojo projekto (neprivaloma)
Norėdami nustatyti šaltinį files bus įtrauktas į projektą file sąrašą, žr. kiekvienos tarpinės programinės įrangos dokumentaciją. Žr. programas skiltyje \Projects\STM32xxx_yyy\Applications\ (kur nurodo tarpinės programinės įrangos paketą, pvz., ThreadX), kad žinotumėte, kuris šaltinis files ir įtraukti keliai turi būti pridėti. - Konfigūruokite programinės įrangos komponentus
HAL ir tarpinės programinės įrangos komponentai siūlo kūrimo laiko konfigūravimo parinkčių rinkinį, naudojant makrokomandas #define, nurodytas antraštėje file. Šablono konfigūracija file yra kiekviename komponente, kuris turi būti nukopijuotas į projekto aplanką (paprastai konfigūracija file yra pavadintas xxx_conf_template.h, kopijuojant į projekto aplanką, žodis _template turi būti pašalintas). Konfigūracija file suteikia pakankamai informacijos, kad suprastumėte kiekvienos konfigūracijos parinkties poveikį. Išsamesnė informacija pateikiama kiekvieno komponento dokumentacijoje. - Paleiskite HAL biblioteką
Peršokus į pagrindinę programą, programos kodas turi iškviesti HAL_Init() API, kad inicijuotų HAL biblioteką, kuri atlieka šias užduotis:- „Flash“ atminties išankstinio gavimo ir SysTick pertraukimo prioriteto konfigūracija (naudojant makrokomandas, apibrėžtas st m32wbaxx_hal_conf.h).
- SysTick konfigūracija generuoti pertraukimą kas milisekundę esant SysTick pertraukimo prioritetui TICK_INT_PRIO, apibrėžtam stm32wbaxx_hal_conf.h.
- NVIC grupės prioriteto nustatymas į 0.
- HAL_MspInit() atgalinio skambinimo funkcijos iškvietimas, apibrėžtas stm32wbaxx_hal_msp.c vartotojas file pasauliniam žemo lygio aparatūros inicijavimui atlikti.
- Konfigūruokite sistemos laikrodį
Sistemos laikrodžio konfigūracija atliekama iškviečiant dvi toliau aprašytas API:- HAL_RCC_OscConfig(): ši API konfigūruoja vidinius ir išorinius generatorius. Vartotojas pasirenka konfigūruoti vieną arba visus generatorius.
- HAL_RCC_ClockConfig(): ši API sukonfigūruoja sistemos laikrodžio šaltinį, „flash“ atminties delsą ir AHB bei APB išankstinius skirstytuvus.
- Inicijuokite periferinį įrenginį
- Pirmiausia parašykite periferinę funkciją HAL_PPP_MspInit. Tęskite taip:
- Įjunkite periferinį laikrodį.
- Konfigūruokite periferinius GPIO.
- Konfigūruokite DMA kanalą ir įjunkite DMA pertraukimą (jei reikia).
- Įgalinti periferinį pertraukimą (jei reikia).
- Redaguokite stm32xxx_it.c, kad iškviestumėte reikiamus pertraukimų tvarkykles (periferinius įrenginius ir DMA), jei reikia.
- Parašykite proceso užbaigtas atgalinio ryšio funkcijas, jei planuojama naudoti periferinį pertraukimą arba DMA.
- Vartotojo pagrindiniame.c file, inicijuokite periferinės įrangos rankenos struktūrą, tada iškvieskite funkciją HAL_PPP_Init(), kad inicijuotų periferinį įrenginį.
- Pirmiausia parašykite periferinę funkciją HAL_PPP_MspInit. Tęskite taip:
- Sukurkite programą
- Šiuo stage, sistema paruošta ir gali prasidėti vartotojo programos kodo kūrimas.
- HAL pateikia intuityvius ir paruoštus naudoti API periferiniam įrenginiui konfigūruoti. Jis palaiko apklausą, pertraukimus ir DMA programavimo modelį, kad atitiktų visus programos reikalavimus. Norėdami gauti daugiau informacijos apie tai, kaip naudoti kiekvieną išorinį įrenginį, žr. turtingą examprinkinys pateiktas STM32CubeWBA MCU pakete.
Atsargiai: Numatytajame HAL diegime SysTick laikmatis naudojamas kaip laiko bazė: jis generuoja pertraukimus reguliariais laiko intervalais. Jei HAL_Delay() iškviečiamas iš periferinio ISR proceso, įsitikinkite, kad SysTick pertraukimas turi didesnį prioritetą (skaitmeniškai mažesnį) nei periferinis pertraukimas. Priešingu atveju skambinančiojo ISR procesas užblokuojamas. Funkcijos, turinčios įtakos laiko bazės konfigūracijoms, deklaruojamos kaip __silpnos, kad būtų galima nepaisyti kitų naudotojo įdiegimų atveju file (naudojant bendrosios paskirties laikmatį, pvzample arba kitu laiko šaltiniu). Norėdami gauti daugiau informacijos, žr. HAL_TimeBase example.
LL paraiška
Šiame skyriuje aprašomi veiksmai, kurių reikia norint sukurti pasirinktinę LL programą naudojant STM32CubeWBA.
- Sukurti projektą
- Norėdami sukurti naują projektą, pradėkite nuo Templates_LL projekto, pateikto kiekvienai lentai \Projects\ \Templates_LL arba iš bet kurio pasiekiamo projekto \Projects\ \Pvzamples_LL ( nurodo plokštės pavadinimą, pvz., NUCLEO-WBA32CG).
- Šablono projekte yra tuščios pagrindinės kilpos funkcija, kuri yra geras atspirties taškas norint suprasti STM32CubeWBA projekto nustatymus. Pagrindinės šablono charakteristikos yra šios:
- Jame yra LL ir CMSIS tvarkyklių šaltinio kodai, kurie yra mažiausias komponentų rinkinys, reikalingas tam tikros plokštės kodui sukurti.
- Jame yra įtraukti visų reikalingų programinės įrangos komponentų keliai.
- Jis pasirenka palaikomą STM32WBA serijos įrenginį ir leidžia teisingai konfigūruoti CMSIS ir LL tvarkykles.
- Jis suteikia paruoštą naudoti vartotoją files, kurios iš anksto sukonfigūruotos taip:
◦ main.h: LED ir USER_BUTTON apibrėžimo abstrakcijos sluoksnis.
◦ main.c: sistemos laikrodžio konfigūracija maksimaliam dažniui.
- Perkelkite esamą projektą į kitą plokštę
Norėdami paremti esamą projektą kitoje tikslinėje plokštėje, pradėkite nuo Templates_LL projekto, pateikto kiekvienai plokštei ir pasiekiamo \Projects\ \Šablonai_LL.- Pasirinkite LL example: rasti lentą, kurioje LL examples yra dislokuoti, žr. LL ex sąrašąamples STM32CubeProjectsList.html.
- Prijunkite LL exampLe:
- Nukopijuokite / įklijuokite aplanką Templates_LL – norėdami išlaikyti pradinį šaltinį – arba tiesiogiai atnaujinkite esamą Templates_LL projektą.
- Tada perkėlimas iš esmės susideda iš Templates_LL pakeitimo files pagal Examples_LL tikslinis projektas.
- Išsaugokite visas specialias plokštės dalis. Aiškumo sumetimais konkrečios plokštės dalys yra pažymėtos specifinėmis tags:
- Taigi pagrindiniai perkėlimo žingsniai yra šie:
- Pakeiskite stm32wbaxx_it.h file
- Pakeiskite stm32wbaxx_it.c file
- Pakeiskite pagrindinį.h file ir atnaujinkite jį: išsaugokite LL šablono šviesos diodo ir vartotojo mygtuko apibrėžimą skiltyje KONKRETINĖ LENTO KONFIGŪRAVIJA tags.
- Pakeiskite pagrindinį.c file ir atnaujinkite:
- Laikykite SystemClock_Config() LL šablono funkcijos laikrodžio konfigūraciją skiltyje BOARD SECIFIC CONFIGURATION tags.
- Atsižvelgiant į LED apibrėžimą, kiekvieną LDx reiškinį pakeiskite kitu LDy, esančiu pagrindiniame.h file.
- Su šiais pakeitimais buvęsample dabar veikia tikslinėje lentoje
Apsaugos programos
Šis paketas pristatomas su saugos programomis.
SBSFU programos
- SBSFU teikia Root of Trust sprendimą, įskaitant saugaus įkrovimo ir saugaus programinės įrangos atnaujinimo funkcijas (pagrįstą MCUboot).
- Sprendimas naudojamas prieš vykdant programą.
- Sprendimas suteikia exampsaugios paslaugos (GPIO perjungimo), kuri yra atskirta nuo nesaugios programos. Nesaugi programa vykdymo metu vis tiek gali naudoti šį sprendimą.
TFM programos
TFM suteikia Root of Trust sprendimą, įskaitant saugaus įkrovimo ir saugaus programinės įrangos atnaujinimo funkcijas.
(pagal MCUboot). Sprendimas naudojamas prieš vykdant programą. Sprendimas teikia saugias TFM paslaugas, kurios yra atskirtos nuo nesaugios programos. Nesaugi programa vykdymo metu vis tiek gali naudoti šį sprendimą.
RF programos
RF taikymas aprašytas šioje programos pastaboje: Belaidžių programų kūrimas naudojant STM32WBA serijos mikrovaldiklius (AN5928).
Gaukite STM32CubeWBA leidimo naujinimus
Naujausius STM32CubeWBA MCU paketų leidimus ir pataisas galima įsigyti iš STM32WBA serijos. Juos galima gauti spustelėjus mygtuką CHECK FOR UPDATE, esantį STM32CubeMX. Norėdami gauti daugiau informacijos, žr. vartotojo vadovo STM3CubeMX 32 skyrių, skirtą STM32 konfigūracijai ir inicijavimo C kodo generavimui (UM1718).
DUK
- Kada turėčiau naudoti HAL, o ne LL tvarkykles?
- HAL tvarkyklės siūlo aukšto lygio ir į funkcijas orientuotas API su dideliu perkeliamumo lygiu. Produkto ar išorinių įrenginių sudėtingumas yra paslėptas galutiniams vartotojams.
- LL tvarkyklės siūlo žemo sluoksnio registro lygio API su geresne optimizacija, bet mažiau nešiojamomis. Jiems reikia išsamių žinių apie produkto arba IP specifikacijas.
- Ar galiu kartu naudoti HAL ir LL tvarkykles? Jei galiu, kokie yra apribojimai?
- Galima naudoti ir HAL, ir LL tvarkykles. Naudokite HAL IP inicijavimo fazei ir valdykite įvesties / išvesties operacijas naudodami LL tvarkykles.
- Pagrindinis skirtumas tarp HAL ir LL yra tas, kad HAL tvarkyklės turi sukurti ir naudoti valdymo rankenėles, o LL tvarkyklės veikia tiesiogiai periferiniuose registruose. Buvamples_MIX pvzample parodo, kaip maišyti HAL ir LL.
- Kaip įjungiamos LL inicijavimo API?
- LL inicijavimo API ir susijusių išteklių (struktūrų, literalų ir prototipų) apibrėžimą lemia USE_FULL_LL_DRIVER kompiliavimo jungiklis.
- Kad galėtumėte naudoti LL inicijavimo API, pridėkite šį jungiklį į įrankių grandinės kompiliatoriaus išankstinį procesorių.
- Kaip STM32CubeMX gali generuoti kodą pagal įterptąją programinę įrangą?
STM32CubeMX turi integruotų žinių apie STM32 mikrovaldiklius, įskaitant jų periferinius įrenginius ir programinę įrangą, leidžiančią vartotojui pateikti grafinį vaizdą ir generuoti *.h arba *.c files pagrįsta vartotojo konfigūracija.
SVARBI PRANEŠIMAS – ATIDŽIAI SKAITYKITE
- STMicroelectronics NV ir jos dukterinės įmonės („ST“) pasilieka teisę bet kuriuo metu be įspėjimo keisti, taisyti, patobulinti, modifikuoti ir tobulinti ST gaminius ir (arba) šį dokumentą. Prieš pateikdami užsakymą pirkėjai turėtų gauti naujausią atitinkamą informaciją apie ST gaminius. ST gaminiai parduodami pagal ST pardavimo sąlygas, galiojančias užsakymo patvirtinimo metu.
- Pirkėjai yra išimtinai atsakingi už ST gaminių pasirinkimą, pasirinkimą ir naudojimą, o ST neprisiima jokios atsakomybės už pagalbą taikant ar pirkėjų gaminių dizainą.
- ST nesuteikia jokios tiesioginės ar numanomos licencijos jokioms intelektinės nuosavybės teisėms.
- Perpardavus ST gaminius, kurių nuostatos skiriasi nuo čia pateiktos informacijos, panaikina bet kokią ST tokiam produktui suteiktą garantiją.
- ST ir ST logotipas yra ST prekių ženklai. Daugiau informacijos apie ST prekių ženklus rasite www.st.com/trademarks. Visi kiti produktų ar paslaugų pavadinimai yra atitinkamų savininkų nuosavybė.
- Informacija šiame dokumente pakeičia ir pakeičia informaciją, anksčiau pateiktą bet kokiose ankstesnėse šio dokumento versijose.
- © 2023 STMicroelectronics – Visos teisės saugomos
Dokumentai / Ištekliai
![]() |
STMicroelectronics STM32WBA serijos pradžia [pdf] Naudotojo vadovas STM32WBA serija Darbo pradžia, pradžia, pradžia |