STMicroelectronics STM32WBA serija Početak
Informacije o proizvodu
specifikacije:
- Naziv proizvoda: STM32CubeWBA MCU paket
- Proizvođač: STMicroelectronics
- Kompatibilnost: STM32WBA serija mikrokontrolera
- Licenciranje: BSD licenca otvorenog koda
Upute za upotrebu proizvoda
Glavne karakteristike STM32CubeWBA MCU paketa:
STM32CubeWBA MCU paket pruža sve potrebne ugrađene softverske komponente za razvoj aplikacija na mikrokontrolerima serije STM32WBA. Veoma je prenosiv unutar STM32 serije i dolazi sa HAL i LL API-jima, nprampdatoteke i komponente međuopreme.
Architecture Overview:
Arhitektura STM32CubeWBA MCU paketa sastoji se od tri nivoa – aplikacije, komponente zasnovane na biblioteci i protokolu, sloj apstrakcije hardvera, BSP drajveri, upravljački programi za jezgro i API-ji niskog sloja.
FAQ
- Šta je uključeno u STM32CubeWBA MCU paket?
Paket uključuje API-je niskog sloja (LL) i sloja apstrakcije hardvera (HAL), nprampdatoteke, aplikacije, komponente srednjeg softvera kao što su FileX/LevelX, NetX Duo, mbed-crypto biblioteke i još mnogo toga. - Da li je STM32CubeWBA MCU paket kompatibilan sa STM32CubeMX generatorom kodova?
Da, paket je potpuno kompatibilan sa STM32CubeMX generatorom koda za generisanje inicijalizacionog koda.
Uvod
- STM32Cube je originalna inicijativa STMicroelectronics za značajno poboljšanje produktivnosti dizajnera smanjenjem truda, vremena i troškova razvoja. STM32Cube pokriva čitav STM32 portfolio.
STM32Cube uključuje:- Skup alata za razvoj softvera prilagođenih korisniku koji pokrivaju razvoj projekta od ideje do realizacije, među kojima su:
- STM32CubeMX, grafički softverski alat za konfiguraciju koji omogućava automatsko generiranje C koda za inicijalizaciju pomoću grafičkih čarobnjaka
- STM32CubeIDE, sve-u-jednom razvojni alat s perifernom konfiguracijom, generiranjem koda, kompilacijom koda i funkcijama za otklanjanje grešaka
- STM32CubeCLT, sve-u-jednom skup alata za razvoj naredbenog retka sa kompilacijom koda, programiranjem ploče i funkcijama za otklanjanje grešaka
- STM32CubeProgrammer (STM32CubeProg), alat za programiranje dostupan u grafičkim verzijama i verzijama sa komandne linije
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), moćni alati za praćenje za fino podešavanje ponašanja i performansi STM32 aplikacija u realnom vremenu
- STM32Cube MCU i MPU paketi, sveobuhvatne platforme ugrađenog softvera specifične za svaku seriju mikrokontrolera i mikroprocesora (kao što je STM32CubeWBA za seriju STM32WBA), koje uključuju:
- STM32Cube hardverski apstrakcijski sloj (HAL), osiguravajući maksimalnu prenosivost kroz STM32 portfolio
- STM32Cube API-ji niskog sloja, koji osiguravaju najbolje performanse i otiske uz visok stepen korisničke kontrole nad hardverom
- Konzistentan skup komponenti međuvera kao što je ThreadX, FileX / LevelX, NetX Duo, USBX, touch biblioteka, 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 examples
- STM32Cube paketi proširenja, koji sadrže ugrađene softverske komponente koje dopunjuju funkcionalnost STM32Cube MCU i MPU paketa sa:
- Proširenja međuvera i aplikativni slojevi
- Exampleže rade na nekim specifičnim razvojnim pločama STMicroelectronics
- Skup alata za razvoj softvera prilagođenih korisniku koji pokrivaju razvoj projekta od ideje do realizacije, među kojima su:
- Ovaj korisnički priručnik opisuje kako započeti s STM32CubeWBA MCU paketom.
- Odjeljak 2 Glavne karakteristike STM32CubeWBA opisuje glavne karakteristike STM32CubeWBA MCU paketa.
- Odjeljak 3 STM32CubeWBA arhitektura je završenaview pruža prekoview arhitekture STM32CubeWBA i strukture MCU paketa.
Opće informacije
STM32CubeWBA MCU paket radi na STM32 32-bitnim mikrokontrolerima baziranim na Arm® Cortex®-M33 procesoru sa Arm® TrustZone® i FPU.
Napomena: Arm i TrustZone su registrovani zaštitni znakovi kompanije Arm Limited (ili njenih podružnica) u SAD-u i/ili drugdje.
Glavne karakteristike STM32CubeWBA
- STM32CubeWBA MCU paket radi na STM32 32-bitnim mikrokontrolerima baziranim na Arm® Cortex®-M33 procesoru sa TrustZone® i FPU.
- STM32CubeWBA okuplja, u jednom paketu, sve generičke ugrađene softverske komponente potrebne za razvoj aplikacije za STM32WBA seriju mikrokontrolera. U skladu sa inicijativom STM32Cube, ovaj set komponenti je veoma prenosiv, ne samo u okviru mikrokontrolera serije STM32WBA, već i na druge STM32 serije.
- STM32CubeWBA je potpuno kompatibilan sa generatorom koda STM32CubeMX za generiranje inicijalizacionog koda. Paket uključuje API-je niskog sloja (LL) i sloja apstrakcije hardvera (HAL) koji pokrivaju hardver mikrokontrolera, zajedno sa opsežnim skupom exampleže rade na STMicroelectronics pločama. HAL i LL API-ji su dostupni u BSD licenci otvorenog koda radi praktičnosti korisnika.
- STM32CubeWBA MCU paket takođe sadrži sveobuhvatnu komponentu međuopreme konstruisanu oko Microsoft® Azure® RTOS međuvera, i drugih internih i open-source stekova, sa odgovarajućim examples.
- Dolaze sa besplatnim, korisničkim licencnim uslovima:
- Integrisani i potpuno opremljeni Azure® RTOS: Azure® RTOS ThreadX
- Implementacija CMSIS-RTOS-a sa Azure® RTOS ThreadX
- USB host i uređaji dolaze sa mnogim klasama: Azure® RTOS USBX
- Napredno file sistem i fleš prevodni sloj: FileX / NivoX
- Mrežni stog industrijske klase: optimiziran za performanse koji dolaze s mnogim IoT protokolima: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF‑M) rješenje za integraciju
- mbed-crypto biblioteke
- ST Network Library
- STMTouch rješenje biblioteke osjetljive na dodir
- Nekoliko aplikacija i demonstracija koje implementiraju sve ove komponente međuverskog softvera takođe su obezbeđene u STM32CubeWBA MCU paketu.
- Izgled komponente STM32CubeWBA MCU paketa je ilustrovan na Slici 1. Komponente STM32CubeWBA MCU paketa.
STM32CubeWBA arhitektura je završenaview
Rješenje STM32CubeWBA MCU paketa je izgrađeno oko tri nezavisna nivoa koji lako stupaju u interakciju kao što je opisano na slici 2. Arhitektura STM32CubeWBA MCU paketa.
Nivo 0
Ovaj nivo je podeljen na tri podsloja:
- Paket podrške za ploče (BSP).
- Sloj hardverske apstrakcije (HAL):
- HAL periferni drajveri
- Drajveri niskog sloja
- 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 drajveri). Sastoji se iz dva dela:
- Drajver komponente:
Ovaj drajver se odnosi na eksterni uređaj na ploči, a ne na STM32 uređaj. Upravljački program komponente pruža specifične API-je vanjskim komponentama BSP drajvera i može biti prenosiv na bilo koju drugu ploču. - BSP vozač:
BSP drajver omogućava povezivanje drajvera komponenti sa određenom pločom, i pruža set jednostavnih za korišćenje
API-ji. Pravilo imenovanja API-ja je BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP je baziran na modularnoj arhitekturi koja omogućava lako prenošenje na bilo koji hardver samo implementacijom rutina niskog nivoa.
Hardverski apstrakcijski sloj (HAL) i niski sloj (LL)
STM32CubeWBA HAL i LL su komplementarni i pokrivaju širok spektar zahtjeva primjene:
- HAL drajveri nude visoko prenosive API-je koji su orijentisani ka funkcijama. Oni skrivaju MCU i perifernu složenost krajnjem korisniku.
HAL drajveri pružaju generičke multi-instance orijentisane API-je, koji pojednostavljuju implementaciju korisničke aplikacije obezbeđujući procese spremne za upotrebu. Za nprampZa komunikacijske periferije (I2S, UART i druge), pruža API-je koji omogućavaju inicijalizaciju i konfiguraciju periferije, upravljanje prijenosom podataka na osnovu prozivanja, prekidanja ili DMA procesa i rukovanje komunikacijskim greškama koje mogu nastati tokom komunikacije. API-ji HAL drajvera su podijeljeni u dvije kategorije:- Generički API-ji, koji pružaju zajedničke i generičke funkcije svim mikrokontrolerima serije STM32.
- API-ji proširenja, koji pružaju specifične i prilagođene funkcije za određenu porodicu ili određeni broj dijela.
- API-ji niskog sloja pružaju API-je niskog nivoa na nivou registra, sa boljom optimizacijom, ali manje prenosivosti.
- Oni zahtijevaju duboko poznavanje MCU i perifernih specifikacija.
- LL drajveri su dizajnirani da ponude brzi lagani sloj orijentisan na stručnjake koji je bliži hardveru od HAL-a. Za razliku od HAL-a, LL API-ji nisu obezbeđeni za periferne uređaje gde optimizovani pristup nije ključna karakteristika, ili za one koji zahtevaju tešku softversku konfiguraciju ili složeni stek višeg nivoa.
- Funkcija drajvera LL:
- Skup funkcija za inicijalizaciju perifernih glavnih karakteristika prema parametrima navedenim u strukturama podataka.
- Skup funkcija za popunjavanje inicijalizacijskih struktura podataka s vrijednostima resetovanja koje odgovaraju svakom polju.
- Funkcija za deinicijalizaciju periferije (periferni registri vraćeni na njihove zadane vrijednosti).
- Skup inline funkcija za direktan i atomski pristup registrima.
- Potpuna nezavisnost od HAL-a i mogućnost korištenja u samostalnom načinu rada (bez HAL drajvera).
- Potpuna pokrivenost podržanih perifernih funkcija.
Osnovna upotreba periferije npramples
Ovaj sloj obuhvata exampdatoteke izgrađene preko STM32 perifernih uređaja koristeći samo HAL i BSP resurse.
Nivo 1
Ovaj nivo je podeljen na dva podsloja:
- Middleware komponente
- Exampdatoteke zasnovane na komponentama međuvera
Middleware komponente
- 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 se vrši pozivanjem istaknutih API-ja.
- Vertikalna interakcija sa drajverima niskog sloja se vrši kroz specifične povratne pozive i statičke makroe implementirane u interfejs poziva sistema biblioteke.
- Glavne karakteristike svake komponente srednjeg softvera su sljedeće:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Operativni sistem u realnom vremenu (RTOS), dizajniran za ugrađene sisteme sa dva funkcionalna režima.
- Zajednički način rada: Uobičajene RTOS funkcije kao što su upravljanje nitima i sinhronizacija, upravljanje memorijskim spremištem, razmjena poruka i rukovanje događajima.
- Modul mod: Napredni korisnički način koji omogućava učitavanje i istovar prethodno povezanih ThreadX modula u hodu putem upravitelja modula.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Operativni sistem u realnom vremenu (RTOS), dizajniran za ugrađene sisteme sa dva funkcionalna režima.
- Bluetooth® Low Energy (BLE): Implementira Bluetooth® Low Energy protokol za slojeve veze i steka.
- MCUboot (softver otvorenog koda)
- Zigbee® protokoli za stek i povezane klastere.
- Thread® stog protokola i sloj veze.
- Arm® pouzdani firmware-M, TF‑M (softver otvorenog koda): Referentna implementacija sigurnosne arhitekture Arm® platforme (PSA) za TrustZone® sa pripadajućim sigurnim uslugama.
- mbed-crypto (softver otvorenog koda): mbed-crypto middleware 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. Zasnovan je na dokazanom principu akvizicije prijenosa površinskog naboja.
- Microsoft® Azure® RTOS
Exampdatoteke zasnovane na komponentama međuvera
Svaka komponenta srednjeg softvera dolazi sa jednim ili više examples (koji se nazivaju i aplikacije) koji pokazuje kako ga koristiti. Integracija prampDostupne su i datoteke koje koriste nekoliko komponenti međuverskog softvera.
STM32CubeWBA paket firmvera je završenview
Podržani uređaji i hardver serije STM32WBA
- STM32Cube nudi visoko prenosivi sloj apstrakcije hardvera (HAL) izgrađen oko generičke arhitekture. Omogućava princip slojeva nadograđivanja, kao što je korištenje međuverskog sloja za implementaciju njihovih funkcija bez detaljnog saznanja koji se MCU koristi. Ovo poboljšava ponovnu upotrebu koda biblioteke i osigurava laku prenosivost na druge uređaje.
- Osim toga, zahvaljujući svojoj slojevitoj arhitekturi, STM32CubeWBA nudi punu podršku za sve serije STM32WBA.
- Korisnik samo treba da definiše pravi makro u stm32wbaxx.h.
- Tabela 1 prikazuje makro koji treba definirati ovisno o korištenom uređaju serije STM32WBA. Ovaj makro također mora biti definiran u pretprocesoru kompajlera.
Tabela 1. Makroi za STM32WBA serijuMakro definiran u stm32wbaxx.h Uređaji serije STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA ima bogat skup exampdatoteke i aplikacije na svim nivoima što olakšava razumijevanje i korištenje bilo kojeg HAL drajvera ili komponenti međuvera. Ove examprade na STMicroelectronics pločama navedenim u Tabeli 2.
Tabela 2. Ploče za seriju STM32WBABoard Ploča STM32WBA podržani uređaji 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 drajvere kako bi prenio dati exampdatoteke na ploči, ako potonji ima iste hardverske karakteristike (kao što su LED, LCD ekran i dugmad).
Firmware paket je gotovview
- Rješenje paketa STM32CubeWBA se nalazi u jednom zip paketu koji ima strukturu prikazanu na slici 3. Struktura paketa firmvera STM32CubeWBA.
- Za svaku ploču, set examples ima unapred konfigurisane projekte za EWARM, MDK-ARM i STM32CubeIDE lance alata.
- Slika 4. STM32CubeWBA pramples overview prikazuje strukturu projekta za ploče NUCLEO‑WBA52CG, NUCLEO-WBA55CG i STM32WBA55G-DK1.
- Bivšiample-ovi su klasifikovani u zavisnosti od nivoa STM32Cube na koji se primenjuju, a nazivaju se na sledeći način:
- Nivo 0 pramplesovi se zovu Examples, pramples_LL, i pramples_MIX. Oni koriste HAL drajvere, LL drajvere i mešavinu HAL i LL drajvera bez ikakve komponente međuverskog softvera.
- Nivo 1 prampdatoteke se zovu aplikacije. Oni pružaju tipične slučajeve upotrebe svake komponente međuopreme. Bilo koja aplikacija firmvera za datu ploču može se brzo izgraditi zahvaljujući šablonskim projektima dostupnim u direktorijumima Templates i Templates_LL.
Projekti koji podržavaju TrustZone®
- TrustZone® omogućen Exampimena datoteka sadrže prefiks _TrustZone. Pravilo se također primjenjuje na aplikacije (osim za TFM i SBSFU, koji su izvorno za TrustZone®).
- TrustZone®-omogućen Examplesovi i aplikacije imaju višeprojektnu strukturu sastavljenu od sigurnih i nebezbednih potprojekata kao što je prikazano na slici 5. Višeprojektna sigurna i nesigurna struktura projekta.
- Projekti koji podržavaju TrustZone® razvijeni su prema CMSIS-5 predlošku uređaja, proširenom uključivanjem zaglavlja particioniranja sistema file partition_ .h, koji je uglavnom odgovoran za postavljanje bezbedne atributne jedinice (SAU), FPU i dodelu bezbednih/nebezbednih prekida u stanju bezbednog izvršavanja.
- Ovo podešavanje se izvodi u sigurnoj funkciji CMSIS SystemInit(), koja se poziva pri pokretanju prije ulaska u funkciju main() sigurne aplikacije. Pogledajte dokumentaciju Arm® TrustZone®-M za softverske smjernice.
- Paket firmvera paketa STM32CubeWBA obezbeđuje podrazumevano particionisanje memorije na particiji _ .h filedostupno pod: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- U ovoj particiji files, SAU je po defaultu onemogućen. Prema tome, IDAU memorijsko mapiranje se koristi za sigurnosnu atribuciju. Pogledajte sliku Sigurno/nebezbedno particionisanje pomoću tehnologije TrustZone® u referentnom priručniku RM0495.
- Ako korisnik omogući SAU, zadana konfiguracija SAU regija je unaprijed definirana u particiji files kako slijedi:
- SAU regija 0: 0x08080000 – 0x081FFFFF (nesigurna polovina fleš memorije (512 kbajta))
- SAU regija 1: 0x0BF88000 – 0x0BF97FFF (nesigurna sistemska memorija)
- SAU regija 2: 0x0C07E000 – 0x0C07FFFF (sigurno, nesiguran poziv)
- SAU regija 3: 0x20010000 – 0x2001FFFF (nesigurni SRAM2 (64 kbajta))
- SAU regija 4: 0x40000000 – 0x4FFFFFFF (nesigurna periferna mapirana memorija)
- Da bi odgovarali zadanoj particiji, uređaji serije STM32WBAxx moraju imati postavljene sljedeće bajtove korisničke opcije:
- TZEN = 1 (uređaj s omogućenom TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 od 128 stranica interne fleš memorije postavljene kao bezbedne) Napomena: Interna fleš memorija je potpuno zaštićena prema zadanim postavkama u TZEN = 1. Bajtovi korisničke opcije SECWM1_PSTRT/ SECWM1_PEND aplikacija mora biti podešena prema konfiguracija memorije (SAU regioni, ako je SAU omogućen). Povezivač projekta sigurnih/nebezbednih aplikacija files također moraju biti poravnati.
- Svi exampimaju istu strukturu:
- \Inc folder koji sadrži sva zaglavlja files.
- Src folder koji sadrži izvorni kod.
- \EWARM, \MDK-ARM i \STM32CubeIDE folderi koji sadrže unaprijed konfigurirani projekat za svaki lanac alata.
- readme.md i readme.html koji opisuju exampponašanje i potrebno okruženje da bi to funkcioniralo.
- ioc file koji omogućava korisnicima da otvore većinu firmvera npramples unutar STM32CubeMX.
Početak rada sa STM32CubeWBA
Izvođenje prvog HAL example
Ovaj odjeljak objašnjava kako je jednostavno pokrenuti prvi example u okviru STM32CubeWBA. Kao ilustraciju koristi generisanje jednostavnog LED prekidača koji radi na ploči NUCLEO-WBA52CG:
- 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 lokaciju blizu vašeg korijenskog volumena (što znači C:\ST ili G:\Tests), jer neki IDE nailaze na probleme kada putanja dužina je predugačka.
Pokretanje prvog TrustZone® omogućenog nprample
- Prije učitavanja i pokretanja TrustZone® omogućene nprample, obavezno je 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 sa omogućenom TrustZone® (TZEN=1 (bajt korisničke opcije)).
- Idite na \Projekti\NUCLEO-WBA52CG\Examples.
- Otvorite \GPIO, a zatim \GPIO_IOToggle_TrustZone foldere.
- Otvorite projekat sa vašim željenim lancem alata. Brzi krajview o tome kako otvoriti, izgraditi i pokrenuti example sa podržanim lancima alata dat je u nastavku.
- Ponovo izgradite u nizu sve sigurne i nebezbedne projekte files i učitajte sigurne i nesigurne slike u ciljnu memoriju.
- Pokreni example: redovno, bezbedna aplikacija prebacuje LD2 svake sekunde, a nesigurna aplikacija uključuje LD3 dvostruko brže. Za više detalja, pogledajte readme file bivšegample.
- Da otvorite, napravite i pokrenete exampsa podržanim lancima alata, slijedite dolje navedene korake:
- EWARM:
- Pod exampu folderu, otvorite podfolder \EWARM.
- Pokrenite radni prostor Project.eww
- Ponovo izgradite xxxxx_S siguran projekat files: [Projekat]>[Ponovo izgradi sve].
- Postavite nebezbedni projekat xxxxx_NS kao aktivnu aplikaciju (desni klik na xxxxx_NS projekat [Postavi kao aktivan])
- Ponovo izgradite xxxxx_NS nebezbedni projekat files: [Projekat]>[Ponovo izgradi sve].
- Fleširajte nebezbedni binarni fajl sa [Projekat]>[Preuzmi]>[Preuzmi aktivnu aplikaciju] .
- Postavite xxxxx_S kao aktivnu aplikaciju (desni klik na xxxxx_S projekat [Set as Active].
- Fleširajte sigurnu binarnu datoteku sa [Download and Debug] (Ctrl+D).
- Pokrenite program: [Debug]>[Go(F5)]
- MDK-ARM:
- Otvorite \MDK-ARM lanac alata.
- Otvorite radni prostor Multiprojects file Project.uvmpw.
- Odaberite projekt xxxxx_s kao aktivnu aplikaciju ([Set as Active Project]).
- Napravite xxxxx_s projekat.
- Odaberite projekt xxxxx_ns kao aktivan projekt ([Set as Active Project]).
- Napravite xxxxx_ns projekat.
- Učitajte nebezbedni binarni fajl ([F8]). Ovo preuzima \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf u fleš memoriju)
- Odaberite projekt Project_s kao aktivan projekt ([Set as Active Project]).
- Učitajte sigurnu binarnu datoteku ([F8]). Ovo preuzima \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf u fleš memoriju).
- Pokreni example.
- STM32CubeIDE:
- Otvorite lanac alata STM32CubeIDE.
- Otvorite radni prostor Multiprojects file .projekt.
- Ponovo izgradite xxxxx_Secure projekat.
- Ponovo izgradite xxxxx_NonSecure projekat.
- Pokrenite aplikaciju [Debug as STM32 Cortex-M C/C++] za siguran projekat.
- U prozoru [Uredi konfiguraciju] odaberite panel [Pokretanje] i dodajte učitavanje slike i simbola nesigurnog projekta.
Važno: Nesiguran projekat mora biti učitan prije sigurnog projekta. - Kliknite na [OK].
- Pokreni example on debug perspective.
- EWARM:
Pokretanje prvog TrustZone® onemogućenog nprample
- Prije učitavanja i pokretanja TrustZone® onemogućenog nprample, obavezno je pročitati prample readme file za bilo koju konfiguraciju. Ako nema posebnih pomena, osigurajte da uređaj na ploči ima onemogućenu sigurnost (TZEN=0 (bajt korisničke opcije)). Pogledajte FAQ za vršenje opcione regresije na TZEN = 0
- Idite na \Projekti\NUCLEO-WBA52CG\Examples.
- Otvorite \GPIO, a zatim \GPIO_EXTI foldere.
- Otvorite projekat sa vašim željenim lancem alata. Brzi krajview o tome kako otvoriti, izgraditi i pokrenuti example sa podržanim lancima alata dat je u nastavku.
- Rebuild all files i učitajte svoju sliku u ciljnu memoriju.
- Pokreni example: Svaki put kada se pritisne dugme [USER], LD1 LED se prebacuje. Za više detalja, pogledajte readme file bivšegample.
- Da otvorite, napravite i pokrenete exampsa podržanim lancima alata, slijedite dolje navedene korake:
- EWARM:
- Pod exampu folderu, otvorite podfolder \EWARM.
- Pokrenite radni prostor Project.eww (ime radnog prostora može se promijeniti iz jednog example do drugog).
- Rebuild all files: [Projekat]>[Ponovo izgradi sve].
- Učitajte sliku projekta: [Projekt]>[Debug].
- Pokrenite program: [Debug]>[Go (F5)].
- MDK-ARM:
- Pod exampu folderu, otvorite podfolder \MDK-ARM.
- Pokrenite radni prostor Project.uvproj (ime radnog prostora može se promijeniti iz jednog example do drugog).
- Rebuild all files:[Projekat]>[Ponovo izgradi sve mete files].
- Učitajte sliku projekta: [Debug]>[Start/Stop Debug Session].
- Pokrenite program: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Otvorite lanac alata STM32CubeIDE.
- Kliknite [File]>[Switch Workspace]>[Other] i pretražite STM32CubeIDE direktorij radnog prostora.
- Kliknite [File]>[Uvoz] , odaberite [Općenito]>[Postojeći projekti u radni prostor], a zatim kliknite [Dalje].
- Dođite do direktorija radnog prostora STM32CubeIDE i odaberite projekt.
- Ponovo izgradite sav projekat files: Odaberite projekat u prozoru [Project Explorer], a zatim kliknite na meni [Projekt]>[Build project].
- Pokrenite program: [Run]>[Debug (F11)]
- EWARM:
Razvoj prilagođene aplikacije
Napomena: Softver mora omogućiti keš instrukcija (ICACHE) da dobije izvršenje 0 stanja čekanja iz flash memorije i postigne maksimalne performanse i bolju potrošnju energije.
Korištenje STM32CubeMX za razvoj ili ažuriranje aplikacije
- U STM32CubeWBA MCU paketu, gotovo svi projekti exampdatoteke se generišu pomoću alata STM32CubeMX za inicijalizaciju sistema, perifernih uređaja i međuvera.
- Direktno korištenje postojećeg projekta nprample iz STM32CubeMX alata zahtijeva STM32CubeMX 6.10.0 ili noviju:
- Nakon instalacije STM32CubeMX, otvorite i po potrebi ažurirajte predloženi projekat. Najjednostavniji način da otvorite postojeći projekat je da dvaput kliknete na *.ioc file tako da STM32CubeMX automatski otvara projekat i njegov izvor files.
- STM32CubeMX generiše inicijalizacijski izvorni kod takvih projekata. Glavni izvorni kod aplikacije je sadržan u komentarima “KORISNIČKI KOD POČINJE” i “KORISNIČKI KOD KRAJ”. U slučaju da se IP izbor i postavka izmijene, STM32CubeMX ažurira inicijalizacijski dio koda, ali čuva glavni izvorni kod 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 rješavač pinout-konflikta, pomoćnik za podešavanje stabla sata, kalkulator potrošnje energije i uslužni program koji izvodi MCU perifernu konfiguraciju (kao što je GPIO ili USART) i stekove međuvera (kao što je USB).
- Generirajte inicijalizacijski C kod na osnovu odabrane konfiguracije. Ovaj kod je spreman za upotrebu u nekoliko razvojnih okruženja. Korisnički kod se čuva pri sljedećem generiranju koda.
- Za više informacija o STM32CubeMX, pogledajte korisnički priručnik STM32CubeMX za STM32 konfiguraciju i generiranje C koda za inicijalizaciju (UM1718).
- Za listu dostupnih projekata nprampdatoteke za STM32CubeWBA, pogledajte napomenu o aplikaciji STM32Cube firmware examples za STM32WBA seriju (AN5929).
Aplikacije za vozače
HAL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene HAL aplikacije pomoću STM32CubeWBA:
- Kreirajte projekat
- Da kreirate novi projekat, počnite ili od predloška projekta koji je obezbeđen za svaku ploču pod \Projekti\ \Šabloni 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 tačka za razumijevanje postavki projekta STM32CubeWBA. Šablon ima sljedeće karakteristike:
- Sadrži HAL izvorni kod, CMSIS i BSP drajvere, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
- Sadrži uključene putanje za sve komponente firmvera.
- Definiše podržane uređaje serije STM32WBA, omogućavajući CMSIS i HAL drajvere da budu ispravno konfigurisani.
- Pruža korisnika koji je spreman za upotrebu fileje unaprijed konfigurisan kao što je prikazano ispod:
HAL inicijaliziran sa zadanom vremenskom bazom sa Arm® jezgrom SysTick-a. SysTick ISR implementiran za HAL_Delay() svrhu.
Napomena: Prilikom kopiranja postojećeg projekta na drugu lokaciju, provjerite jesu li sve uključene staze ažurirane.
- Dodajte neophodan međuover korisničkom projektu (opcionalno)
Za identifikaciju izvora filekoje treba dodati projektu file listu, pogledajte dokumentaciju koja je data za svaki međuoprema. Pogledajte aplikacije pod \Projekti\STM32xxx_yyy\Aplikacije\ (gde odnosi se na stog međuvera, kao što je ThreadX) da zna koji izvor files i uključuju staze moraju biti dodati. - Konfigurišite komponente firmvera
HAL i komponente međuverskog softvera nude skup opcija konfiguracije za vrijeme izgradnje koristeći makronaredbe #define deklarirane u zaglavlju file. Konfiguracija šablona file je obezbeđen unutar svake komponente, koja se mora kopirati u fasciklu projekta (obično konfiguraciju file se zove xxx_conf_template.h, riječ _template treba ukloniti kada je kopirate u direktorij projekta). Konfiguracija file pruža dovoljno informacija za razumijevanje utjecaja svake opcije konfiguracije. Detaljnije informacije dostupne su u dokumentaciji za svaku komponentu. - Pokrenite HAL biblioteku
Nakon skoka na glavni program, kod aplikacije mora pozvati HAL_Init() API da inicijalizira HAL biblioteku, koja izvršava sljedeće zadatke:- Konfiguracija prethodnog preuzimanja flash memorije i SysTick prioriteta prekida (preko makronaredbi definiranih u st m32wbaxx_hal_conf.h).
- Konfiguracija SysTicka 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 funkcije povratnog poziva HAL_MspInit() definirane u korisniku stm32wbaxx_hal_msp.c file za izvođenje globalnih hardverskih inicijalizacija niskog nivoa.
- Konfigurišite sistemski sat
Konfiguracija sistemskog sata se vrši pozivanjem dva API-ja opisana u nastavku:- HAL_RCC_OscConfig(): ovaj API konfiguriše interne i eksterne oscilatore. Korisnik bira da konfiguriše jedan ili sve oscilatore.
- HAL_RCC_ClockConfig(): ovaj API konfiguriše izvor sistemskog takta, kašnjenje fleš memorije i AHB i APB preskalere.
- Inicijalizirajte periferiju
- Prvo napišite perifernu HAL_PPP_MspInit funkciju. Postupite na sljedeći način:
- Omogućite periferni sat.
- Konfigurirajte periferne GPIO.
- Konfigurišite DMA kanal i omogućite DMA prekid (ako je potrebno).
- Omogućite periferni prekid (ako je potrebno).
- Uredite stm32xxx_it.c da pozovete potrebne rukovaoce prekida (periferijski i DMA), ako je potrebno.
- Napišite proces potpune funkcije povratnog poziva, ako se planira koristiti periferni prekid ili DMA.
- U korisniku main.c file, inicijalizirajte strukturu ručke periferije, a zatim pozovite funkciju HAL_PPP_Init() da inicijalizirate periferiju.
- Prvo napišite perifernu HAL_PPP_MspInit funkciju. Postupite na sljedeći način:
- Razviti aplikaciju
- Kod ovog stage, sistem je spreman i razvoj koda korisničke aplikacije može početi.
- HAL pruža intuitivne i spremne za korištenje API-je za konfiguraciju periferije. Podržava prozivanje, prekide i DMA model programiranja, kako bi zadovoljio sve zahtjeve aplikacije. Za više detalja o tome kako koristiti svaki periferni uređaj, pogledajte bogati exampset isporučen u STM32CubeWBA MCU paketu.
Oprez: U podrazumevanoj HAL implementaciji, SysTick tajmer se koristi kao vremenska baza: generiše prekide u redovnim vremenskim intervalima. Ako je HAL_Delay() pozvan iz perifernog ISR procesa, uvjerite se da SysTick prekid ima veći prioritet (numerički niži) od perifernog prekida. U suprotnom, proces ISR pozivatelja je blokiran. Funkcije koje utječu na konfiguraciju vremenske baze deklarirane su kao __slabe kako bi se omogućilo nadjačavanje u slučaju drugih implementacija u korisniku file (koristeći tajmer opće namjene, nprample, ili drugi izvor vremena). Za više detalja, pogledajte HAL_TimeBase example.
LL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene LL aplikacije pomoću STM32CubeWBA.
- Kreirajte projekat
- Da kreirate novi projekat, ili počnite od projekta Templates_LL koji je obezbeđen za svaku ploču pod \Projekti\ \Templates_LL, ili iz bilo kojeg dostupnog projekta pod \Projekti\ \Pramples_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 tačka za razumijevanje projektnih postavki za STM32CubeWBA. Glavne karakteristike šablona su sljedeće:
- Sadrži izvorne kodove LL i CMSIS drajvera, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
- Sadrži uključene putanje za sve potrebne komponente firmvera.
- On bira podržani uređaj serije STM32WBA i omogućava ispravnu konfiguraciju CMSIS i LL drajvera.
- Pruža korisniku spremnom za korištenje filekoji su unapred konfigurisani na sledeći način:
◦ main.h: sloj apstrakcije LED i USER_BUTTON definicije.
◦ main.c: Konfiguracija sistemskog sata za maksimalnu frekvenciju.
- Prenesite postojeći projekat na drugu ploču
Da podržite postojeći projekat na drugoj ciljnoj ploči, počnite od projekta Templates_LL koji je dostupan za svaku ploču i dostupan pod \Projekti\ \Templates_LL.- Odaberite LL example: Da biste pronašli ploču na kojoj je LL exampdatoteke su raspoređene, pogledajte listu LL examples STM32CubeProjectsList.html.
- Port LL example:
- Kopirajte/zalijepite mapu Templates_LL – da zadržite početni izvor – ili direktno ažurirajte postojeći Templates_LL projekat.
- Zatim se prijenos uglavnom sastoji u zamjeni Templates_LL files od strane Examples_LL ciljani projekat.
- Zadržite sve dijelove specifične za ploču. Radi jasnoće, specifični dijelovi ploče su označeni sa specifičnim tags:
- Dakle, glavni koraci prenosa su sljedeći:
- Zamijenite stm32wbaxx_it.h file
- Zamijenite stm32wbaxx_it.c file
- Zamijenite main.h file i ažurirajte ga: Zadržite LED i korisničku tipku definiciju LL šablona pod SPECIFIČNA KONFIGURACIJA BOARD tags.
- Zamijenite main.c file i ažurirajte ga:
- Zadržite konfiguraciju sata funkcije predloška SystemClock_Config() LL pod SPECIFIČNA KONFIGURACIJA BOARDA tags.
- Ovisno o LED definiciji, zamijenite svaku pojavu LDx s drugim LDy dostupnim u main.h file.
- Sa ovim modifikacijama, example sada radi na ciljnoj tabli
Sigurnosne aplikacije
Ovaj paket se isporučuje sa sigurnosnim aplikacijama.
SBSFU aplikacije
- SBSFU pruža Root of Trust rješenje, uključujući funkcije sigurnog pokretanja i sigurnog ažuriranja firmvera (bazirane na MCUboot-u).
- Rješenje se koristi prije izvršavanja aplikacije.
- Rješenje pruža exampbezbednog servisa (GPIO prekidač), koji je izolovan od nebezbedne aplikacije. Nebezbedna aplikacija u vreme izvođenja i dalje može koristiti ovo rešenje.
TFM aplikacije
TFM pruža rješenje Root of Trust uključujući bezbedno pokretanje i bezbedno ažuriranje firmvera
(bazirano na MCUboot-u). Rješenje se koristi prije izvršavanja aplikacije. Rješenje pruža TFM sigurne usluge koje su izolirane od nezaštićene aplikacije. Nebezbedna aplikacija u vreme izvođenja i dalje može koristiti ovo rešenje.
RF aplikacije
RF aplikacija je opisana u ovoj napomeni o aplikaciji: Izrada bežičnih aplikacija sa mikrokontrolerima serije STM32WBA (AN5928).
Dobivanje ažuriranja izdanja STM32CubeWBA
Najnovija izdanja i zakrpe STM32CubeWBA MCU paketa dostupne su iz STM32WBA serije. Mogu se preuzeti pomoću dugmeta PROVJERI ZA AŽURIRANJE u STM32CubeMX. Za više detalja, pogledajte odeljak 3 korisničkog priručnika STM32CubeMX za STM32 konfiguraciju i generisanje C koda za inicijalizaciju (UM1718).
FAQ
- Kada trebam koristiti HAL umjesto LL drajvera?
- HAL drajveri nude API-je visokog nivoa i funkcionalno orijentisane, sa visokim nivoom prenosivosti. Složenost proizvoda ili periferije je skrivena za krajnje korisnike.
- LL drajveri nude API-je niskog nivoa registra, sa boljom optimizacijom, ali manje prenosivim. Oni zahtijevaju dubinsko poznavanje proizvoda ili IP specifikacija.
- Mogu li zajedno koristiti HAL i LL drajvere? Ako mogu, koja su ograničenja?
- Moguće je koristiti i HAL i LL drajvere. Koristite HAL za fazu inicijalizacije IP-a, a zatim upravljajte I/O operacijama s LL drajverima.
- Glavna razlika između HAL-a i LL-a je u tome što HAL drajveri zahtijevaju kreiranje i korištenje ručki za upravljanje operacijama, dok LL drajveri rade direktno na perifernim registrima. Examples_MIX example ilustruje kako pomiješati HAL i LL.
- Kako su omogućeni API-ji za inicijalizaciju LL?
- Definicija LL inicijalizacijskih API-ja i pridruženih resursa (strukture, literali i prototipovi) uvjetovana je prekidačem kompilacije USE_FULL_LL_DRIVER.
- Da biste mogli koristiti API-je za inicijalizaciju LL, dodajte ovaj prekidač u pretprocesor kompajlera alata.
- Kako STM32CubeMX može generirati kod na osnovu ugrađenog softvera?
STM32CubeMX ima ugrađeno znanje o STM32 mikrokontrolerima, uključujući njihove periferije i softver koji omogućava pružanje grafičkog prikaza korisniku i generiranje *.h ili *.c files na osnovu konfiguracije korisnika.
VAŽNA NAPOMENA – PAŽLJIVO PROČITAJTE
- STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije 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 nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi u trenutku potvrde narudžbe.
- Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca.
- ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine.
- Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod.
- ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
- Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.
- © 2023 STMicroelectronics – Sva prava zadržana
Dokumenti / Resursi
![]() |
STMicroelectronics STM32WBA serija Početak [pdf] Korisnički priručnik STM32WBA serija Početak, početak, početak |