STMicroelectronics STM32WBA serija Prvi koraci
Informacije o proizvodu
Tehnički podaci:
- Naziv proizvoda: STM32CubeWBA MCU paket
- Proizvođač: STMicroelectronics
- Kompatibilnost: Mikrokontroleri serije STM32WBA
- Licenciranje: BSD licenca otvorenog koda
Upute za uporabu proizvoda
Glavne značajke STM32CubeWBA MCU paketa:
STM32CubeWBA MCU paket pruža sve potrebne ugrađene softverske komponente za razvoj aplikacija na mikrokontrolerima serije STM32WBA. Vrlo je prenosiv unutar serije STM32 i dolazi s HAL i LL API-jima, nprampdatoteke i komponente srednjeg softvera.
Arhitektura gotovaview:
Arhitektura STM32CubeWBA MCU paketa sastoji se od tri razine – aplikacije, komponente temeljene na biblioteci i protokolu, sloj apstrakcije hardvera, BSP upravljački programi, jezgreni upravljački programi i API-ji niskog sloja.
FAQ
- Što je uključeno u STM32CubeWBA MCU paket?
Paket uključuje API-je niskog sloja (LL) i sloja hardverske apstrakcije (HAL), nprampdatoteke, aplikacije, komponente srednjeg softvera poput FileX/LevelX, NetX Duo, mbed-crypto biblioteke i više. - Je li STM32CubeWBA MCU paket kompatibilan s generatorom koda STM32CubeMX?
Da, paket je u potpunosti kompatibilan s generatorom koda STM32CubeMX za generiranje inicijalizacijskog koda.
Uvod
- STM32Cube je izvorna inicijativa STMicroelectronicsa za značajno poboljšanje produktivnosti dizajnera smanjenjem truda, vremena i troškova razvoja. STM32Cube pokriva cijeli STM32 portfelj.
STM32Cube uključuje:- Skup alata za razvoj softvera prilagođenih korisniku za pokrivanje razvoja projekta od zamisli do realizacije, među kojima su:
- STM32CubeMX, alat za konfiguraciju grafičkog softvera koji omogućuje automatsko generiranje C koda za inicijalizaciju pomoću grafičkih čarobnjaka
- STM32CubeIDE, sveobuhvatni razvojni alat s perifernom konfiguracijom, generiranjem koda, kompilacijom koda i značajkama za uklanjanje pogrešaka
- STM32CubeCLT, sveobuhvatni skup alata za razvoj naredbenog retka s kompilacijom koda, programiranjem ploče i značajkama za ispravljanje pogrešaka
- STM32CubeProgrammer (STM32CubeProg), alat za programiranje dostupan u grafičkoj verziji i verziji s naredbenim retkom
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), snažni nadzorni alati za fino podešavanje ponašanja i performansi STM32 aplikacija u stvarnom vremenu
- STM32Cube MCU i MPU paketi, sveobuhvatne ugrađene softverske platforme specifične za svaku seriju mikrokontrolera i mikroprocesora (kao što je STM32CubeWBA za seriju STM32WBA), koje uključuju:
- STM32Cube sloj apstrakcije hardvera (HAL), koji osigurava maksimalnu prenosivost kroz STM32 portfelj
- STM32Cube niskoslojni API-ji, koji osiguravaju najbolje performanse i tragove uz visok stupanj korisničke kontrole nad hardverom
- Konzistentan skup komponenti srednjeg softvera kao što su ThreadX, FileX / LevelX, NetX Duo, USBX, biblioteka osjetljiva na dodir, mbed-crypto, TFM, MCUboot, OpenBL i STM32_WPAN (uključujući Bluetooth® Low Energy profilei usluge, Mesh, Zigbee®, OpenThread, Matter i 802.15.4 MAC sloj)
- Svi ugrađeni softverski uslužni programi s punim setovima perifernih i aplikativnih pramples
- Paketi proširenja STM32Cube, koji sadrže ugrađene softverske komponente koje nadopunjuju funkcionalnosti STM32Cube MCU i MPU paketa s:
- Middleware proširenja i aplikativni slojevi
- Examppokrenuti na nekim specifičnim STMicroelectronics razvojnim pločama
- Skup alata za razvoj softvera prilagođenih korisniku za pokrivanje razvoja projekta od zamisli do realizacije, među kojima su:
- Ovaj korisnički priručnik opisuje kako započeti s STM32CubeWBA MCU paketom.
- Odjeljak 2 Glavne značajke STM32CubeWBA opisuje glavne značajke STM32CubeWBA MCU paketa.
- Odjeljak 3 Arhitektura STM32CubeWBA završenaview pruža prekoview arhitekture STM32CubeWBA i strukture MCU paketa.
Opće informacije
STM32CubeWBA MCU paket radi na STM32 32-bitnim mikrokontrolerima temeljenim na Arm® Cortex®-M33 procesoru s Arm® TrustZone® i FPU.
Bilješka: Arm i TrustZone registrirani su zaštitni znaci Arm Limited (ili njegovih podružnica) u SAD-u i/ili drugdje.
Glavne značajke STM32CubeWBA
- STM32CubeWBA MCU paket radi na STM32 32-bitnim mikrokontrolerima koji se temelje na Arm® Cortex®-M33 procesoru s TrustZone® i FPU.
- STM32CubeWBA okuplja, u jednom paketu, sve generičke ugrađene softverske komponente potrebne za razvoj aplikacije za mikrokontrolere serije STM32WBA. U skladu s inicijativom STM32Cube, ovaj skup komponenti je vrlo prenosiv, ne samo unutar mikrokontrolera serije STM32WBA nego i za druge serije STM32.
- STM32CubeWBA potpuno je kompatibilan s generatorom koda STM32CubeMX za generiranje inicijalizacijskog koda. Paket uključuje API-je niskog sloja (LL) i sloj apstrakcije hardvera (HAL) koji pokrivaju hardver mikrokontrolera, zajedno s opsežnim skupom examprade na STMicroelectronics pločama. HAL i LL API-ji dostupni su u BSD licenci otvorenog koda radi praktičnosti korisnika.
- Paket STM32CubeWBA MCU također sadrži sveobuhvatnu komponentu međuprograma izgrađenu oko međuopreme Microsoft® Azure® RTOS i drugih internih i otvorenih skupova, s odgovarajućim examples.
- Dolaze s besplatnim licencnim uvjetima jednostavnim za korištenje:
- Integrirani i potpuno opremljeni Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS implementacija s Azure® RTOS ThreadX
- USB Host i hrpe uređaja dolaze s mnogo klasa: Azure® RTOS USBX
- Napredno file sloj sustava i flash prijevoda: FileX / RazinaX
- Mrežni skup industrijske razine: optimiziran za performanse koje dolaze s mnogim IoT protokolima: NetX Duo
- OpenBootloader
- Integracijsko rješenje Arm® Trusted Firmware-M (TF‑M).
- mbed-kripto knjižnice
- Knjižnica ST Network
- STMTouch rješenje za biblioteku senzora dodira
- Nekoliko aplikacija i demonstracija koje implementiraju sve te komponente međuprograma također su dostupne u STM32CubeWBA MCU paketu.
- Izgled komponenti paketa STM32CubeWBA MCU ilustriran je na slici 1. Komponente paketa STM32CubeWBA MCU.
STM32CubeWBA arhitektura gotovaview
Rješenje paketa STM32CubeWBA MCU izgrađeno je oko tri neovisne razine koje lako međusobno djeluju kao što je opisano na slici 2. Arhitektura paketa STM32CubeWBA MCU.
Razina 0
Ova razina je podijeljena u tri podsloja:
- Paket podrške za ploču (BSP).
- Hardverski sloj apstrakcije (HAL):
- HAL periferni upravljački programi
- Niskoslojni upravljački programi
- Osnovna upotreba periferije npramples.
Paket podrške za ploču (BSP)
Ovaj sloj nudi skup API-ja u odnosu na hardverske komponente u hardverskim pločama (kao što su LCD, Audio,\ microSD™ i MEMS upravljački programi). Sastoji se od dva dijela:
- Upravljački program komponente:
Ovaj se upravljački program odnosi na vanjski uređaj na ploči, a ne na STM32 uređaj. Upravljački program komponente pruža specifične API-je vanjskim komponentama BSP upravljačkog programa i može se prenositi na bilo koju drugu ploču. - BSP drajver:
BSP upravljački program omogućuje povezivanje upravljačkih programa komponenti s određenom pločom i pruža skup jednostavnih za korištenje
Apis. Pravilo imenovanja API-ja je BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP se temelji na modularnoj arhitekturi koja omogućuje jednostavno prenošenje na bilo koji hardver jednostavnom implementacijom rutina niske razine.
Hardverski sloj apstrakcije (HAL) i niži sloj (LL)
STM32CubeWBA HAL i LL su komplementarni i pokrivaju širok raspon zahtjeva za primjenu:
- HAL upravljački programi nude funkcionalno orijentirane visoko prenosive API-je visoke razine. Krajnjem korisniku skrivaju MCU i perifernu složenost.
HAL upravljački programi pružaju generičke API-je orijentirane na više instanci, koji pojednostavljuju implementaciju korisničke aplikacije pružajući procese spremne za korištenje. Na primjerample, za komunikacijske periferne uređaje (I2S, UART i drugi), pruža API-je koji omogućuju inicijalizaciju i konfiguraciju perifernih uređaja, upravljanje prijenosom podataka na temelju anketiranja, prekidanja ili DMA procesa i rukovanje komunikacijskim pogreškama koje se mogu pojaviti tijekom komunikacije. API-ji HAL drajvera podijeljeni su u dvije kategorije:- Generički API-ji, koji pružaju zajedničke i generičke funkcije za sve mikrokontrolere serije STM32.
- API-ji proširenja koji pružaju specifične i prilagođene funkcije za određenu obitelj ili određeni broj dijela.
- API-ji niskog sloja pružaju API-je niske razine na razini registra, s boljom optimizacijom, ali manjom prenosivošću.
- Oni zahtijevaju duboko poznavanje MCU i perifernih specifikacija.
- LL upravljački programi dizajnirani su kako bi ponudili brzi i lagani sloj usmjeren na stručnjake koji je bliži hardveru od HAL-a. Suprotno HAL-u, LL API-ji nisu predviđeni za periferne uređaje gdje optimizirani pristup nije ključna značajka ili za one koji zahtijevaju tešku softversku konfiguraciju ili složeni skup više razine.
- Značajke LL drajvera:
- Skup funkcija za inicijalizaciju glavnih značajki periferije prema parametrima navedenim u podatkovnim strukturama.
- Skup funkcija za ispunjavanje inicijalizacijskih podatkovnih struktura s vrijednostima resetiranja koje odgovaraju svakom polju.
- Funkcija za deinicijalizaciju periferije (registri periferije vraćeni na zadane vrijednosti).
- Skup ugrađenih funkcija za izravan i atomski pristup registru.
- Potpuna neovisnost o HAL-u i mogućnost korištenja u samostalnom načinu rada (bez HAL drajvera).
- Potpuna pokrivenost podržanih perifernih značajki.
Osnovna upotreba periferije npramples
Ovaj sloj obuhvaća exampdatoteke izgrađene preko STM32 periferije koristeći samo HAL i BSP resurse.
Razina 1
Ova razina je podijeljena u dva podsloja:
- Komponente srednjeg softvera
- Exampdatoteke temeljene na komponentama međuprograma
Komponente srednjeg softvera
- Middleware je skup biblioteka koje pokrivaju Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot i mbed-crypto.
- Horizontalna interakcija između komponenti ovog sloja obavlja se pozivanjem istaknutih API-ja.
- Vertikalna interakcija s pogonskim programima niskog sloja obavlja se kroz specifične povratne pozive i statičke makronaredbe implementirane u sučelju poziva sustava knjižnice.
- Glavne značajke svake komponente međuopreme su sljedeće:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: operativni sustav u stvarnom vremenu (RTOS), dizajniran za ugrađene sustave s dva funkcionalna načina.
- Uobičajeni način rada: Uobičajene RTOS funkcije kao što su upravljanje nitima i sinkronizacija, upravljanje spremištem memorije, slanje poruka i rukovanje događajima.
- Način rada modula: Napredni korisnički način rada koji omogućuje učitavanje i uklanjanje unaprijed povezanih ThreadX modula u hodu putem upravitelja modula.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: operativni sustav u stvarnom vremenu (RTOS), dizajniran za ugrađene sustave s dva funkcionalna načina.
- Bluetooth® Low Energy (BLE): Implementira Bluetooth® Low Energy protokol za slojeve veze i skupa.
- MCUboot (softver otvorenog koda)
- Zigbee® protokoli za stog i povezane klastere.
- Thread® snop protokola i sloj veze.
- Arm® trusted firmware-M, TF‑M (softver otvorenog koda): Referentna implementacija sigurnosne arhitekture Arm® platforme (PSA) za TrustZone® s pripadajućim sigurnim uslugama.
- mbed-crypto (softver otvorenog koda): mbed-crypto međuprogram pruža implementaciju PSA kriptografskog API-ja.
- STM32 biblioteka senzora dodira: Robusno STMTouch kapacitivno rješenje za senzor dodira, podržava senzore blizine, dodirne tipke, linearne i rotacijske senzore dodira. Temelji se na dokazanom principu prikupljanja površinskog prijenosa naboja.
- Microsoft® Azure® RTOS
Exampdatoteke temeljene na komponentama međuprograma
Svaka komponenta međuprograma dolazi s jednim ili više exampdatoteke (koje se nazivaju i aplikacije) koje pokazuju kako se njime koristiti. Integracija pramptakođer su dostupne datoteke koje koriste nekoliko komponenti međuprograma.
Završen paket firmvera STM32CubeWBAview
Podržani uređaji i hardver serije STM32WBA
- STM32Cube nudi visoko prenosivi sloj apstrakcije hardvera (HAL) izgrađen oko generičke arhitekture. Omogućuje princip nadogradnje slojeva, kao što je korištenje međusloja za implementaciju njihovih funkcija bez dubinskog znanja koji se MCU koristi. To poboljšava mogućnost ponovne upotrebe koda knjižnice i osigurava laku prenosivost na druge uređaje.
- Osim toga, zahvaljujući svojoj slojevitoj arhitekturi, STM32CubeWBA nudi punu podršku za sve STM32WBA serije.
- Korisnik mora samo definirati pravu makronaredbu u stm32wbaxx.h.
- Tablica 1 prikazuje makro za definiranje ovisno o korištenom uređaju serije STM32WBA. Ova makronaredba također mora biti definirana u predprocesoru prevoditelja.
Tablica 1. Makronaredbe za seriju STM32WBAMakro definiran u stm32wbaxx.h Uređaji serije STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA sadrži bogat skup exampdatoteke i aplikacije na svim razinama što olakšava razumijevanje i korištenje bilo kojeg HAL upravljačkog programa ili komponenti međuprograma. Ovi bivšiamppokrenuti na STMicroelectronics pločama navedenim u tablici 2.
Tablica 2. Ploče za seriju STM32WBAOdbor Uređaji koji podržavaju ploču STM32WBA NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - STM32CubeWBA MCU paket može raditi na bilo kojem kompatibilnom hardveru. Korisnik jednostavno ažurira BSP upravljačke programe za prijenos dostavljenog exampdatoteke na ploči, ako potonja ima iste hardverske značajke (kao što su LED, LCD zaslon i gumbi).
Paket firmvera gotovview
- Rješenje paketa STM32CubeWBA dostupno je u jednom zip paketu koji ima strukturu prikazanu na slici 3. Struktura paketa firmvera STM32CubeWBA.
- Za svaku ploču, set examples je opremljen unaprijed konfiguriranim projektima za lance alata EWARM, MDK-ARM i STM32CubeIDE.
- Slika 4. STM32CubeWBA pramples overview prikazuje strukturu projekta za ploče NUCLEO‑WBA52CG, NUCLEO-WBA55CG i STM32WBA55G-DK1.
- Bivšiampdatoteke se klasificiraju ovisno o razini STM32Cube na koju se primjenjuju i nazivaju se na sljedeći način:
- Razina 0 nprample se nazivaju Examples, pramples_LL, i Examples_MIX. Koriste HAL upravljačke programe, LL upravljačke programe i mješavinu HAL i LL upravljačkih programa bez ikakve komponente međuprograma.
- Razina 1 nprampdatoteke se nazivaju Aplikacije. Oni pružaju tipične slučajeve upotrebe svake komponente međuprograma. Bilo koja firmware aplikacija za određenu ploču može se brzo izgraditi zahvaljujući projektima predložaka koji su dostupni u direktorijima Templ ates i Templates_LL.
Projekti omogućeni za TrustZone®
- TrustZone® omogućen Exampimena datoteka sadrže prefiks _TrustZone. Pravilo se također primjenjuje za aplikacije (osim za TFM i SBSFU, koji su izvorno za TrustZone®).
- TrustZone® omogućen ExampDatoteke i aplikacije imaju multiprojektnu strukturu sastavljenu od sigurnih i nesigurnih potprojekata kao što je prikazano na slici 5. Višeprojektna sigurna i nesigurna struktura projekta.
- Projekti s omogućenom TrustZone® razvijeni su prema predlošku uređaja CMSIS-5, proširenom za uključivanje zaglavlja particioniranja sustava file particija_ .h, koji je uglavnom odgovoran za postavljanje jedinice sigurnih atributa (SAU), FPU i dodjelu sigurnih/nesigurnih prekida u stanju sigurnog izvođenja.
- Ova postavka se izvodi u sigurnoj CMSIS SystemInit() funkciji, koja se poziva pri pokretanju prije ulaska u sigurnu aplikaciju main() funkciju. Pogledajte Arm® TrustZone®-M dokumentaciju softverskih smjernica.
- Paket firmware paketa STM32CubeWBA pruža zadano particioniranje memorije u particiji _ .h filedostupni su pod: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- U ovim pregradama files, SAU je onemogućen prema zadanim postavkama. Posljedično, IDAU mapiranje memorije koristi se za dodjelu sigurnosti. Pogledajte sliku Sigurno/nesigurno particioniranje pomoću tehnologije TrustZone® u referentnom priručniku RM0495.
- Ako korisnik omogući SAU, zadana konfiguracija SAU regija unaprijed je definirana u particiji files kako slijedi:
- SAU regija 0: 0x08080000 – 0x081FFFFF (nesigurna sigurna polovica flash memorije (512 Kbajta))
- SAU regija 1: 0x0BF88000 – 0x0BF97FFF (nesigurna sistemska memorija)
- SAU regija 2: 0x0C07E000 – 0x0C07FFFF (sigurno, nesigurno pozivanje)
- SAU regija 3: 0x20010000 – 0x2001FFFF (nesiguran SRAM2 (64 Kbajta))
- SAU regija 4: 0x40000000 – 0x4FFFFFFF (nesigurna periferna mapirana memorija)
- Kako bi odgovarali zadanoj particiji, uređaji serije STM32WBAxx moraju imati sljedeće postavljene bajtove korisničkih opcija:
- TZEN = 1 (uređaj koji podržava TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 od 128 stranica interne flash memorije postavljene su kao sigurne) Napomena: interna flash memorija potpuno je sigurna prema zadanim postavkama u TZEN = 1. Bajtovi korisničkih opcija SECWM1_PSTRT/ SECWM1_PEND moraju biti postavljeni prema aplikaciji konfiguracija memorije (SAU regije, ako je SAU omogućen). Povezivač projekta sigurnih/nesigurnih aplikacija files također moraju biti usklađeni.
- Sve exampimaju istu strukturu:
- Mapa \Inc koja sadrži sva zaglavlja files.
- Src mapa koja sadrži izvorni kod.
- \EWARM, \MDK-ARM i \STM32CubeIDE mape koje sadrže unaprijed konfigurirani projekt za svaki lanac alata.
- readme.md i readme.html koji opisuju exampponašanje i potrebno okruženje da bi funkcioniralo.
- ioc file koji korisnicima omogućuje otvaranje većine firmvera nprampunutar STM32CubeMX.
Prvi koraci sa STM32CubeWBA
Pokretanje prvog HAL example
Ovaj odjeljak objašnjava koliko je jednostavno pokrenuti prvi example unutar STM32CubeWBA. Kao ilustraciju koristi generiranje jednostavnog LED prekidača koji radi na NUCLEO-WBA52CG ploči:
- Preuzmite STM32CubeWBA MCU paket.
- Raspakirajte ga u direktorij po vašem izboru.
- Pazite da ne mijenjate strukturu paketa prikazanu na slici 1. Također se preporučuje kopiranje paketa na lokaciji blizu vašeg korijenskog volumena (što znači C:\ST ili G:\Tests), jer neki IDE-ovi nailaze na probleme kada staza duljina je preduga.
Pokretanje prvog omogućenog TrustZone® example
- Prije učitavanja i pokretanja omogućenog TrustZone® nprample, obavezno pročitati prample readme file za bilo koju specifičnu konfiguraciju, koja osigurava da je sigurnost omogućena kao što je opisano u Odjeljku 4.2.1 Projekti omogućeni za TrustZone® (TZEN=1 (bajt korisničke opcije)).
- Idite na \Projects\NUCLEO-WBA52CG\Examples.
- Otvorite \GPIO, zatim \GPIO_IOToggle_TrustZone mape.
- Otvorite projekt pomoću željenog lanca alata. Brzi pregledview o tome kako otvoriti, izgraditi i pokrenuti examps podržanim lancima alata dan je u nastavku.
- Redom ponovno izgradite sve sigurne i nesigurne projekte files i učitati sigurne i nesigurne slike u ciljnu memoriju.
- Pokreni example: redovito, sigurna aplikacija prebacuje LD2 svake sekunde, a nesigurna aplikacija prebacuje LD3 dvaput brže. Za više detalja pogledajte readme file od bivšegample.
- Za otvaranje, izgradnju i pokretanje exampdatoteke s podržanim lancima alata, slijedite korake u nastavku:
- EWARM:
- Pod bivšimampmapu le, otvorite podmapu \EWARM.
- Pokrenite radni prostor Project.eww
- Ponovno izgradite xxxxx_S sigurni projekt files: [Projekt]>[Ponovo izgradi sve].
- Postavite nesigurni projekt xxxxx_NS kao aktivnu aplikaciju (desni klik na projekt xxxxx_NS [Postavi kao aktivno])
- Ponovno izgradite xxxxx_NS nesigurni projekt files: [Projekt]>[Ponovo izgradi sve].
- Flash nesigurnu binarnu datoteku pomoću [Projekt]>[Preuzimanje]>[Preuzimanje aktivne aplikacije] .
- Postavite xxxxx_S kao aktivnu aplikaciju (desni klik na xxxxx_S projekt [Postavi kao aktivno].
- Flash sigurni binarni s [Preuzmi i ispravi pogreške] (Ctrl+D).
- Pokrenite program: [Debug]>[Go(F5)]
- MDK-ARM:
- Otvorite lanac alata \MDK-ARM.
- Otvorite radni prostor Multiprojects file Projekt.uvmpw.
- Odaberite projekt xxxxx_s kao aktivnu aplikaciju ([Postavi kao aktivni projekt]).
- Izgradite projekt xxxxx_s.
- Odaberite projekt xxxxx_ns kao aktivni projekt ([Postavi kao aktivni projekt]).
- Izgradite projekt xxxxx_ns.
- Učitaj nesigurnu binarnu datoteku ([F8]). Ovo preuzima \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf u flash memoriju)
- Odaberite projekt Project_s kao aktivni projekt ([Postavi kao aktivni projekt]).
- Učitajte sigurnu binarnu datoteku ([F8]). Ovo preuzima \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf u flash memoriju).
- Pokreni example.
- STM32CubeIDE:
- Otvorite lanac alata STM32CubeIDE.
- Otvorite radni prostor Multiprojects file .projekt.
- Ponovno izgradite projekt xxxxx_Secure.
- Ponovno izgradite projekt xxxxx_NonSecure.
- Pokrenite aplikaciju [Debug as STM32 Cortex-M C/C++] za sigurni projekt.
- U prozoru [Uređivanje konfiguracije] odaberite ploču [Pokretanje] i dodajte učitavanje slike i simbola nesigurnog projekta.
Važno: Nesiguran projekt mora se učitati prije sigurnog projekta. - Pritisnite [OK].
- Pokreni example u perspektivi otklanjanja pogrešaka.
- EWARM:
Pokretanje prvog TrustZone® onemogućenog example
- Prije učitavanja i pokretanja TrustZone® onemogućenog example, obavezno pročitati prample readme file za bilo koju specifičnu konfiguraciju. Ako nema posebnih napomena, provjerite je li uređaj ploče sigurnosno onemogućen (TZEN=0 (bajt korisničke opcije)). Pogledajte FAQ za izvođenje neobavezne regresije na TZEN = 0
- Idite na \Projects\NUCLEO-WBA52CG\Examples.
- Otvorite \GPIO, zatim \GPIO_EXTI mape.
- Otvorite projekt pomoću željenog lanca alata. Brzi pregledview o tome kako otvoriti, izgraditi i pokrenuti examps podržanim lancima alata dan je u nastavku.
- Obnovite sve files i učitajte svoju sliku u ciljnu memoriju.
- Pokreni example: Svaki put kada se pritisne tipka [USER], LED LD1 se prebacuje. Za više detalja pogledajte readme file od bivšegample.
- Za otvaranje, izgradnju i pokretanje exampdatoteke s podržanim lancima alata, slijedite korake u nastavku:
- EWARM:
- Pod bivšimampmapu le, otvorite podmapu \EWARM.
- Pokrenite radni prostor Project.eww (naziv radnog prostora može se promijeniti iz jednog nprample drugome).
- Obnovite sve files: [Projekt]>[Ponovo izgradi sve].
- Učitajte sliku projekta: [Projekt]>[Debug].
- Pokrenite program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod bivšimample mapu, otvorite podmapu \MDK-ARM.
- Pokrenite radni prostor Project.uvproj (naziv radnog prostora može se promijeniti iz jednog prample drugome).
- Obnovite sve files:[Projekt]>[Obnovi sve ciljeve files].
- Učitajte sliku projekta: [Debug]>[Start/Stop Debug Session].
- Pokrenite program: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Otvorite lanac alata STM32CubeIDE.
- Kliknite [File]>[Promijeni radni prostor]>[Ostalo] i potražite direktorij radnog prostora STM32CubeIDE.
- Kliknite [File]>[Uvezi] , odaberite [Općenito]>[Postojeći projekti u radni prostor], a zatim kliknite [Dalje].
- Pregledajte direktorij radnog prostora STM32CubeIDE i odaberite projekt.
- Obnovite cijeli projekt files: Odaberite projekt u prozoru [Project Explorer] i kliknite na izbornik [Project]>[Build project].
- Pokrenite program: [Pokreni]>[Debug (F11)]
- EWARM:
Izrada prilagođene aplikacije
Bilješka: Softver mora omogućiti predmemoriju instrukcija (ICACHE) kako bi se iz flash memorije izvelo stanje čekanja 0 i postigla maksimalna izvedba i bolja potrošnja energije.
Korištenje STM32CubeMX za razvoj ili ažuriranje aplikacije
- U STM32CubeWBA MCU paketu, gotovo svi projekti, nprampdatoteke se generiraju pomoću alata STM32CubeMX za inicijalizaciju sustava, perifernih uređaja i međuprograma.
- Izravna uporaba postojećeg projekta nprampdatoteka iz alata STM32CubeMX zahtijeva STM32CubeMX 6.10.0 ili noviju verziju:
- Nakon instalacije STM32CubeMX otvorite i po potrebi ažurirajte predloženi projekt. Najjednostavniji način za otvaranje postojećeg projekta je dvostruki klik na *.ioc file tako da STM32CubeMX automatski otvara projekt i njegov izvor files.
- STM32CubeMX generira izvorni kod za inicijalizaciju takvih projekata. Izvorni kod glavne aplikacije sadržan je u komentarima “POČETAK KORISNIČKE ŠIFRE” i “KRAJ KORISNIČKE ŠIFRE”. U slučaju da se IP odabir i postavka izmijene, STM32CubeMX ažurira inicijalizacijski dio koda, ali čuva izvorni kod glavne aplikacije.
- Za razvoj prilagođenog projekta u STM32CubeMX, slijedite postupak korak po korak:
- Odaberite STM32 mikrokontroler koji odgovara potrebnom skupu perifernih uređaja.
- Konfigurirajte sav potreban ugrađeni softver koristeći alat za rješavanje sukoba pinout-a, pomoćnik za postavljanje stabla sata, kalkulator potrošnje energije i pomoćni program koji obavlja konfiguraciju periferije MCU (kao što je GPIO ili USART) i međuskupine (kao što je USB).
- Generirajte inicijalizacijski C kod na temelju odabrane konfiguracije. Ovaj kod je spreman za korištenje u nekoliko razvojnih okruženja. Korisnički kod se čuva pri sljedećoj generaciji koda.
- Za više informacija o STM32CubeMX, pogledajte korisnički priručnik STM32CubeMX za STM32 konfiguraciju i generiranje C koda za inicijalizaciju (UM1718).
- Za popis dostupnih projekata nprampdatoteke za STM32CubeWBA, pogledajte bilješku o aplikaciji STM32Cube firmware exampdatoteke za seriju STM32WBA (AN5929).
Aplikacije vozača
HAL aplikacija
Ovaj odjeljak opisuje korake potrebne za stvaranje prilagođene HAL aplikacije pomoću STM32CubeWBA:
- Napravite projekt
- Da biste izradili novi projekt, počnite ili od projekta predloška koji se nalazi za svaku ploču pod \Projekti\ \Predlošci ili iz bilo kojeg dostupnog projekta pod \Projekti\ \Primjeri ili \Projekti\ \Aplikacije (gdje odnosi se na naziv ploče, kao što je STM32CubeWBA).
- Projekt Template pruža praznu funkciju glavne petlje. Međutim, to je dobra polazna točka za razumijevanje postavki projekta STM32CubeWBA. Predložak ima sljedeće karakteristike:
- Sadrži HAL izvorni kod, CMSIS i BSP upravljačke programe, koji su minimalni skup komponenti potrebnih za razvoj koda na određenoj ploči.
- Sadrži uključene staze za sve komponente firmvera.
- Definira podržane uređaje serije STM32WBA, omogućujući ispravno konfiguriranje upravljačkih programa CMSIS i HAL.
- Pruža korisniku spremnog za korištenje fileunaprijed je konfiguriran kao što je prikazano u nastavku:
HAL je inicijaliziran sa zadanom vremenskom bazom s Arm® jezgrom SysTick. SysTick ISR implementiran u svrhu HAL_Delay().
Bilješka: Prilikom kopiranja postojećeg projekta na drugo mjesto, provjerite jesu li sve uključene staze ažurirane.
- Dodavanje potrebne međuprogramske opreme korisničkom projektu (izborno)
Kako bi identificirali izvor filetreba dodati projektu file popisu, pogledajte dokumentaciju priloženu za svaki međuprogram. Pogledajte aplikacije pod \Projekti\STM32xxx_yyy\Aplikacije\ (gdje odnosi se na međuprogramski skup, kao što je ThreadX) da biste znali koji izvor files i uključite staze moraju se dodati. - Konfigurirajte komponente firmvera
Komponente HAL-a i međuprograma nude skup opcija konfiguracije za vrijeme izrade pomoću makronaredbi #define deklariranih u zaglavlju file. Konfiguracija predloška file nalazi se unutar svake komponente, koja se mora kopirati u mapu projekta (obično konfiguracija file zove se xxx_conf_template.h, riječ _template treba ukloniti prilikom kopiranja u mapu projekta). Konfiguracija file pruža dovoljno informacija za razumijevanje utjecaja svake opcije konfiguracije. Detaljnije informacije dostupne su u dokumentaciji priloženoj za svaku komponentu. - Pokrenite HAL knjižnicu
Nakon prelaska na glavni program, kod aplikacije mora pozvati HAL_Init() API za inicijalizaciju HAL biblioteke, koja obavlja sljedeće zadatke:- Konfiguracija prethodnog dohvaćanja flash memorije i SysTick prioriteta prekida (kroz makronaredbe definirane u st. m32wbaxx_hal_conf.h).
- Konfiguracija SysTick-a za generiranje prekida svake milisekunde na SysTick prioritetu prekida TICK_INT_PRIO definiranom u stm32wbaxx_hal_conf.h.
- Postavljanje prioriteta NVIC grupe na 0.
- Poziv HAL_MspInit() funkcije povratnog poziva definirane u korisniku stm32wbaxx_hal_msp.c file za izvođenje globalnih hardverskih inicijalizacija niske razine.
- Konfigurirajte sat sustava
Konfiguracija sata sustava obavlja se pozivanjem dvaju API-ja opisanih u nastavku:- HAL_RCC_OscConfig(): ovaj API konfigurira unutarnje i vanjske oscilatore. Korisnik odabire konfiguraciju jednog ili svih oscilatora.
- HAL_RCC_ClockConfig(): ovaj API konfigurira izvor takta sustava, latenciju flash memorije i AHB i APB predskalere.
- Inicijalizirajte periferiju
- Prvo napišite perifernu funkciju HAL_PPP_MspInit. Postupite na sljedeći način:
- Omogućite periferni sat.
- Konfigurirajte periferne GPIO-ove.
- Konfigurirajte DMA kanal i omogućite DMA prekid (ako je potrebno).
- Omogućite periferni prekid (ako je potrebno).
- Uredite stm32xxx_it.c za pozivanje potrebnih rukovatelja prekidima (periferni i DMA), ako je potrebno.
- Završite funkcije povratnog poziva procesa pisanja, ako se planira koristiti periferni prekid ili DMA.
- U user main.c file, inicijalizirajte strukturu rukovanja periferije, a zatim pozovite funkciju HAL_PPP_Init() za inicijalizaciju periferije.
- Prvo napišite perifernu funkciju HAL_PPP_MspInit. Postupite na sljedeći način:
- Razviti aplikaciju
- Na ovom stage, sustav je spreman i razvoj koda korisničke aplikacije može započeti.
- HAL pruža intuitivne i spremne API-je za konfiguriranje periferije. Podržava anketiranje, prekide i DMA programski model, kako bi se prilagodili svim zahtjevima aplikacije. Za više pojedinosti o tome kako koristiti svaku periferiju, pogledajte rich exampset koji se nalazi u paketu STM32CubeWBA MCU.
Oprez: U zadanoj implementaciji HAL-a, SysTick timer se koristi kao vremenska baza: on generira prekide u pravilnim vremenskim intervalima. Ako se HAL_Delay() pozove iz perifernog ISR procesa, provjerite ima li SysTick prekid viši prioritet (numerički manji) od perifernog prekida. U suprotnom, ISR proces pozivatelja je blokiran. Funkcije koje utječu na konfiguracije vremenske baze deklarirane su kao __slabe kako bi se omogućilo nadjačavanje u slučaju drugih implementacija u korisniku file (pomoću mjerača vremena opće namjene, nprample, ili drugi izvor vremena). Za više detalja, pogledajte HAL_TimeBase example.
LL aplikacija
Ovaj odjeljak opisuje korake potrebne za stvaranje prilagođene LL aplikacije pomoću STM32CubeWBA.
- Napravite projekt
- Da biste stvorili novi projekt, počnite od Templates_LL projekta koji se nalazi za svaku ploču pod \Projekti\ \Templates_LL, ili iz bilo kojeg dostupnog projekta pod \Projekti\ \Npramples_LL ( odnosi se na naziv ploče, kao što je NUCLEO-WBA32CG).
- Predložak projekta pruža praznu funkciju glavne petlje, što je dobra polazna točka za razumijevanje postavki projekta za STM32CubeWBA. Glavne karakteristike predloška su sljedeće:
- Sadrži izvorne kodove LL i CMSIS drajvera, koji su minimalni skup komponenti potrebnih za razvoj koda na određenoj ploči.
- Sadrži uključene staze za sve potrebne komponente firmvera.
- Odabire podržani uređaj serije STM32WBA i omogućuje ispravnu konfiguraciju CMSIS i LL upravljačkih programa.
- Pruža korisniku spremno za korištenje filekoji su unaprijed konfigurirani na sljedeći način:
◦ main.h: sloj apstrakcije definicije LED-a i USER_BUTTON-a.
◦ main.c: Konfiguracija takta sustava za maksimalnu frekvenciju.
- Prijenos postojećeg projekta na drugu ploču
Da biste podržali postojeći projekt na drugoj ciljnoj ploči, počnite od Templates_LL projekta koji je dostupan za svaku ploču i dostupan pod \Projekti\ \Predlošci_LL.- Odaberite LL example: pronaći ploču na kojoj je LL exampdatoteke su raspoređene, pogledajte popis LL examples STM32CubeProjectsList.html.
- Priključak LL exampono:
- Kopirajte/zalijepite mapu Templates_LL – kako biste zadržali početni izvor – ili izravno ažurirajte postojeći Templates_LL projekt.
- Zatim se prijenos uglavnom sastoji od zamjene Templates_LL files od strane Examples_LL ciljani projekt.
- Zadržite sve dijelove specifične za ploču. Radi jasnoće, specifični dijelovi ploče označeni su posebnim tags:
- Stoga su glavni koraci prijenosa sljedeći:
- Zamijenite stm32wbaxx_it.h file
- Zamijenite stm32wbaxx_it.c file
- Zamijenite glavni.h file i ažurirajte ga: Zadržite definiciju LED-a i korisničkog gumba LL predloška pod SPECIFIČNOM KONFIGURACIJOM PLOČE tags.
- Zamijenite glavni.c file i ažurirajte ga:
- Zadržite konfiguraciju sata funkcije predloška SystemClock_Config() LL pod SPECIFIČNOM KONFIGURACIJOM PLOČE tags.
- Ovisno o LED definiciji, zamijenite svako pojavljivanje LDx drugim LDy dostupnim u main.h file.
- S ovim izmjenama, example sada radi na ciljanoj ploči
Sigurnosne aplikacije
Ovaj paket se isporučuje sa sigurnosnim aplikacijama.
SBSFU aplikacije
- SBSFU pruža rješenje Root of Trust, uključujući funkcije Secure Boot i Secure Firmware Update (temeljene na MCUboot).
- Rješenje se koristi prije izvršenja aplikacije.
- Rješenje daje exampsigurne usluge (GPIO prekidač), koja je izolirana od nesigurne aplikacije. Nesigurna aplikacija tijekom izvođenja i dalje može koristiti ovo rješenje.
TFM aplikacije
TFM pruža rješenje Root of Trust uključujući funkcije sigurnog pokretanja i sigurnog ažuriranja firmvera
(na temelju MCUboot). Rješenje se koristi prije izvršenja aplikacije. Rješenje pruža TFM sigurne usluge koje su izolirane od nesigurne aplikacije. Nesigurna aplikacija tijekom izvođenja i dalje može koristiti ovo rješenje.
RF aplikacije
RF aplikacija opisana je u ovoj bilješci o aplikaciji: Izrada bežičnih aplikacija s mikrokontrolerima serije STM32WBA (AN5928).
Dobivanje ažuriranja izdanja STM32CubeWBA
Najnovija izdanja paketa STM32CubeWBA MCU i zakrpe dostupne su u seriji STM32WBA. Mogu se dohvatiti s gumba PROVJERI ZA AŽURIRANJE u STM32CubeMX. Za više detalja, pogledajte odjeljak 3 korisničkog priručnika STM32CubeMX za STM32 konfiguraciju i generiranje C koda za inicijalizaciju (UM1718).
FAQ
- Kada trebam koristiti HAL umjesto LL drajvera?
- HAL upravljački programi nude API-je visoke razine i funkcionalno orijentirane, s visokom razinom prenosivosti. Složenost proizvoda ili periferije skrivena je za krajnje korisnike.
- LL upravljački programi nude API-je niske razine registra, s boljom optimizacijom, ali manje prenosivi. Oni zahtijevaju dubinsko poznavanje proizvoda ili IP specifikacija.
- Mogu li koristiti HAL i LL upravljačke programe zajedno? Ako mogu, koja su ograničenja?
- Moguće je koristiti i HAL i LL upravljačke programe. Upotrijebite HAL za fazu IP inicijalizacije i zatim upravljajte I/O operacijama pomoću LL upravljačkih programa.
- Glavna razlika između HAL-a i LL-a je u tome što HAL upravljački programi zahtijevaju stvaranje i korištenje ručica za upravljanje operacijama, dok LL upravljački programi rade izravno na perifernim registrima. Bivšiamples_MIX prample ilustrira kako pomiješati HAL i LL.
- Kako su LL inicijalizacijski API-ji omogućeni?
- Definicija API-ja za inicijalizaciju LL-a i pridruženih resursa (strukture, literali i prototipovi) uvjetovana je sklopkom USE_FULL_LL_DRIVER kompilacije.
- Da biste mogli koristiti API-je za inicijalizaciju LL-a, dodajte ovaj prekidač u predprocesor alatnog prevoditelja.
- Kako STM32CubeMX može generirati kod temeljen na ugrađenom softveru?
STM32CubeMX ima ugrađeno znanje o STM32 mikrokontrolerima, uključujući njihove periferije i softver koji omogućuje pružanje grafičkog prikaza korisniku i generiranje *.h ili *.c filena temelju korisničke konfiguracije.
VAŽNA OBAVIJEST – PAŽLJIVO PROČITAJTE
- STMicroelectronics NV i njegove podružnice ("ST") zadržavaju pravo izmjene, ispravke, poboljšanja, preinake i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije narudžbe. Proizvodi ST-a prodaju se u skladu s odredbama i uvjetima prodaje ST-a koji su na snazi u trenutku potvrde narudžbe.
- Kupci su isključivo odgovorni za izbor, izbor i korištenje ST proizvoda i ST ne preuzima nikakvu odgovornost za pomoć pri primjeni ili dizajn proizvoda kupaca.
- ST ovdje ne daje nikakvu licencu, izričitu ili implicitnu, za bilo koje pravo intelektualnog vlasništva.
- Preprodaja ST proizvoda s odredbama različitim od ovdje navedenih informacija poništit će svako jamstvo koje je ST dao za takav proizvod.
- ST i ST logo su zaštitni znakovi tvrtke ST. Dodatne informacije o zaštitnim znakovima ST potražite na www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
- Informacije u ovom dokumentu nadziru i zamjenjuju informacije prethodno navedene u bilo kojoj od prethodnih verzija ovog dokumenta.
- © 2023 STMicroelectronics – Sva prava pridržana
Dokumenti / Resursi
![]() |
STMicroelectronics STM32WBA serija Prvi koraci [pdf] Korisnički priručnik Serija STM32WBA Početak, početak, početak |