STMicroelectronics STM32WBA Serio Komenciĝi
Produktaj Informoj
Specifoj:
- Produkta Nomo: STM32CubeWBA MCU-Pako
- Fabrikisto: STMicroelectronics
- Kongrueco: STM32WBA-seriomikroregiloj
- Licencado: Malfermfonta BSD-licenco
Produktaj Uzado-Instrukcioj
Ĉefaj Trajtoj de STM32CubeWBA MCU-Pako:
La STM32CubeWBA MCU-Pako disponigas ĉiujn necesajn enigitajn programajn komponentojn por evoluigado de aplikoj sur STM32WBA-seriomikroregiloj. Ĝi estas tre portebla ene de la STM32-serio kaj venas kun HAL kaj LL-APIoj, ekzamples, kaj mezvaraj komponantoj.
Arkitekturo Finitaview:
La arkitekturo de la STM32CubeWBA MCU-Pako konsistas el tri niveloj - Aplikoj, Biblioteko kaj protokol-bazitaj komponentoj, Aparataro-abstrakta tavolo, BSP-ŝoforoj, Kernaj ŝoforoj kaj Malalt-tavolaj API-oj.
Oftaj Demandoj
- Kio estas inkluzivita en la STM32CubeWBA MCU-Pako?
La pakaĵo inkluzivas malaltajn tavolojn (LL) kaj aparatajn abstraktajn tavolojn (HAL) API-ojn, ekzamples, aplikoj, mezvaraj komponantoj kiel FileX/LevelX, NetX Duo, mbed-kripto-bibliotekoj, kaj pli. - Ĉu la STM32CubeWBA MCU-Pako estas kongrua kun STM32CubeMX-kodgeneratoro?
Jes, la pakaĵo estas plene kongrua kun la generatoro de kodo STM32CubeMX por generi komencan kodon.
Enkonduko
- STM32Cube estas originala iniciato de STMicroelectronics por plibonigi la produktivecon de la diseñador signife reduktante disvolvan penadon, tempon kaj koston. STM32Cube kovras la tutan biletujon de STM32.
STM32Cube inkluzivas:- Aro da uzant-amika programaro-disvolvado por kovri projekt-evoluon de koncepto ĝis realigo, inter kiuj estas:
- STM32CubeMX, grafika programara agorda ilo kiu permesas la aŭtomatan generacion de C-inicialigkodo uzante grafikajn sorĉistojn
- STM32CubeIDE, ĉio-en-unu evoluilo kun periferia agordo, kodgenerado, kodkompilo, kaj sencimigaj funkcioj
- STM32CubeCLT, ĉio-en-unu komandlinia disvolva ilaro kun kodkompilo, tabulprogramado, kaj sencimigaj funkcioj
- STM32CubeProgrammer (STM32CubeProg), programa ilo havebla en grafikaj kaj komandliniaj versioj
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), potencaj monitoraj iloj por agordi la konduton kaj efikecon de STM32-aplikoj en reala tempo
- STM32Cube MCU kaj MPU-Pakoj, ampleksaj enigita-programaraj platformoj specifaj por ĉiu mikroregilo kaj mikroprocesorserio (kiel ekzemple STM32CubeWBA por la STM32WBA serio), kiuj inkludas:
- STM32Cube aparatara abstrakta tavolo (HAL), certigante maksimumigitan porteblon tra la STM32-paperaro
- STM32Cube malalttavolaj API-oj, certigante la plej bonan rendimenton kaj spurojn kun alta grado da uzantkontrolo super aparataro
- Konsekvenca aro de mezvaraj komponantoj kiel ThreadX, FileX / LevelX, NetX Duo, USBX, tuŝbiblioteko, mbed-kripto, TFM, MCUboot, OpenBL kaj STM32_WPAN (inkluzive de Bluetooth® Low Energy profiles kaj servoj, Mesh, Zigbee®, OpenThread, Matter kaj 802.15.4 MAC-tavolo)
- Ĉiuj enigita programaro utilecoj kun plenaj aroj de ekstercentraj kaj aplikaj ekzamples
- STM32Cube Expansion Packages, kiuj enhavas enkorpigitajn programajn komponentojn, kiuj kompletigas la funkciojn de la STM32Cube MCU kaj MPU-Pakoj kun:
- Mezvaraj etendaĵoj kaj aplikaj tavoloj
- Examples kurantaj sur iuj specifaj STMicroelectronics evolutabuloj
- Aro da uzant-amika programaro-disvolvado por kovri projekt-evoluon de koncepto ĝis realigo, inter kiuj estas:
- Ĉi tiu uzantmanlibro priskribas kiel komenci kun la STM32CubeWBA MCU-Pako.
- Sekcio 2 Ĉefaj trajtoj de STM32CubeWBA priskribas la ĉefajn ecojn de la STM32CubeWBA MCU-Pako.
- Sekcio 3 STM32CubeWBA arkitekturo superview provizas superview de la arkitekturo STM32CubeWBA kaj la strukturo de MCU Package.
Ĝenerala informo
La STM32CubeWBA MCU-Pako funkcias per mikroregiloj STM32 de 32 bitoj bazitaj sur la procesoro Arm® Cortex®-M33 kun Arm® TrustZone® kaj FPU.
Notu: Arm kaj TrustZone estas registritaj varmarkoj de Arm Limited (aŭ ĝiaj filioj) en Usono kaj/aŭ aliloke.
Ĉefaj trajtoj de STM32CubeWBA
- La STM32CubeWBA MCU-Pako funkcias per mikroregiloj STM32 de 32 bitoj bazitaj sur la procesoro Arm® Cortex®-M33 kun TrustZone® kaj FPU.
- La STM32CubeWBA kolektas, en ununura pakaĵo, ĉiujn senmarkajn enigitajn softvarkomponentojn necesajn por evoluigi aplikiĝon por la STM32WBA-seriomikroregiloj. Konforme al la STM32Cube-iniciato, ĉi tiu aro de komponentoj estas tre portebla, ne nur ene de la STM32WBA-seriomikroregiloj sed ankaŭ al aliaj STM32-serio.
- La STM32CubeWBA estas plene kongrua kun la kodgeneratoro STM32CubeMX, por generi inicialigkodon. La pakaĵo inkluzivas malaltan tavolon (LL) kaj hardvarabstraktan tavolon (HAL) API-ojn kiuj kovras la mikroregila aparataron, kune kun ampleksa aro de eks.amples kurantaj sur STMicroelectronics-tabuloj. La HAL kaj LL-APIoj estas haveblaj en malfermfonta BSD-licenco por uzantkonveno.
- La STM32CubeWBA MCU-Pako ankaŭ enhavas ampleksan mezvaran komponanton konstruitan ĉirkaŭ Microsoft® Azure® RTOS mezvaroj, kaj aliajn endomajn kaj malfermfontajn stakojn, kun la responda eks.amples.
- Ili venas kun senpagaj, uzeblaj licencaj kondiĉoj:
- Integrita kaj plentaŭga Azure® RTOS: Azure® RTOS ThreadX
- Efektivigo de CMSIS-RTOS kun Azure® RTOS ThreadX
- USB-Gastiganto kaj Aparato-stakoj venantaj kun multaj klasoj: Azure® RTOS USBX
- Altnivela file sistemo kaj fulmtraduka tavolo: FileX / NiveloX
- Industria-nivela interreta stako: optimumigita por rendimento venanta kun multaj IoT-protokoloj: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF-M) integriga solvo
- mbed-crypto bibliotekoj
- Biblioteko ST-Reto
- STMTouch tuŝa senta biblioteko solvo
- Pluraj aplikoj kaj pruvoj efektivigantaj ĉiujn ĉi tiujn mezvarajn komponentojn ankaŭ estas disponigitaj en la STM32CubeWBA MCU-Pako.
- La STM32CubeWBA MCU Package-kompona aranĝo estas ilustrita en Figuro 1. STM32CubeWBA MCU Package-komponentoj.
STM32CubeWBA arkitekturo finiĝisview
La STM32CubeWBA MCU-pakaĵsolvo estas konstruita ĉirkaŭ tri sendependaj niveloj kiuj facile interagas kiel priskribite en Figuro 2. STM32CubeWBA MCU-pakaĵarkitekturo.
Nivelo 0
Ĉi tiu nivelo estas dividita en tri subtavolojn:
- Estraro-subtena pako (BSP).
- Aparata abstrakta tavolo (HAL):
- HAL ekstercentraj ŝoforoj
- Malalttavolaj ŝoforoj
- Baza periferia uzado ekzamples.
Estrara Subtena Pako (BSP)
Ĉi tiu tavolo ofertas aron de APIoj rilate al la aparataro komponantoj en la aparataro tabuloj (kiel LCD, Audio, \ microSD™, kaj MEMS-ŝoforoj). Ĝi konsistas el du partoj:
- Komponanta ŝoforo:
Ĉi tiu pelilo rilatas al la ekstera aparato sur la tabulo, kaj ne al la STM32-aparato. La komponentŝoforo disponigas specifajn APIojn al la BSP-ŝoforo eksteraj komponentoj kaj povus esti portebla sur iu alia tabulo. - BSP-ŝoforo:
La BSP-ŝoforo permesas ligi la komponentŝoforojn al specifa tabulo, kaj disponigas aron de uzant-amika
APIoj. La API-nomregulo estas BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP estas bazita sur modula arkitekturo permesanta facilan porti sur ajna aparataro nur efektivigante la malaltnivelajn rutinojn.
Hardvara abstrakta tavolo (HAL) kaj malalta tavolo (LL)
La STM32CubeWBA HAL kaj LL estas komplementaj kaj kovras larĝan gamon de aplikaj postuloj:
- La HAL-ŝoforoj ofertas altnivelajn funkcio-orientitajn tre porteblajn API-ojn. Ili kaŝas la MCU kaj periferian kompleksecon al la finuzanto.
La HAL-ŝoforoj disponigas senmarkajn plurkazajn trajt-orientitajn API-ojn, kiuj simpligas uzantan aplikaĵefektivigon disponigante uzeblajn procezojn. Por ekzample, por la komunikadaj periferioj (I2S, UART, kaj aliaj), ĝi disponigas APIojn permesantajn inicialigi kaj agordi la periferion, administrante datumtranslokigon bazitan sur balotado, interrompado aŭ DMA-procezo, kaj pritraktado de komunikadaj eraroj kiuj povas ekesti dum komunikado. La HAL-ŝoforaj APIoj estas dividitaj en du kategoriojn:- Ĝeneralaj APIoj, kiuj disponigas komunajn kaj senmarkajn funkciojn al ĉiuj mikroregiloj de la serio STM32.
- Etendaj APIoj, kiuj provizas specifajn kaj personecigitajn funkciojn por specifa familio aŭ specifa partnumero.
- La malalt-tavolaj API-oj disponigas malalt-nivelajn API-ojn ĉe la registronivelo, kun pli bona optimumigo sed malpli porteblo.
- Ili postulas profundan scion pri MCU kaj ekstercentraj specifoj.
- La LL-ŝoforoj estas dizajnitaj por oferti rapidan malpezan spert-orientitan tavolon kiu estas pli proksima al la aparataro ol la HAL. Kontraŭe al la HAL, LL-APIoj ne estas disponigitaj por ekstercentraj kie optimumigita aliro ne estas ŝlosila trajto, aŭ por tiuj postulantaj pezan programaran agordon aŭ kompleksan supra-nivelan stakon.
- La LL-ŝoforoj prezentas:
- Aro de funkcioj por pravalorigi periferiajn ĉefajn ecojn laŭ la parametroj specifitaj en datumstrukturoj.
- Aro de funkcioj por plenigi komencajn datumstrukturojn kun la rekomencigitaj valoroj respondaj al ĉiu kampo.
- Funkcio por periferia deinicializado (periferiaj registroj reestigitaj al siaj defaŭltaj valoroj).
- Aro de enliniaj funkcioj por rekta kaj atomregistra aliro.
- Plena sendependeco de HAL kaj kapablo esti uzata en memstara reĝimo (sen HAL-ŝoforoj).
- Plena priraportado de la subtenataj ekstercentraj funkcioj.
Baza periferia uzado ekzamples
Ĉi tiu tavolo enfermas la eksamples konstruitaj super la STM32-ekscentraloj uzante nur la HAL kaj BSP-resursojn.
Nivelo 1
Ĉi tiu nivelo estas dividita en du subtavolojn:
- Mezvaraj komponantoj
- Examples bazitaj sur la mezvaraj komponantoj
Mezvaraj komponantoj
- La mezvaro estas aro de bibliotekoj kovrantaj Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot kaj mbed-crypto.
- Horizontala interago inter la komponentoj de ĉi tiu tavolo estas farita per vokado de la elstaraj APIoj.
- Vertikala interagado kun la malalt-tavolaj ŝoforoj estas farita per specifaj revokoj kaj senmovaj makrooj efektivigitaj en la biblioteka sistemvoka interfaco.
- La ĉefaj trajtoj de ĉiu mezvaraĵo estas kiel sekvas:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: realtempa operaciumo (RTOS), dizajnita por enigitaj sistemoj kun du funkciaj reĝimoj.
- Ofta reĝimo: Oftaj RTOS-funkcioj kiel ekzemple fadenadministrado kaj sinkronigado, memorgrupadministrado, mesaĝado, kaj okazaĵmanipulado.
- Modula reĝimo: Altnivela uzantreĝimo kiu permesas ŝarĝi kaj malŝarĝi de antaŭligitaj ThreadX-moduloj sur la flugo tra modula administranto.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: realtempa operaciumo (RTOS), dizajnita por enigitaj sistemoj kun du funkciaj reĝimoj.
- Bluetooth® Low Energy (BLE): Realigas la Bluetooth® Low Energy protokolon por la Ligo kaj Stack-tavoloj.
- MCUboot (malfermfonta programaro)
- Zigbee®-protokoloj por la stako kaj rilataj aretoj.
- Thread® protokola stako kaj ligtavolo.
- Arm® fidinda firmvaro-M, TF-M (malfermfonta programaro): Referenca efektivigo de la Arm®-platforma sekureca arkitekturo (PSA) por TrustZone® kun la rilataj sekuraj servoj.
- mbed-crypto (malfermfonta programaro): La mbed-crypto mezvaro disponigas PSA-kriptografian API-efektivigon.
- STM32 Tuŝ-sensa biblioteko: Fortika STMTouch-kapacita tuŝ-sensa solvo, subtenanta proksimecon, tuŝklavon, liniajn kaj rotaciajn tuŝsensilojn. Ĝi estas bazita sur pruvita surfaca ŝarga transiga akirprincipo.
- Microsoft® Azure® RTOS
Examples bazitaj sur la mezvaraj komponantoj
Ĉiu mezvar-komponento venas kun unu aŭ pluraj ekzamples (ankaŭ nomataj aplikoj) montrante kiel uzi ĝin. Integriĝo ekzamples kiuj uzas plurajn mezvarajn komponentojn estas disponigitaj ankaŭ.
STM32CubeWBA firmvarpakaĵo finiĝisview
Subtenataj aparatoj kaj aparataro de la serio STM32WBA
- STM32Cube ofertas tre porteblan aparatan abstraktan tavolon (HAL) konstruitan ĉirkaŭ senmarka arkitekturo. Ĝi permesas la principon de konstruaĵaj tavoloj, kiel uzi la mezvaran tavolon por efektivigi iliajn funkciojn sen scii, profunde, kio MCU estas uzata. Ĉi tio plibonigas la reuzeblecon de la biblioteko kaj certigas facilan porteblon al aliaj aparatoj.
- Krome, danke al ĝia tavoligita arkitekturo, la STM32CubeWBA ofertas plenan subtenon de ĉiuj STM32WBA-serioj.
- La uzanto devas nur difini la ĝustan makroon en stm32wbaxx.h.
- Tablo 1 montras la makroon por difini depende de la STM32WBA seria aparato uzita. Ĉi tiu makroo ankaŭ devas esti difinita en la kompilila antaŭprocesoro.
Tabelo 1. Makrooj por STM32WBA-serioMakroo difinita en stm32wbaxx.h STM32WBA-serio-aparatoj stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA prezentas riĉan aron de ekzamples kaj aplikoj je ĉiuj niveloj faciligante kompreni kaj uzi ajnajn HAL-ŝoforojn aŭ mezvarajn komponentojn. Tiuj ekzampLes funkcias sur la STMicroelectronics-tabuloj listigitaj en Tabelo 2.
Tabelo 2. Tabuloj por STM32WBA-serioEstraro Estraro STM32WBA subtenataj aparatoj NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - La STM32CubeWBA MCU-pakaĵo povas funkcii per iu ajn kongrua aparataro. La uzanto simple ĝisdatigas la BSP-ŝoforojn por porti la provizitan ekzamples sur la tabulo, se ĉi-lasta havas la samajn aparatajn funkciojn (kiel ekzemple LED, LCD-ekrano kaj butonoj).
Firmware-pakaĵo finiĝisview
- La STM32CubeWBA-pakaĵsolvo estas provizita en unu ununura zip-pakaĵo havanta la strukturon montritan en Figuro 3. STM32CubeWBA-firmara pakaĵstrukturo.
- Por ĉiu tabulo, aro da ekzamples estas provizitaj per antaŭkonfiguritaj projektoj por ilĉenoj EWARM, MDK-ARM kaj STM32CubeIDE.
- Figuro 4. STM32CubeWBA ekzamples finiteview montras la projektostrukturon por la tabuloj NUCLEO-WBA52CG, NUCLEO-WBA55CG kaj STM32WBA55G-DK1.
- La eksamplesoj estas klasifikitaj laŭ la STM32Cube-nivelo al kiu ili aplikas, kaj ili estas nomitaj jene:
- Nivelo 0 ekzamples estas nomataj Ekzamples, Ekzamples_LL, kaj Examples_MIX. Ili uzas respektive HAL-ŝoforojn, LL-ŝoforojn, kaj miksaĵon de HAL kaj LL-ŝoforoj sen iu mezvarkomponento.
- Nivelo 1 ekzamplesoj estas nomataj Aplikoj. Ili disponigas tipajn uzkazojn de ĉiu mezvarkomponento. Ajna firmware-apliko por difinita tabulo povas esti rapide konstruita danke al ŝablonaj projektoj disponeblaj en la dosierujoj Ŝablonoj kaj Ŝablonoj_LL.
TrustZone® ebligitaj projektoj
- TrustZone® ebligis Ekzamples nomoj enhavas la prefikson _TrustZone. La regulo estas aplikata ankaŭ por Aplikoj (krom TFM kaj SBSFU, kiuj estas denaske por TrustZone®).
- TrustZone®-ebligita Ekzamples kaj Aplikoj estas provizitaj per plurprojekta strukturo kunmetita de sekuraj kaj nesekuraj subprojektoj kiel prezentita en Figuro 5. Multiprojekta sekura kaj nesekura projekta strukturo.
- Projektoj ebligitaj de TrustZone® estas disvolvitaj laŭ la ŝablono pri aparato CMSIS-5, etendita por inkluzivi la kaplinion de la sistemo. file dispartigo_ .h, kiu respondecas ĉefe pri la aranĝo de la sekura atributunuo (SAU), la FPU, kaj la sekura/nesekura interrompas taskon en la sekura ekzekutŝtato.
- Ĉi tiu aranĝo estas farita en la sekura CMSIS SystemInit() funkcio, kiu estas vokita ĉe ekfunkciigo antaŭ enirado de la sekura aplikaĵo main() funkcio. Vidu al Arm® TrustZone®-M-dokumentado de programaraj gvidlinioj.
- La firmware-pakaĵo STM32CubeWBA provizas defaŭltan memordispartigon en la sekcio _ .h files disponeblaj sub: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T-ŝablonoj
- En ĉi tiuj vando files, la SAU estas malebligita defaŭlte. Sekve, la IDAU-memormapado estas uzita por sekureca atribuo. Rigardu al figuro Sekura/ne-sekura dispartigo uzante TrustZone®-teknologion en la referenca manlibro RM0495.
- Se la uzanto ebligas la SAU, defaŭlta SAU-regiona agordo estas antaŭdifinita en sekcio files jene:
- SAU-regiono 0: 0x08080000 - 0x081FFFFF (nesekura sekura duono de fulmmemoro (512 Kbajtoj))
- SAU-regiono 1: 0x0BF88000 - 0x0BF97FFF (nesekura sistema memoro)
- SAU-regiono 2: 0x0C07E000 - 0x0C07FFFF (sekura, nesekura alvokebla)
- SAU-regiono 3: 0x20010000 - 0x2001FFFF (nesekura SRAM2 (64 Kbajtoj))
- SAU-regiono 4: 0x40000000 - 0x4FFFFFFF (nesekura periferia mapita memoro)
- Por kongrui kun la defaŭlta dispartigo, la aparatoj de la serio STM32WBAxx devas havi la jenajn uzantopciobajtojn agordita:
- TZEN = 1 (TrustZone®-ebligita aparato)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 el 128 paĝoj de interna fulmmemoro agordita kiel sekura) Noto: La interna fulmmemoro estas tute sekura defaŭlte en TZEN = 1. La uzant-opciobajtoj SECWM1_PSTRT/ SECWM1_PEND devas esti agordita laŭ la aplikaĵo. memorkonfiguracio (SAU-regionoj, se SAU estas ebligita). Sekura/nesekura aplikaĵo projekta ligilo files ankaŭ devas esti vicigitaj.
- Ĉiuj eksampili havas la saman strukturon:
- \Inc dosierujo enhavanta la tutan kaplinion files.
- Src-dosierujo enhavanta la fontkodon.
- \EWARM, \MDK-ARM, kaj \STM32CubeIDE dosierujoj enhavantaj la antaŭkonfiguritan projekton por ĉiu ilĉeno.
- readme.md kaj readme.html priskribante la eksample konduto kaj bezonata medio por igi ĝin funkcii.
- ioc file kiu permesas al uzantoj malfermi la plej multajn el la firmvaro ekzamples ene de STM32CubeMX.
Komencu kun STM32CubeWBA
Kurante unua HAL ekzample
Ĉi tiu sekcio klarigas kiom simple estas ruli la unuan eksample ene de STM32CubeWBA. Ĝi uzas kiel ilustraĵon la generacion de simpla LED baskulo funkcianta sur la NUCLEO-WBA52CG-tabulo:
- Elŝutu la STM32CubeWBA MCU-pakaĵon.
- Malfermu ĝin en dosierujon de via elekto.
- Nepre ne modifi la pakaĵstrukturon montritan en Figuro 1. Ankaŭ rekomendas kopii la pakaĵon ĉe loko proksima al via radika volumo (tio signifas C:\ST aŭ G:\Tests), ĉar iuj IDEoj renkontas problemojn kiam la vojo. longeco estas tro longa.
Ruli unua TrustZone® ebligita ekzample
- Antaŭ ŝarĝi kaj ruli TrustZone® ebligitan ekzample, estas devige legi la eksamplegu min file por iu specifa agordo, kiu certigas, ke la sekureco estas ebligita kiel priskribite en Sekcio 4.2.1 TrustZone® ebligitaj projektoj (TZEN=1 (uzanto-opciobajto)).
- Foliumi al \Projektoj\NUCLEO-WBA52CG\Ekzamples.
- Malfermu \GPIO, tiam \GPIO_IOToggle_TrustZone dosierujojn.
- Malfermu la projekton per via preferata ilĉeno. Rapida superview pri kiel malfermi, konstrui kaj funkciigi eksample kun la subtenataj ilĉenoj estas donitaj sube.
- Rekonstruu en sinsekvo ĉiujn sekurajn kaj nesekurajn projektojn files kaj ŝarĝu la sekurajn kaj nesekurajn bildojn en la celmemoron.
- Kuru la eksample: regule, la sekura aplikaĵo ŝanĝas LD2 ĉiun sekundon, kaj la nesekura aplikaĵo ŝanĝas LD3 duoble pli rapide. Por pliaj detaloj, referu al la legu min file de la eksample.
- Por malfermi, konstrui kaj funkciigi eksample kun la subtenataj ilĉenoj, sekvu la paŝojn sube:
- EWARM:
- Sub la eksample dosierujo, malfermu \EWARM subdosierujon.
- Lanĉu la laborspacon Project.eww
- Rekonstruu la sekuran projekton xxxxx_S files: [Projekto]>[Rekonstruu ĉion].
- Agordu la nesekuran projekton xxxxx_NS kiel Aktivan aplikaĵon (dekstre alklaku sur xxxxx_NS-projekto [Agordu kiel Aktivan])
- Rekonstruu la xxxxx_NS nesekuran projekton files: [Projekto]>[Rekonstruu ĉion].
- Ekbriligi la nesekuran binaron per [Projekto]>[Elŝutu]>[Elŝutu aktivan aplikaĵon] .
- Agordu la xxxxx_S kiel Aktivan aplikaĵon (dekstre alklaku sur xxxxx_S-projekto [Agordu kiel Aktivan].
- Ekbriligi la sekuran binaron per la [Elŝutu kaj Sencimigi] (Ctrl+D).
- Rulu la programon: [Elpurigi]> [Iru (F5)]
- MDK-ARM:
- Malfermu la ilĉenon \MDK-ARM.
- Malfermu la laborspacon Multiprojects file Projekto.uvmpw.
- Elektu la xxxxx_s-projekton kiel Aktivan aplikaĵon ([Agordu kiel Aktivan Projekton]).
- Konstruu la projekton xxxxx_s.
- Elektu la xxxxx_ns-projekton kiel Aktivan projekton ([Agordu kiel Aktivan Projekton]).
- Konstruu la projekton xxxxx_ns.
- Ŝarĝu la nesekuran binaron ([F8]). Ĉi tio elŝutas \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf al fulmmemoro)
- Elektu la projekton Project_s kiel Aktivan projekton ([Agordu kiel Aktivan Projekton]).
- Ŝarĝu la sekuran binaron ([F8]). Ĉi tio elŝutas \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf al memoro).
- Kuru la eksample.
- STM32CubeIDE:
- Malfermu la ilĉenon STM32CubeIDE.
- Malfermu la laborspacon Multiprojects file .projekto.
- Rekonstruu la xxxxx_Secure projekton.
- Rekonstruu la projekton xxxxx_NonSecure.
- Lanĉu la aplikaĵon [Elpurigi kiel STM32 Cortex-M C/C++] por la sekura projekto.
- En la fenestro [Redakti agordon] elektu la panelon [Startup] kaj aldonu ŝargi la bildon kaj simbolojn de la nesekura projekto.
Grava: La nesekura projekto devas esti ŝargita antaŭ la sekura projekto. - Klaku [Ok].
- Kuru la eksample pri sencimiga perspektivo.
- EWARM:
Kurante unua TrustZone® malfunkciigita ekzample
- Antaŭ ŝarĝi kaj ruli TrustZone® malfunkciigitan ekzample, estas devige legi la eksamplegu min file por iu specifa agordo. Se ne estas specifaj mencioj, certigu, ke la tabulo-aparato havas sekurecon malŝaltita (TZEN=0 (uzanto-opciobajto)). Vidu Oftaj Demandoj por fari la laŭvolan regreson al TZEN = 0
- Foliumi al \Projektoj\NUCLEO-WBA52CG\Ekzamples.
- Malfermu \GPIO, tiam \GPIO_EXTI-dosierujojn.
- Malfermu la projekton per via preferata ilĉeno. Rapida superview pri kiel malfermi, konstrui kaj funkciigi eksample kun la subtenataj ilĉenoj estas donitaj sube.
- Rekonstruu ĉion files kaj ŝarĝu vian bildon en la celmemoron.
- Kuru la eksample: Ĉiufoje kiam la [USER] prembutono estas premata, la LD1-LED ŝanĝas. Por pliaj detaloj, referu al la legu min file de la eksample.
- Por malfermi, konstrui kaj funkciigi eksample kun la subtenataj ilĉenoj, sekvu la paŝojn sube:
- EWARM:
- Sub la eksample dosierujo, malfermu \EWARM subdosierujon.
- Lanĉu la laborspacon Project.eww (la nomo de laborspaco povas ŝanĝiĝi de unu ekzample al alia).
- Rekonstruu ĉion files: [Projekto]>[Rekonstruu ĉion].
- Ŝarĝu la projektbildon: [Projekto]>[Elpurigi].
- Rulu programon: [Elpurigi]>[Iru (F5)].
- MDK-ARM:
- Sub la eksample dosierujo, malfermu la subdosierujon \MDK-ARM.
- Lanĉu la laborspacon Project.uvproj (la nomo de laborspaco povas ŝanĝiĝi de unu ekzample al alia).
- Rekonstruu ĉion files:[Projekto]>[Rekonstruu ĉiun celon files].
- Ŝarĝu la projektan bildon: [Elpurigi]>[Starti/Ĉesigi Sencimigan Sesion].
- Rulu programon: [Elpurigi]>[Run (F5)].
- STM32CubeIDE:
- Malfermu la ilĉenon STM32CubeIDE.
- Alklaku [File]>[Ŝanĝi Laborspacon]>[Aliaj] kaj foliumu al la STM32CubeIDE laborspaca dosierujo.
- Alklaku [File]>[Importu] , elektu [Ĝenerale]>[Ekzistantaj Projektoj en Laborspacon], kaj poste alklaku [Sekva].
- Foliumi al la dosierujo de laborspaco STM32CubeIDE kaj elektu la projekton.
- Rekonstruu la tutan projekton files: Elektu la projekton en la fenestro [Projekto-Esploristo] kaj alklaku la menuon [Projekto]>[Konstrui projekton].
- Rulu la programon: [Run]>[Elpurigi (F11)]
- EWARM:
Disvolvante kutiman aplikaĵon
Notu: Programaro devas ebligi la instrukaĵkaŝmemoron (ICACHE) por ricevi 0 atend-ŝtatan ekzekuton de fulmmemoro, kaj atingi la maksimuman rendimenton kaj pli bonan energikonsumon.
Uzante STM32CubeMX por evoluigi aŭ ĝisdatigi aplikaĵon
- En la STM32CubeWBA MCU-pakaĵo, preskaŭ ĉiuj projektoj ekzamplesoj estas generitaj per la ilo STM32CubeMX por pravalorigi la sistemon, ekstercentrajn kaj mezvaraĵojn.
- La rekta uzo de ekzistanta projekto ekzample de la ilo STM32CubeMX postulas STM32CubeMX 6.10.0 aŭ pli altan:
- Post la instalado de STM32CubeMX, malfermu kaj se necese ĝisdatigu proponitan projekton. La plej simpla maniero malfermi ekzistantan projekton estas duoble alklaki la *.ioc file tiel ke STM32CubeMX aŭtomate malfermas la projekton kaj ĝian fonton files.
- STM32CubeMX generas la komencan fontkodon de tiaj projektoj. La ĉefa aplikaĵa fontkodo estas enhavita de la komentoj "UZANTKODO BEGIN" kaj "USER CODE END". Se la IP-elekto kaj agordo estas modifitaj, STM32CubeMX ĝisdatigas la komencan parton de la kodo sed konservas la ĉefan aplikaĵan fontkodon.
- Por disvolvi kutiman projekton en la STM32CubeMX, sekvu la paŝon post paŝo:
- Elektu la mikroregilon STM32, kiu kongruas kun la bezonata aro de ekstercentraj.
- Agordu la tutan postulatan enigitan programaron uzante pinout-konfliktan solvanton, horloĝ-arban agordan helpilon, elektran konsumkalkulilon, kaj la ilon farantan MCU-periferian agordon (kiel ekzemple GPIO aŭ USART) kaj mezvarajn stakojn (kiel ekzemple USB).
- Generu la komencan C-kodon surbaze de la elektita agordo. Ĉi tiu kodo estas preta por uzi en pluraj evolumedioj. La uzantkodo estas konservita ĉe la sekva kodgeneracio.
- Por pliaj informoj pri STM32CubeMX, konsultu la uzantmanlibron STM32CubeMX por STM32-agordo kaj inicialigo C-kodgenerado (UM1718).
- Por listo de la disponebla projekto ekzamples por STM32CubeWBA, raportu al la aplikaĵa noto STM32Cube-firmvaro ekzamples por STM32WBA-serio (AN5929).
Ŝoforaj aplikoj
HAL aplikaĵo
Ĉi tiu sekcio priskribas la paŝojn necesajn por krei kutiman HAL-aplikaĵon uzante STM32CubeWBA:
- Krei projekton
- Por krei novan projekton, komencu ĉu de la Ŝablona projekto provizita por ĉiu tabulo sub \Projektoj\ \Ŝablonoj aŭ de iu ajn disponebla projekto sub \Projektoj\ \Ekzemploj aŭ \Projektoj\ \Aplikoj (kie rilatas al la nomo de la estraro, kiel STM32CubeWBA).
- La Ŝablona projekto disponigas malplenan ĉefan buklofunkcion. Tamen, estas bona deirpunkto por kompreni la agordojn de la projekto STM32CubeWBA. La ŝablono havas la jenajn karakterizaĵojn:
- Ĝi enhavas la HAL fontkodon, CMSIS, kaj BSP-ŝoforojn, kiuj estas la minimuma aro de komponentoj postulataj por evoluigi kodon sur antaŭfiksita tabulo.
- Ĝi enhavas la inkluditajn vojojn por ĉiuj firmware-komponentoj.
- Ĝi difinas la subtenatajn STM32WBA-serialaparatojn, permesante al la CMSIS kaj HAL-ŝoforoj esti agordita ĝuste.
- Ĝi provizas pretan uzeblan uzanton fileestas antaŭkonfiguritaj kiel montrite sube:
HAL pravigita kun la defaŭlta tempobazo kun Arm®-kerno SysTick. SysTick ISR efektivigita por HAL_Delay() celo.
Notu: Kiam vi kopias ekzistantan projekton al alia loko, certigu, ke ĉiuj inkluzivitaj vojoj estas ĝisdatigitaj.
- Aldonu la necesan mezprogramon al la uzantprojekto (laŭvola)
Por identigi la fonton files aldonotaj al la projekto file listo, raportu al la dokumentaro provizita por ĉiu mezvaro. Rigardu la aplikaĵojn sub \Projects\STM32xxx_yyy\Applications\ (kie rilatas al la mezvaro stako, kiel ThreadX) por scii kiu fonto files kaj inkludi vojojn devas esti aldonitaj. - Agordu la firmware-komponentojn
La HAL kaj mezvaraj komponantoj ofertas aron da konstrutempaj agordaj opcioj uzante makroojn #define deklaritajn en kaplinio file. Ŝablona agordo file estas disponigita ene de ĉiu komponento, kiu devas esti kopiita al la projekta dosierujo (kutime la agordo file estas nomita xxx_conf_template.h, la vorto _ŝablono devas esti forigita kiam oni kopias ĝin al la projekta dosierujo). La agordo file provizas sufiĉajn informojn por kompreni la efikon de ĉiu agorda opcio. Pli detalaj informoj haveblas en la dokumentado provizita por ĉiu komponanto. - Komencu la HAL-bibliotekon
Post saltado al la ĉefa programo, la aplikaĵokodo devas voki HAL_Init() API por pravalorigi la HAL-bibliotekon, kiu plenumas la sekvajn taskojn:- Agordo de la antaŭpreno de fulmmemoro kaj SysTick-interrompa prioritato (per makrooj difinitaj en st m32wbaxx_hal_conf.h).
- Agordo de la SysTick por generi interrompon ĉiun milisekundon ĉe la SysTick-interrompa prioritato TICK_INT_PRIO difinita en stm32wbaxx_hal_conf.h.
- Agordo de NVIC-grupprioritato al 0.
- Voko de HAL_MspInit() revokfunkcio difinita en stm32wbaxx_hal_msp.c uzanto file fari tutmondajn malaltnivelajn hardvariniciagojn.
- Agordu la sisteman horloĝon
La agordo de la sistema horloĝo estas farita per vokado de la du API-oj priskribitaj malsupre:- HAL_RCC_OscConfig(): ĉi tiu API agordas la internajn kaj eksterajn oscilatorojn. La uzanto elektas agordi unu aŭ ĉiujn oscilatorojn.
- HAL_RCC_ClockConfig(): ĉi tiu API agordas la sisteman horloĝfonton, la latentecon de fulmmemoro kaj AHB kaj APB-preskalalojn.
- Komencu la ekstercentran
- Unue skribu la ekstercentran funkcion HAL_PPP_MspInit. Sekvu jene:
- Ebligu la ekstercentran horloĝon.
- Agordi la ekstercentrajn GPIOojn.
- Agordu la DMA-kanalon kaj ebligu DMA-interrompon (se necese).
- Ebligu periferian interrompon (se necese).
- Redaktu la stm32xxx_it.c por voki la postulatajn interrompajn prizorgantojn (periferiaj kaj DMA), se necese.
- Skribu procezo kompleta callback funkcioj, se ekstercentra interrompo aŭ DMA estas planita esti uzata.
- En uzanto main.c file, pravigu la periferian tenilon strukturon tiam voku la funkcion HAL_PPP_Init() por pravalorigi la ekstercentran.
- Unue skribu la ekstercentran funkcion HAL_PPP_MspInit. Sekvu jene:
- Disvolvu aplikaĵon
- Ĉe ĉi tiu stage, la sistemo estas preta kaj la uzanta aplika kodo disvolviĝo povas komenci.
- La HAL disponigas intuiciajn kaj uzeblajn APIojn por agordi la ekstercentrajn. Ĝi subtenas balotadon, interrompojn, kaj DMA-programadmodelon, por alĝustigi ajnajn aplikajn postulojn. Por pliaj detaloj pri kiel uzi ĉiun ekstercentran, raportu al la riĉa eksampla aro provizita en la STM32CubeWBA MCU-pakaĵo.
Atentu: En la defaŭlta HAL-efektivigo, la SysTick-tempigilo estas utiligita kiel tempbazo: ĝi generas interrompojn je regulaj tempintervaloj. Se HAL_Delay() estas vokita de la periferia ISR-procezo, certigu, ke la SysTick-interrompo havas pli altan prioritaton (cifere pli malalta) ol la periferia interrompo. Alie, la alvokanto ISR-procezo estas blokita. Funkcioj influantaj tempbazajn agordojn estas deklaritaj kiel __malfortaj por ebligi anstataŭi en kazo de aliaj efektivigoj en la uzanto. file (uzante ĝeneraluzeblan tempigilon, ekzample, aŭ alia tempofonto). Por pliaj detaloj, referu al la HAL_TimeBase ekzample.
LL-aplikaĵo
Ĉi tiu sekcio priskribas la paŝojn necesajn por krei kutiman LL-aplikaĵon uzante STM32CubeWBA.
- Krei projekton
- Por krei novan projekton, aŭ komencu de la projekto Templates_LL provizita por ĉiu tabulo sub \Projektoj\ \Templates_LL, aŭ de iu ajn disponebla projekto sub \Projektoj\ \Ekzamples_LL ( rilatas al la nomo de la estraro, kiel NUCLEO-WBA32CG).
- La ŝablona projekto disponigas malplenan ĉefan buklofunkcion, kiu estas bona deirpunkto por kompreni la projektajn agordojn por STM32CubeWBA. La ĉefaj karakterizaĵoj de la ŝablono estas la jenaj:
- Ĝi enhavas la fontkodojn de la LL kaj CMSIS-ŝoforoj, kiuj estas la minimuma aro de komponentoj necesaj por evoluigi kodon sur antaŭfiksita tabulo.
- Ĝi enhavas la inkluzivitajn vojojn por ĉiuj postulataj firmware-komponentoj.
- Ĝi elektas la subtenata STM32WBA seria aparato kaj permesas la ĝustan agordon de la CMSIS kaj LL-ŝoforoj.
- Ĝi provizas pretan uzeblan uzanton files kiuj estas antaŭkonfiguritaj jene:
◦ main.h: LED kaj USER_BUTTON difina abstrakta tavolo.
◦ main.c: Sistema horloĝa agordo por maksimuma frekvenco.
- Porti ekzistantan projekton al alia tabulo
Por subteni ekzistantan projekton sur alia cela tabulo, komencu de la projekto Templates_LL provizita por ĉiu tabulo kaj disponebla sub \Projektoj\ \Ŝablonoj_LL.- Elektu LL ekzample: Trovi la tabulon sur kiu LL ekzamples estas deplojitaj, raportu al la listo de LL ekzamples STM32CubeProjectsList.html.
- Port la LL ekzample:
- Kopiu/gluu la dosierujon Templates_LL - por konservi la komencan fonton - aŭ rekte ĝisdatigi la ekzistantan Temp lates_LL-projekton.
- Tiam portado konsistas ĉefe en anstataŭigo de Templates_LL files per la Eksamples_LL celita projekto.
- Konservu ĉiujn tabulajn specifajn partojn. Por kialoj de klareco, tabulaj specifaj partoj estas markitaj per specifa tags:
- Tiel, la ĉefaj portaj paŝoj estas la sekvaj:
- Anstataŭigu la stm32wbaxx_it.h file
- Anstataŭigi la stm32wbaxx_it.c file
- Anstataŭigi la ĉefan.h file kaj ĝisdatigu ĝin: Konservu la LED- kaj uzantbutonan difinon de la LL-ŝablono sub SPECIFIKA KONFIGURO DE TABLARO tags.
- Anstataŭigi la ĉefan.c file kaj ĝisdatigu ĝin:
- Konservu la horloĝan agordon de la ŝablona funkcio SystemClock_Config() LL sub SPECIFIKA KONFIGURO DE TABLARO tags.
- Depende de la LED-difino, anstataŭigu ĉiun LDx-okazaĵon per alia LDy disponebla en la main.h file.
- Kun ĉi tiuj modifoj, la ekzample nun kuras sur la celita tabulo
Sekurecaj aplikoj
Ĉi tiu pako estas liverita kun sekurecaj aplikaĵoj.
SBSFU-aplikoj
- SBSFU disponigas Root of Trust-solvon, inkluzive de Secure Boot kaj Secure Firmware Update-funkcioj (bazitaj sur MCUboot).
- La solvo estas uzata antaŭ ol ekzekuti la aplikaĵon.
- La solvo provizas ekzample de sekura servo ( baskulo GPIO ), kiu estas izolita de la nesekura aplikaĵo. La nesekura aplikaĵo ĉe rultempo ankoraŭ povas uzi ĉi tiun solvon.
TFM-aplikoj
La TFM provizas Root of Trust-solvon inkluzive de Secure Boot kaj Secure Firmware Update-funkcioj
(surbaze de MCUboot). La solvo estas uzata antaŭ ol ekzekuti la aplikaĵon. La solvo provizas TFM-sekurajn servojn, kiuj estas izolitaj de la nesekura aplikaĵo. La nesekura aplikaĵo ĉe rultempo ankoraŭ povas uzi ĉi tiun solvon.
RF-aplikoj
La RF-apliko estas priskribita en ĉi tiu aplikaĵa noto: Konstruante sendratajn aplikojn per mikroregiloj de la serio STM32WBA (AN5928).
Ricevante ĝisdatigojn pri eldono de STM32CubeWBA
La plej novaj STM32CubeWBA MCU-pakaĵeldonoj kaj diakiloj estas haveblaj de STM32WBA Serio. Ili povas esti prenitaj de la butono CHECK FOR UPDATE en STM32CubeMX. Por pliaj detaloj, raportu al Sekcio 3 de la uzantmanlibro STM32CubeMX por STM32-agordo kaj inicialigo C-kodgenerado (UM1718).
Oftaj Demandoj
- Kiam mi uzu HAL anstataŭ LL-ŝoforojn?
- HAL-ŝoforoj ofertas altnivelajn kaj funkcio-orientitajn API-ojn, kun alta nivelo de porteblo. Produkta aŭ ekstercentra komplekseco estas kaŝita por finaj uzantoj.
- LL-ŝoforoj ofertas malalttavolajn registronivelajn API-ojn, kun pli bona optimumigo sed malpli portebla. Ili postulas profundan scion pri produkto aŭ IP-specifoj.
- Ĉu mi povas uzi HAL kaj LL-ŝoforojn kune? Se mi povas, kiaj estas la limoj?
- Eblas uzi kaj HAL kaj LL-ŝoforojn. Uzu la HAL por la IP-inicialiga fazo kaj poste administru la I/O-operaciojn per LL-ŝoforoj.
- La plej grava diferenco inter HAL kaj LL estas ke HAL-ŝoforoj postulas krei kaj uzi tenilojn por operaciadministrado dum LL-ŝoforoj funkciigas rekte sur periferiaj registroj. La Eksamples_MIX ekzample ilustras kiel miksi HAL kaj LL.
- Kiel LL-komencigaj API-oj estas ebligitaj?
- La difino de LL-komencigaj APIoj kaj rilataj rimedoj (Strukturoj, literaloj kaj prototipoj) estas kondiĉigita de la kompilŝaltilo USE_FULL_LL_DRIVER.
- Por povi uzi LL-komencigajn API-ojn, aldonu ĉi tiun ŝaltilon en la antaŭprocesoro de la ilĉena kompililo.
- Kiel STM32CubeMX povas generi kodon bazitan sur enigita programaro?
STM32CubeMX havas enkonstruitan scion pri STM32-mikroregiloj, inkluzive de iliaj ekstercentraj kaj programaro, kiu ebligas disponigi grafikan reprezenton al la uzanto kaj generi *.h aŭ *.c. files bazita sur uzanta agordo.
GRAVA AVIZO – LEGU ATENTE
- STMicroelectronics NV kaj ĝiaj filioj ("ST") rezervas la rajton fari ŝanĝojn, korektojn, plibonigojn, modifojn kaj plibonigojn al ST-produktoj kaj/aŭ al ĉi tiu dokumento iam ajn sen avizo. Aĉetantoj devas akiri la plej novajn rilatajn informojn pri ST-produktoj antaŭ ol fari mendojn. ST-produktoj estas venditaj laŭ la vendkondiĉoj de ST en la tempo de mendo agnosko.
- Aĉetantoj respondecas nur pri la elekto, elekto kaj uzo de ST-produktoj kaj ST supozas neniun respondecon pri aplika helpo aŭ la dezajno de produktoj de aĉetantoj.
- Neniu licenco, esprima aŭ implicita, al iu ajn intelekta proprieta rajto estas donita de ST ĉi tie.
- Revendo de ST-produktoj kun dispozicioj malsamaj ol la informoj ĉi tie prezentitaj nuligos ajnan garantion donitan de ST por tia produkto.
- ST kaj la ST-emblemo estas varmarkoj de ST. Por pliaj informoj pri ST-varmarkoj, konsultu www.st.com/trademarks. Ĉiuj aliaj produktaj aŭ servonomoj estas la posedaĵo de siaj respektivaj posedantoj.
- Informoj en ĉi tiu dokumento anstataŭas kaj anstataŭigas informojn antaŭe provizitajn en iuj antaŭaj versioj de ĉi tiu dokumento.
- © 2023 STMicroelectronics - Ĉiuj rajtoj rezervitaj
Dokumentoj/Rimedoj
![]() |
STMicroelectronics STM32WBA Serio Komenciĝi [pdf] Uzanto-manlibro Serio STM32WBA Komenci, Komenci, Komenci |