STMicroelectronics STM32WBA sorozat – Kezdő lépések
Termékinformáció
Műszaki adatok:
- Termék neve: STM32CubeWBA MCU csomag
- Gyártó: STMicroelectronics
- Kompatibilitás: STM32WBA sorozatú mikrokontrollerek
- Engedélyezés: Nyílt forráskódú BSD licenc
A termék használati útmutatója
Az STM32CubeWBA MCU csomag főbb jellemzői:
Az STM32CubeWBA MCU csomag minden szükséges beágyazott szoftverkomponenst tartalmaz az STM32WBA sorozatú mikrokontrollereken történő alkalmazások fejlesztéséhez. Nagyon hordozható az STM32 sorozaton belül, és HAL és LL API-kkal érkezik, plamples, és köztes szoftver komponensek.
Az építészet végeview:
Az STM32CubeWBA MCU-csomag architektúrája három szintből áll – Alkalmazások, Könyvtár- és protokollalapú komponensek, Hardveres absztrakciós réteg, BSP illesztőprogramok, Core illesztőprogramok és Alacsony rétegű API-k.
GYIK
- Mit tartalmaz az STM32CubeWBA MCU csomag?
A csomag alacsony rétegű (LL) és hardveres absztrakciós réteg (HAL) API-kat tartalmaz, plamples, alkalmazások, köztes szoftver komponensek, mint pl FileX/LevelX, NetX Duo, mbed-crypto könyvtárak és még sok más. - Az STM32CubeWBA MCU csomag kompatibilis az STM32CubeMX kódgenerátorral?
Igen, a csomag teljes mértékben kompatibilis az STM32CubeMX kódgenerátorral az inicializálási kód generálásához.
Bevezetés
- Az STM32Cube az STMicroelectronics eredeti kezdeményezése, amely jelentősen javítja a tervezők termelékenységét a fejlesztési erőfeszítések, az idő és a költségek csökkentésével. Az STM32Cube a teljes STM32 portfóliót lefedi.
Az STM32Cube tartalma:- Felhasználóbarát szoftverfejlesztő eszközök készlete, amelyek lefedik a projektfejlesztést a koncepciótól a megvalósításig, amelyek között szerepel:
- STM32CubeMX, egy grafikus szoftverkonfigurációs eszköz, amely lehetővé teszi a C inicializálási kód automatikus generálását grafikus varázslók segítségével
- STM32CubeIDE, egy minden az egyben fejlesztőeszköz perifériakonfigurációval, kódgenerálással, kódfordítással és hibakeresési funkciókkal
- STM32CubeCLT, egy minden az egyben parancssori fejlesztői eszközkészlet kódfordítással, kártyaprogramozással és hibakeresési funkciókkal
- STM32CubeProgrammer (STM32CubeProg), grafikus és parancssori változatban elérhető programozási eszköz
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), hatékony megfigyelő eszközök az STM32 alkalmazások viselkedésének és teljesítményének valós időben történő finomhangolásához
- STM32Cube MCU és MPU csomagok, átfogó beágyazott szoftverplatformok az egyes mikrovezérlők és mikroprocesszorok sorozataihoz (például az STM32CubeWBA az STM32WBA sorozathoz), amelyek a következőket tartalmazzák:
- STM32Cube hardveres absztrakciós réteg (HAL), amely biztosítja a maximális hordozhatóságot az STM32 portfólióban
- STM32Cube alacsony rétegű API-k, amelyek a legjobb teljesítményt és helyigényt biztosítják a hardver feletti nagyfokú felhasználói vezérléssel
- Köztesszoftver-összetevők konzisztens készlete, mint például a ThreadX, FileX / LevelX, NetX Duo, USBX, érintőkönyvtár, mbed-crypto, TFM, MCUboot, OpenBL és STM32_WPAN (beleértve a Bluetooth® Low Energy pro-tfiles és szolgáltatások, Mesh, Zigbee®, OpenThread, Matter és 802.15.4 MAC réteg)
- Minden beágyazott szoftver segédprogram teljes perifériás és alkalmazási készlettel, plamples
- STM32Cube bővítőcsomagok, amelyek beágyazott szoftverkomponenseket tartalmaznak, amelyek kiegészítik az STM32Cube MCU és MPU csomagok funkcióit a következőkkel:
- Köztesszoftver-kiterjesztések és alkalmazási rétegek
- Exampegyes speciális STMicroelectronics fejlesztőkártyákon fut
- Felhasználóbarát szoftverfejlesztő eszközök készlete, amelyek lefedik a projektfejlesztést a koncepciótól a megvalósításig, amelyek között szerepel:
- Ez a felhasználói kézikönyv leírja, hogyan kezdje meg az STM32CubeWBA MCU csomag használatát.
- A 2. szakasz, az STM32CubeWBA főbb jellemzői az STM32CubeWBA MCU-csomag főbb jellemzőit írja le.
- 3. szakasz STM32CubeWBA architektúra végeview overt biztosítview az STM32CubeWBA architektúra és az MCU-csomag szerkezete.
Általános információk
Az STM32CubeWBA MCU csomag STM32 32 bites mikrokontrollereken fut, amelyek Arm® Cortex®-M33 processzoron alapulnak Arm® TrustZone® és FPU-val.
Jegyzet: Az Arm és a TrustZone az Arm Limited (vagy leányvállalatai) bejegyzett védjegyei az Egyesült Államokban és/vagy másutt.
STM32CubeWBA főbb jellemzői
- Az STM32CubeWBA MCU csomag STM32 32 bites mikrokontrollereken fut, amelyek az Arm® Cortex®-M33 processzoron alapulnak TrustZone®-nal és FPU-val.
- Az STM32CubeWBA egyetlen csomagban gyűjti össze az STM32WBA sorozatú mikrokontrollerek alkalmazásának fejlesztéséhez szükséges összes általános beágyazott szoftverkomponenst. Az STM32Cube kezdeményezésnek megfelelően ez az alkatrészkészlet nagymértékben hordozható, nem csak az STM32WBA sorozatú mikrovezérlőkben, hanem más STM32 sorozatokban is.
- Az STM32CubeWBA teljes mértékben kompatibilis az STM32CubeMX kódgenerátorral az inicializálási kód generálásához. A csomag alacsony rétegű (LL) és hardveres absztrakciós rétegű (HAL) API-kat tartalmaz, amelyek lefedik a mikrokontroller hardverét, valamint egy kiterjedt készletetampSTMicroelectronics kártyákon fut. A HAL és LL API-k nyílt forráskódú BSD-licencben állnak rendelkezésre a felhasználói kényelem érdekében.
- Az STM32CubeWBA MCU-csomag egy átfogó köztesszoftver-összetevőt is tartalmaz, amely a Microsoft® Azure® RTOS köztes szoftver és egyéb házon belüli és nyílt forráskódú veremek köré épült, a megfelelő ex.amples.
- Ingyenes, felhasználóbarát licencfeltételekkel rendelkeznek:
- Integrált és teljes funkcionalitású Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS megvalósítás az Azure® RTOS ThreadX-szel
- Az USB-gazda- és eszközverem számos osztályt tartalmaz: Azure® RTOS USBX
- Fejlett file rendszer és flash fordítási réteg: FileX / LevelX
- Ipari szintű hálózati stack: a teljesítményre optimalizálva számos IoT-protokollhoz: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF-M) integrációs megoldás
- mbed-crypto könyvtárak
- ST Netwok Könyvtár
- STMTouch érintésérzékelős könyvtári megoldás
- Az STM32CubeWBA MCU-csomag számos alkalmazást és bemutatót is tartalmaz, amelyek mindezen köztesszoftver-összetevőket megvalósítják.
- Az STM32CubeWBA MCU-csomag összetevőinek elrendezését az 1. ábra szemlélteti. Az STM32CubeWBA MCU-csomag összetevői.
STM32CubeWBA architektúra végeview
Az STM32CubeWBA MCU csomagmegoldás három független szint köré épül, amelyek könnyen interakcióba lépnek, amint azt a 2. ábra mutatja. STM32CubeWBA MCU csomagarchitektúra.
0. szint
Ez a szint három alrétegre oszlik:
- Támogatási csomag (BSP).
- Hardveres absztrakciós réteg (HAL):
- HAL periféria meghajtók
- Alacsony rétegű meghajtók
- Alapvető perifériahasználat plamples.
Támogatási csomag (BSP)
Ez a réteg API-készletet kínál a hardverkártyák hardverösszetevőihez képest (például LCD, Audio,\ microSD™ és MEMS illesztőprogramok). Két részből áll:
- Alkatrész illesztőprogram:
Ez az illesztőprogram a kártyán lévő külső eszközhöz kapcsolódik, nem pedig az STM32 eszközhöz. Az összetevő-illesztőprogram speciális API-kat biztosít a BSP-illesztőprogram külső összetevőihez, és bármely más kártyán hordozható. - BSP driver:
A BSP illesztőprogram lehetővé teszi az összetevő-illesztőprogramok összekapcsolását egy adott kártyával, és egy sor felhasználóbarát megoldást biztosít
API-k. Az API elnevezési szabály a BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
A BSP moduláris architektúrán alapul, amely lehetővé teszi a könnyű portolást bármilyen hardveren az alacsony szintű rutinok végrehajtásával.
Hardveres absztrakciós réteg (HAL) és alacsony réteg (LL)
Az STM32CubeWBA HAL és LL kiegészítik egymást, és az alkalmazási követelmények széles skáláját fedik le:
- A HAL illesztőprogramok magas szintű, funkcióorientált, rendkívül hordozható API-kat kínálnak. Elrejtik az MCU-t és a periféria bonyolultságát a végfelhasználó előtt.
A HAL illesztőprogramok általános, többpéldányos, szolgáltatásorientált API-kat biztosítanak, amelyek leegyszerűsítik a felhasználói alkalmazások megvalósítását azáltal, hogy használatra kész folyamatokat biztosítanak. Plample, a kommunikációs perifériák (I2S, UART és mások) számára API-kat biztosít, amelyek lehetővé teszik a perifériák inicializálását és konfigurálását, lekérdezés, megszakítás vagy DMA folyamaton alapuló adatátvitelt, valamint a kommunikáció során esetlegesen felmerülő kommunikációs hibák kezelését. A HAL illesztőprogram API-k két kategóriába sorolhatók:- Általános API-k, amelyek közös és általános funkciókat biztosítanak az összes STM32 sorozatú mikrovezérlő számára.
- Extension API-k, amelyek specifikus és testreszabott funkciókat biztosítanak egy adott családhoz vagy egy adott cikkszámhoz.
- Az alacsony rétegű API-k alacsony szintű API-kat biztosítanak a regiszter szintjén, jobb optimalizálással, de kisebb hordozhatósággal.
- Az MCU és a periféria specifikációinak mélyreható ismerete szükséges.
- Az LL meghajtókat úgy tervezték, hogy gyors, könnyű, szakértő-orientált réteget kínáljanak, amely közelebb áll a hardverhez, mint a HAL. A HAL-lal ellentétben az LL API-k nem állnak rendelkezésre olyan perifériákhoz, ahol az optimalizált hozzáférés nem kulcsfontosságú, vagy amelyekhez nehéz szoftverkonfiguráció vagy összetett felső szintű verem szükséges.
- Az LL illesztőprogramok jellemzői:
- Funkciókészlet a periféria főbb jellemzőinek inicializálására az adatstruktúrákban megadott paraméterek szerint.
- Funkciókészlet, amely az egyes mezőknek megfelelő visszaállítási értékekkel tölti fel az inicializálási adatstruktúrákat.
- Periféria deinicializálási funkció (a perifériaregiszterek visszaállítva az alapértelmezett értékekre).
- Inline függvények készlete a közvetlen és atomi regisztereléréshez.
- Teljes függetlenség a HAL-tól és önálló módban használható (HAL illesztőprogramok nélkül).
- A támogatott perifériák teljes körű lefedettsége.
Alapvető perifériahasználat plamples
Ez a réteg magába foglalja az exampAz STM32 perifériákra épül, csak a HAL és BSP erőforrásokat használva.
1. szint
Ez a szint két alrétegre oszlik:
- Köztes szoftver összetevők
- Exampa köztes szoftver összetevői alapján
Köztes szoftver összetevők
- A köztes szoftver a Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot és mbed-crypto.
- A réteg összetevői közötti vízszintes interakció a kiemelt API-k meghívásával történik.
- Az alacsony rétegű meghajtókkal való függőleges interakció speciális visszahívásokon és statikus makrókon keresztül valósul meg a könyvtári rendszerhívási felületen.
- Az egyes köztesszoftver-összetevők főbb jellemzői a következők:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Valós idejű operációs rendszer (RTOS), amelyet két működési móddal rendelkező beágyazott rendszerekhez terveztek.
- Közös mód: Gyakori RTOS funkciók, például szálkezelés és szinkronizálás, memóriatár-kezelés, üzenetkezelés és eseménykezelés.
- Modul mód: Speciális felhasználói mód, amely lehetővé teszi az előre összekapcsolt ThreadX modulok be- és kirakodását menet közben a modulkezelőn keresztül.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Valós idejű operációs rendszer (RTOS), amelyet két működési móddal rendelkező beágyazott rendszerekhez terveztek.
- Bluetooth® Low Energy (BLE): A Bluetooth® Low Energy protokollt valósítja meg a Link és Stack rétegekhez.
- MCUboot (nyílt forráskódú szoftver)
- Zigbee® protokollok a veremhez és a kapcsolódó fürtökhöz.
- Thread® protokoll verem és linkréteg.
- Arm® megbízható firmware-M, TF-M (nyílt forráskódú szoftver): Az Arm® platform biztonsági architektúrájának (PSA) referencia megvalósítása a TrustZone® számára a kapcsolódó biztonságos szolgáltatásokkal együtt.
- mbed-crypto (nyílt forráskódú szoftver): Az mbed-crypto köztes szoftver PSA kriptográfiai API megvalósítást biztosít.
- STM32 érintésérzékelő könyvtár: Robusztus STMTouch kapacitív érintésérzékelő megoldás, amely támogatja a közelség-, érintőgombos, lineáris és forgó érintésérzékelőket. Bevált felületi töltésátviteli elven alapul.
- Microsoft® Azure® RTOS
Exampa köztes szoftver összetevői alapján
Minden köztesszoftver-komponenshez tartozik egy vagy több examples (más néven alkalmazások), amely bemutatja, hogyan kell használni. Integráció plampTöbb köztesszoftver-összetevőt használó eszközök is rendelkezésre állnak.
STM32CubeWBA firmware csomag végeview
Támogatott STM32WBA sorozatú eszközök és hardver
- Az STM32Cube nagymértékben hordozható hardveres absztrakciós réteget (HAL) kínál, amely egy általános architektúrára épül. Lehetővé teszi a felépítési rétegek elvét, például a köztes szoftverréteg használatát a funkcióik megvalósításához anélkül, hogy alaposan tudná, hogy milyen MCU-t használnak. Ez javítja a könyvtárkód újrafelhasználhatóságát, és biztosítja a könnyű hordozhatóságot más eszközökre.
- Ezenkívül a réteges architektúrájának köszönhetően az STM32CubeWBA teljes mértékben támogatja az összes STM32WBA sorozatot.
- A felhasználónak csak meg kell határoznia a megfelelő makrót az stm32wbaxx.h fájlban.
- Az 1. táblázat a használt STM32WBA sorozatú eszköztől függően meghatározandó makrót mutatja be. Ezt a makrót a fordító előfeldolgozójában is meg kell határozni.
1. táblázat. Makrók az STM32WBA sorozathozAz stm32wbaxx.h fájlban definiált makró STM32WBA sorozatú készülékek stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - Az STM32CubeWBA gazdag examples és alkalmazások minden szinten, megkönnyítve a HAL illesztőprogramok vagy köztes szoftver összetevők megértését és használatát. Ezek az exampA 2. táblázatban felsorolt STMicroelectronics kártyákon futnak.
2. táblázat: STM32WBA sorozat tábláiBizottság Távolítsa el az STM32WBA által támogatott eszközöket NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - Az STM32CubeWBA MCU csomag bármilyen kompatibilis hardveren futhat. A felhasználó egyszerűen frissíti a BSP illesztőprogramokat, hogy a mellékelt example az alaplapon, ha az utóbbi ugyanazokkal a hardver jellemzőkkel rendelkezik (például LED, LCD kijelző és gombok).
A firmware csomag végeview
- Az STM32CubeWBA csomagmegoldás egyetlen zip-csomagban érhető el, amelynek szerkezete a 3. ábrán látható. Az STM32CubeWBA firmware-csomag szerkezete.
- Minden táblához egy sor exampA les előre konfigurált projekteket tartalmaz az EWARM, MDK-ARM és STM32CubeIDE eszközláncokhoz.
- 4. ábra STM32CubeWBA plamples végeview bemutatja a NUCLEO-WBA52CG, NUCLEO-WBA55CG és STM32WBA55G-DK1 kártyák projektstruktúráját.
- Az exampAz STM32Cube szinttől függően osztályozzák, amelyre vonatkoznak, és elnevezésük a következő:
- 0. szint plamples nevezik Examples, plamples_LL, és plamples_MIX. HAL illesztőprogramokat, LL illesztőprogramokat, valamint HAL és LL illesztőprogramok keverékét használnak köztes szoftver komponens nélkül.
- 1. szint plampalkalmazásokat nevezzük. Az egyes köztesszoftver-összetevők tipikus használati eseteit biztosítják. A Templ ates és Templates_LL könyvtárakban elérhető sablonprojekteknek köszönhetően egy adott kártyához bármely firmware-alkalmazás gyorsan elkészíthető.
TrustZone®-kompatibilis projektek
- TrustZone® engedélyezve PlampA les nevek tartalmazzák a _TrustZone előtagot. A szabály az alkalmazásokra is vonatkozik (kivéve a TFM-et és az SBSFU-t, amelyek natívan a TrustZone®-hoz tartoznak).
- TrustZone®-kompatibilis plampAz alkalmazások és az Alkalmazások többprojektes struktúrával vannak ellátva, amely biztonságos és nem biztonságos alprojektekből áll, amint azt az 5. ábra mutatja. Többprojektes biztonságos és nem biztonságos projektstruktúra.
- A TrustZone®-kompatibilis projekteket a CMSIS-5 eszközsablon szerint fejlesztették ki, kiterjesztve a rendszer particionálási fejlécére. file partíció_ .h, aki főként a biztonságos attribútum egység (SAU), az FPU és a biztonságos/nem biztonságos megszakítások hozzárendeléséért felelős a biztonságos végrehajtási állapotban.
- Ez a beállítás a biztonságos CMSIS SystemInit() függvényben történik, amely indításkor kerül meghívásra, mielőtt belépne a biztonságos alkalmazás main() függvényébe. Tekintse meg az Arm® TrustZone®-M szoftverre vonatkozó útmutatót.
- Az STM32CubeWBA csomag firmware-csomagja alapértelmezett memóriaparticionálást biztosít a partíción _ .h filea következő helyen érhető el: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- Ezekben a partíciókban files, a SAU alapértelmezés szerint le van tiltva. Következésképpen az IDAU memórialeképezést használják a biztonsági hozzárendeléshez. Lásd a Biztonságos/nem biztonságos particionálás TrustZone® technológiával ábrát az RM0495 referencia kézikönyvben.
- Ha a felhasználó engedélyezi a SAU-t, akkor a partícióban előre meghatározott SAU régiók alapértelmezett konfigurációja files a következőképpen:
- SAU régió 0: 0x08080000 – 0x081FFFFF (a flash memória nem biztonságos fele (512 Kbyte))
- SAU 1. régió: 0x0BF88000 – 0x0BF97FFF (nem biztonságos rendszermemória)
- SAU 2. régió: 0x0C07E000 – 0x0C07FFFF (biztonságos, nem biztonságos hívható)
- SAU 3. régió: 0x20010000 – 0x2001FFFF (nem biztonságos SRAM2 (64 Kbyte))
- 4. SAU-régió: 0x40000000 – 0x4FFFFFFFF (nem biztonságos periféria-leképezett memória)
- Az alapértelmezett particionáláshoz az STM32WBAxx sorozatú eszközökön a következő felhasználói beállítási bájtokat kell beállítani:
- TZEN = 1 (TrustZone®-kompatibilis eszköz)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (a belső flash memória 64 oldalából 128 biztonságosnak van beállítva) Megjegyzés: A belső flash memória alapértelmezés szerint teljesen biztonságos a TZEN = 1 esetén. A SECWM1_PSTRT/ SECWM1_PEND felhasználói opció bájtokat az alkalmazásnak megfelelően kell beállítani. memória konfiguráció (SAU régiók, ha a SAU engedélyezve van). Biztonságos/nem biztonságos alkalmazások projektösszekötője files is igazítani kell.
- minden exampa felépítésük megegyezik:
- \Inc az összes fejlécet tartalmazó mappa files.
- A forráskódot tartalmazó Src mappa.
- \EWARM, \MDK-ARM és \STM32CubeIDE mappák, amelyek minden eszközlánchoz előre konfigurált projektet tartalmaznak.
- readme.md és readme.html, amelyek leírják az exampviselkedését és a működéséhez szükséges környezetet.
- ioc file amely lehetővé teszi a felhasználók számára a legtöbb firmware megnyitását, plamples az STM32CubeMX-en belül.
Az STM32CubeWBA első lépései
Az első HAL ex futtatásaample
Ez a rész elmagyarázza, milyen egyszerű az első example az STM32CubeWBA-n belül. Illusztrációként a NUCLEO-WBA52CG kártyán futó egyszerű LED kapcsoló létrehozását használja:
- Töltse le az STM32CubeWBA MCU csomagot.
- Csomagolja ki egy tetszőleges könyvtárba.
- Ügyeljen arra, hogy ne módosítsa az 1. ábrán látható csomagstruktúrát. Javasoljuk, hogy a csomagot a gyökérkötethez közeli helyre másolja (értsd: C:\ST vagy G:\Tests), mivel egyes IDE-k problémákba ütköznek, amikor az elérési út túl hosszú.
Az első TrustZone®-kompatibilis plample
- Mielőtt betöltené és futtatná a TrustZone®-kompatibilis plample, kötelező elolvasni az example readme file bármely konkrét konfigurációhoz, amely biztosítja, hogy a biztonság a 4.2.1 TrustZone®-kompatibilis projektek szakaszban leírtak szerint engedélyezve legyen (TZEN=1 (felhasználói opció bájt)).
- Tallózzon a \Projects\NUCLEO-WBA52CG\Examples.
- Nyissa meg a \GPIO, majd a \GPIO_IOToggle_TrustZone mappákat.
- Nyissa meg a projektet a kívánt eszközlánccal. Gyors végeview hogyan lehet megnyitni, felépíteni és futtatni egy ex-tample a támogatott szerszámláncokkal alább látható.
- Építsen újra egymás után minden biztonságos és nem biztonságos projektet files és töltse be a biztonságos és nem biztonságos képeket a célmemóriába.
- Fuss az example: rendszeresen, a biztonságos alkalmazás másodpercenként, a nem biztonságos alkalmazás pedig kétszer olyan gyorsan váltja az LD2-t. További részletekért lásd a readme-t file az example.
- Egy ex megnyitásához, létrehozásához és futtatásáhozample a támogatott eszközláncokkal, kövesse az alábbi lépéseket:
- EWARM:
- Az ex alattampmappába, nyissa meg a \EWARM almappát.
- Indítsa el a Project.eww munkaterületet
- Építse újra az xxxxx_S biztonságos projektet files: [Project]> [Rebuild all].
- Állítsa be az xxxxx_NS nem biztonságos projektet aktív alkalmazásként (jobb kattintás az xxxxx_NS projektre [Beállítás aktívként])
- Építse újra az xxxxx_NS nem biztonságos projektet files: [Project]> [Rebuild all].
- Flash a nem biztonságos bináris fájlban a [Project]> [Letöltés]> [Aktív alkalmazás letöltése] lehetőséggel.
- Állítsa be az xxxxx_S-t aktívként (jobb gombbal kattintson az xxxxx_S projektre [Set as Active]).
- Flash a biztonságos bináris fájl a [Letöltés és hibakeresés] (Ctrl+D) segítségével.
- Futtassa a programot: [Debug]> [Go(F5)]
- MDK-ARM:
- Nyissa meg az \MDK-ARM eszközláncot.
- Nyissa meg a Multiprojects munkaterületet file Project.uvmpw.
- Válassza ki az xxxxx_s projektet aktív alkalmazásként ([Beállítás aktív projektként]).
- Építsd meg az xxxxx_s projektet.
- Válassza ki az xxxxx_ns projektet aktív projektként ([Beállítás aktív projektként]).
- Építse fel az xxxxx_ns projektet.
- Töltse be a nem biztonságos bináris fájlt ([F8]). Ezzel letölti a \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf fájlt a flash memóriába)
- Válassza ki a Project_s projektet aktív projektként ([Beállítás aktív projektként]).
- Töltse be a biztonságos bináris fájlt ([F8]). Ezzel letölti a \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf fájlt a flash memóriába).
- Fuss az example.
- STM32CubeIDE:
- Nyissa meg az STM32CubeIDE eszközláncot.
- Nyissa meg a Multiprojects munkaterületet file .projekt.
- Építse újra az xxxxx_Secure projektet.
- Építse újra az xxxxx_NonSecure projektet.
- Indítsa el a [Debug as STM32 Cortex-M C/C++] alkalmazást a biztonságos projekthez.
- A [Konfiguráció szerkesztése] ablakban válassza ki a [Startup] panelt, és töltse be a nem biztonságos projekt képét és szimbólumait.
Fontos: A nem biztonságos projektet a biztonságos projekt előtt kell betölteni. - Kattintson az [OK] gombra.
- Fuss az example a hibakeresési perspektíváról.
- EWARM:
Az első letiltott TrustZone® futtatása, plample
- A letiltott TrustZone® betöltése és futtatása előtt plample, kötelező elolvasni az example readme file bármilyen konkrét konfigurációhoz. Ha nincs külön említés, győződjön meg arról, hogy a kártyaeszköz biztonsága le van tiltva (TZEN=0 (felhasználói opció bájt)). Tekintse meg a GYIK-et a TZEN = 0 opcionális regresszió végrehajtásához
- Tallózzon a \Projects\NUCLEO-WBA52CG\Examples.
- Nyissa meg a \GPIO, majd a \GPIO_EXTI mappát.
- Nyissa meg a projektet a kívánt eszközlánccal. Gyors végeview hogyan lehet megnyitni, felépíteni és futtatni egy ex-tample a támogatott szerszámláncokkal alább látható.
- Építsd újra az összeset files és töltse be a képét a célmemóriába.
- Fuss az example: A [USER] nyomógomb minden egyes megnyomásakor az LD1 LED átvált. További részletekért lásd a readme-t file az example.
- Egy ex megnyitásához, létrehozásához és futtatásáhozample a támogatott eszközláncokkal, kövesse az alábbi lépéseket:
- EWARM:
- Az ex alattampmappába, nyissa meg a \EWARM almappát.
- Indítsa el a Project.eww munkaterületet (a munkaterület neve változhat egy plample másiknak).
- Építsd újra az összeset files: [Project]> [Rebuild all].
- Töltse be a projekt képét: [Project]>[Debug].
- Futtassa a programot: [Debug]> [Go (F5)].
- MDK-ARM:
- Az ex alattampmappába, nyissa meg az \MDK-ARM almappát.
- Indítsa el a Project.uvproj munkaterületet (a munkaterület neve változhat egy plample másiknak).
- Építsd újra az összeset files:[Project]>[Rebuild all target files].
- Töltse be a projekt képét: [Debug]> [Start/Stop Debug Session].
- Futtassa a programot: [Debug]> [Futtatás (F5)].
- STM32CubeIDE:
- Nyissa meg az STM32CubeIDE eszközláncot.
- Kattintson a [File]>[Switch Workspace]>[Other], és tallózással keresse meg az STM32CubeIDE munkaterület könyvtárát.
- Kattintson a [File]>[Importálás] , válassza az [Általános]>[Meglévő projektek a munkaterületre] lehetőséget, majd kattintson a [Tovább] gombra.
- Keresse meg az STM32CubeIDE munkaterület-könyvtárat, és válassza ki a projektet.
- Építsd újra az összes projektet files: Válassza ki a projektet a [Project Explorer] ablakban, majd kattintson a [Project]>[Build Project] menüre.
- Futtassa a programot: [Futtatás]> [Debug (F11)]
- EWARM:
Egyedi alkalmazás fejlesztése
Jegyzet: A szoftvernek lehetővé kell tennie, hogy az utasítás-gyorsítótár (ICACHE) 0 várakozási állapotot kapjon a flash memóriából, és elérje a maximális teljesítményt és jobb energiafogyasztást.
Az STM32CubeMX használata alkalmazás fejlesztésére vagy frissítésére
- Az STM32CubeWBA MCU csomagban szinte minden projekt, plampAz STM32CubeMX eszközzel generálják a rendszert, a perifériákat és a köztes szoftvereket.
- Egy meglévő projekt közvetlen felhasználása plampAz STM32CubeMX eszközből STM32CubeMX 6.10.0 vagy újabb verzió szükséges:
- Az STM32CubeMX telepítése után nyissa meg, és szükség esetén frissítse a javasolt projektet. Egy létező projekt megnyitásának legegyszerűbb módja, ha duplán kattintunk a *.ioc fájlra file így az STM32CubeMX automatikusan megnyitja a projektet és annak forrását files.
- Az STM32CubeMX előállítja az ilyen projektek inicializálási forráskódját. Az alkalmazás fő forráskódját a „FELHASZNÁLÓKÓD KEZDETE” és „FELHASZNÁLÓKÓD VÉGE” megjegyzések tartalmazzák. Ha az IP-választás és beállítás módosul, az STM32CubeMX frissíti a kód inicializálási részét, de megőrzi a fő alkalmazás forráskódját.
- Egyéni projekt STM32CubeMX-ben történő fejlesztéséhez kövesse a lépésről lépésre:
- Válassza ki a szükséges perifériakészletnek megfelelő STM32 mikrovezérlőt.
- Konfigurálja az összes szükséges beágyazott szoftvert a pinout-konfliktus megoldó, az órafa beállítási segédje, az energiafogyasztás-kalkulátor, valamint az MCU perifériás konfigurációját (például GPIO vagy USART) és köztes szoftververemek (például USB) segítségével.
- A kiválasztott konfiguráció alapján hozza létre az inicializálási C kódot. Ez a kód több fejlesztői környezetben is használható. A felhasználói kód a következő kódgenerációnál megmarad.
- Az STM32CubeMX-ről további információkért tekintse meg az STM32CubeMX felhasználói kézikönyvet az STM32 konfigurálásához és inicializálásához C kód generáláshoz (UM1718).
- Az elérhető projektek listájáért plampAz STM32CubeWBA esetében lásd az alkalmazási megjegyzést, az STM32Cube firmware example az STM32WBA sorozathoz (AN5929).
Illesztőprogram-alkalmazások
HAL alkalmazás
Ez a szakasz az STM32CubeWBA használatával egyéni HAL-alkalmazás létrehozásához szükséges lépéseket ismerteti:
- Hozzon létre egy projektet
- Új projekt létrehozásához kezdje el a \Projects\ alatt minden táblához biztosított sablonprojektet. \Sablonok vagy bármely elérhető projektből a \Projects\ alatt \Példák vagy \Projektek\ \Applications (hol a tábla nevére utal, például STM32CubeWBA).
- A Template projekt egy üres főhurok funkciót biztosít. Jó kiindulópont azonban az STM32CubeWBA projektbeállítások megértéséhez. A sablon a következő jellemzőkkel rendelkezik:
- Tartalmazza a HAL-forráskódot, a CMSIS-t és a BSP-illesztőprogramokat, amelyek az adott kártyán kód fejlesztéséhez szükséges minimális összetevők.
- Tartalmazza az összes firmware-komponens elérési útját.
- Meghatározza a támogatott STM32WBA sorozatú eszközöket, lehetővé téve a CMSIS és HAL illesztőprogramok megfelelő konfigurálását.
- Használatra kész felhasználót biztosít fileaz alábbiak szerint van előre konfigurálva:
A HAL az alapértelmezett időalappal inicializálva az Arm® mag SysTick segítségével. A SysTick ISR a HAL_Delay() célra lett megvalósítva.
Jegyzet: Ha egy meglévő projektet más helyre másol, győződjön meg arról, hogy az összes mellékelt elérési út frissül.
- Adja hozzá a szükséges köztes szoftvert a felhasználói projekthez (opcionális)
A forrás azonosítására files hozzá kell adni a projekthez file listát, tekintse meg az egyes köztes szoftverek dokumentációját. Tekintse meg az alkalmazásokat a \Projects\STM32xxx_yyy\Applications\ alatt. (ahol a köztes szoftververemre, például a ThreadX-re utal, hogy megtudja, melyik forrás files és include elérési utakat kell hozzáadni. - Konfigurálja a firmware-összetevőket
A HAL és a köztes szoftver összetevők egy sor felépítési konfigurációs beállítást kínálnak a fejlécben deklarált #define makrók használatával file. Egy sablon konfiguráció file minden komponensen belül megtalálható, amelyet át kell másolni a projekt mappájába (általában a konfigurációba file xxx_conf_template.h, a _template szót el kell távolítani a projekt mappába másolásakor). A konfiguráció file elegendő információt nyújt az egyes konfigurációs opciók hatásának megértéséhez. Részletesebb információk az egyes komponensekhez mellékelt dokumentációban találhatók. - Indítsa el a HAL könyvtárat
A főprogramra ugrás után az alkalmazáskódnak meg kell hívnia a HAL_Init() API-t a HAL könyvtár inicializálásához, amely a következő feladatokat hajtja végre:- A flash memória előzetes letöltésének és a SysTick megszakítási prioritásnak a konfigurálása (az st m32wbaxx_hal_conf.h fájlban meghatározott makrók segítségével).
- A SysTick beállítása, hogy ezredmásodpercenként megszakítást generáljon az stm32wbaxx_hal_conf.h fájlban meghatározott TICK_INT_PRIO SysTick megszakítási prioritáson.
- Az NVIC csoport prioritásának beállítása 0-ra.
- Az stm32wbaxx_hal_msp.c felhasználóban definiált HAL_MspInit() visszahívási függvény hívása file globális alacsony szintű hardver inicializálások végrehajtására.
- Állítsa be a rendszerórát
A rendszeróra konfigurálása az alábbiakban ismertetett két API meghívásával történik:- HAL_RCC_OscConfig(): ez az API konfigurálja a belső és külső oszcillátorokat. A felhasználó választhat egy vagy az összes oszcillátor konfigurálását.
- HAL_RCC_ClockConfig(): ez az API konfigurálja a rendszeróraforrást, a flash memória késleltetését, valamint az AHB és APB előskálázókat.
- Inicializálja a perifériát
- Először írja meg a perifériás HAL_PPP_MspInit függvényt. A következőképpen járjon el:
- Engedélyezze a periféria órát.
- Konfigurálja a perifériás GPIO-kat.
- Konfigurálja a DMA csatornát és engedélyezze a DMA megszakítást (ha szükséges).
- Perifériás megszakítás engedélyezése (ha szükséges).
- Szerkessze az stm32xxx_it.c fájlt a szükséges megszakításkezelők (perifériák és DMA) meghívásához, ha szükséges.
- Írjon folyamatteljes visszahívási függvényeket, ha perifériás megszakítást vagy DMA-t terveznek használni.
- A felhasználói főben.c file, inicializálja a periféria leíró szerkezetét, majd hívja meg a HAL_PPP_Init() függvényt a periféria inicializálásához.
- Először írja meg a perifériás HAL_PPP_MspInit függvényt. A következőképpen járjon el:
- Alkalmazás fejlesztése
- Ezen stage, a rendszer készen áll, és elindulhat a felhasználói alkalmazás kódjának fejlesztése.
- A HAL intuitív és használatra kész API-kat biztosít a periféria konfigurálásához. Támogatja a lekérdezést, a megszakításokat és a DMA programozási modellt, hogy megfeleljen az alkalmazási követelményeknek. Az egyes perifériák használatával kapcsolatos további részletekért tekintse meg a gazdag exampAz STM32CubeWBA MCU csomagban található készlet.
Vigyázat: Az alapértelmezett HAL megvalósításban a SysTick időzítőt használják időbázisként: rendszeres időközönként megszakításokat generál. Ha a HAL_Delay() a perifériás ISR folyamatból kerül meghívásra, győződjön meg arról, hogy a SysTick megszakítás prioritása magasabb (számszerűen alacsonyabb), mint a perifériás megszakításé. Ellenkező esetben a hívó ISR folyamata blokkolva lesz. Az időbázis-konfigurációkat befolyásoló funkciók __gyengeként vannak deklarálva, hogy lehetővé tegyék a felülbírálást a felhasználó más implementációi esetén file (általános célú időzítő használatával, plample, vagy más időforrás). További részletekért tekintse meg a HAL_TimeBase example.
LL alkalmazás
Ez a szakasz az STM32CubeWBA használatával egyéni LL-alkalmazások létrehozásához szükséges lépéseket ismerteti.
- Hozzon létre egy projektet
- Új projekt létrehozásához vagy a \Projects\ alatt található Templates_LL projektből induljon ki. \Templates_LL, vagy bármely elérhető projektből a \Projects\ alatt \Voltamples_LL ( a tábla nevére utal, például NUCLEO-WBA32CG).
- A sablonprojekt egy üres főhurok funkciót biztosít, ami jó kiindulópont az STM32CubeWBA projektbeállításainak megértéséhez. A sablon főbb jellemzői a következők:
- Az LL és CMSIS meghajtók forráskódjait tartalmazza, amelyek az adott kártyán a kód fejlesztéséhez szükséges minimális összetevők.
- Tartalmazza az összes szükséges firmware-komponens elérési útját.
- Kiválasztja a támogatott STM32WBA sorozatú eszközt, és lehetővé teszi a CMSIS és LL illesztőprogramok helyes konfigurálását.
- Használatra kész felhasználót biztosít files amelyek a következők szerint vannak előre konfigurálva:
◦ main.h: LED és USER_BUTTON definíciós absztrakciós réteg.
◦ main.c: Rendszeróra konfiguráció a maximális frekvenciához.
- Portál egy meglévő projektet egy másik kártyára
Egy meglévő projekt másik céltáblán való támogatásához kezdje az egyes kártyákhoz biztosított Templates_LL projektet, amely a \Projects\ alatt érhető el. \Sablonok_LL.- Válasszon egy LL example: Megtalálni azt a táblát, amelyen LL example van telepítve, lásd az LL examples STM32CubeProjectsList.html.
- Port az LL example:
- Másolja/illessze be a Templates_LL mappát – a kezdeti forrás megtartásához – vagy közvetlenül frissítse a meglévő Templates_LL projektet.
- Ekkor a portolás főként a Templates_LL lecseréléséből áll files az Examples_LL célzott projekt.
- Őrizze meg az összes táblaspecifikus alkatrészt. Az áttekinthetőség érdekében a táblaspecifikus részek specifikus jelzéssel vannak megjelölve tags:
- Így a portolás fő lépései a következők:
- Cserélje ki az stm32wbaxx_it.h fájlt file
- Cserélje ki az stm32wbaxx_it.c fájlt file
- Cserélje ki a fő.h file és frissítse: Tartsa meg az LL-sablon LED-jét és a felhasználói gomb definícióját a BOARD SPECIFIC CONFIGURATION alatt tags.
- Cserélje ki a fő.c file és frissítsd:
- Tartsa meg a SystemClock_Config() LL sablonfüggvény órakonfigurációját a BOARD SPECIFIC CONFIGURATION alatt tags.
- A LED definíciójától függően cserélje ki az egyes LDx előfordulásokat egy másik, a főben elérhető LDy-re.h file.
- Ezekkel a módosításokkal az example most a megcélzott táblán fut
Biztonsági alkalmazások
Ezt a csomagot biztonsági alkalmazásokkal szállítjuk.
SBSFU alkalmazások
- Az SBSFU egy Root of Trust megoldást biztosít, beleértve a Secure Boot és a Secure Firmware Update funkciókat (MCUboot alapján).
- A megoldás az alkalmazás végrehajtása előtt kerül felhasználásra.
- A megoldás egy example egy biztonságos szolgáltatás (GPIO kapcsoló), amely el van szigetelve a nem biztonságos alkalmazástól. A futási időben nem biztonságos alkalmazás továbbra is használhatja ezt a megoldást.
TFM alkalmazások
A TFM Root of Trust megoldást kínál, beleértve a biztonságos rendszerindítást és a biztonságos firmware frissítési funkciókat
(MCUboot alapján). A megoldás az alkalmazás végrehajtása előtt kerül felhasználásra. A megoldás a nem biztonságos alkalmazástól elkülönített TFM biztonságos szolgáltatásokat nyújt. A futási időben nem biztonságos alkalmazás továbbra is használhatja ezt a megoldást.
RF alkalmazások
Az RF alkalmazás leírása a következő alkalmazási megjegyzésben található: Vezeték nélküli alkalmazások építése STM32WBA sorozatú mikrovezérlőkkel (AN5928).
STM32CubeWBA kiadási frissítések beszerzése
A legújabb STM32CubeWBA MCU csomag kiadások és javítások az STM32WBA sorozattól érhetők el. Ezeket az STM32CubeMX CHECK FOR UPDATE gombjával lehet letölteni. További részletekért lásd az STM3CubeMX felhasználói kézikönyv 32. szakaszát az STM32 konfigurálásához és inicializálási C kód generálásához (UM1718).
GYIK
- Mikor használjak HAL-t LL illesztőprogramok helyett?
- A HAL illesztőprogramok magas szintű és funkcióorientált API-kat kínálnak, magas szintű hordozhatósággal. A termék vagy a periféria összetettsége rejtett a végfelhasználók számára.
- Az LL-illesztőprogramok alacsony szintű, regiszterszintű API-kat kínálnak, jobb optimalizálással, de kevésbé hordozhatók. A termék- vagy IP-specifikációk mélyreható ismerete szükséges.
- Használhatom együtt a HAL és LL illesztőprogramokat? Ha tehetem, mik a korlátok?
- Lehetőség van HAL és LL meghajtók használatára is. Használja a HAL-t az IP inicializálási fázishoz, majd kezelje az I/O műveleteket LL illesztőprogramokkal.
- A fő különbség a HAL és az LL között az, hogy a HAL-illesztőprogramoknak kezelőelemeket kell létrehozniuk és használniuk kell a műveletkezeléshez, míg az LL-illesztőprogramok közvetlenül a perifériás regisztereken működnek. Az Examples_MIX plample szemlélteti a HAL és LL keverését.
- Hogyan engedélyezettek az LL inicializálási API-k?
- Az LL inicializálási API-k és a kapcsolódó erőforrások (struktúrák, literálok és prototípusok) meghatározását a USE_FULL_LL_DRIVER fordítási kapcsoló határozza meg.
- Az LL inicializálási API-k használatához adja hozzá ezt a kapcsolót az eszközlánc-fordító előfeldolgozójához.
- Hogyan tud STM32CubeMX kódot generálni beágyazott szoftver alapján?
Az STM32CubeMX beépített ismeretekkel rendelkezik az STM32 mikrokontrollerekről, beleértve azok perifériáit és szoftvereit, amelyek lehetővé teszik a felhasználó grafikus megjelenítését és *.h vagy *.c generálását. files a felhasználói konfiguráción alapul.
FONTOS MEGJEGYZÉS – OLVASSA EL FIGYELMESEN
- Az STMicroelectronics NV és leányvállalatai („ST”) fenntartják a jogot, hogy bármikor, előzetes értesítés nélkül módosítsák, javítsák, bővítsék, módosítsák és tökéletesítsék az ST-termékeket és/vagy ezt a dokumentumot. A vásárlóknak meg kell szerezniük a legfrissebb releváns információkat az ST-termékekről a rendelés leadása előtt. Az ST termékek értékesítése a megrendelés visszaigazolásakor érvényes ST értékesítési feltételek szerint történik.
- Kizárólag a vásárlók felelősek az ST-termékek kiválasztásáért, kiválasztásáért és használatáért, és az ST nem vállal felelősséget az alkalmazási segítségért vagy a vásárlók termékeinek tervezéséért.
- Az ST jelen dokumentumban semmilyen szellemi tulajdonjogra nem ad kifejezett vagy hallgatólagos licencet.
- Az ST-termékeknek az itt leírtaktól eltérő rendelkezésekkel történő viszonteladása érvénytelenít minden, az ST által az ilyen termékre adott garanciát.
- Az ST és az ST logó az ST védjegyei. Az ST védjegyekkel kapcsolatos további információkért látogasson el a www.st.com/trademarks webhelyre. Az összes többi termék- vagy szolgáltatásnév a megfelelő tulajdonosok tulajdona.
- A jelen dokumentumban szereplő információk felülírják és felváltják a jelen dokumentum bármely korábbi verziójában korábban megadott információkat.
- © 2023 STMicroelectronics – Minden jog fenntartva
Dokumentumok / Források
![]() |
STMicroelectronics STM32WBA sorozat – Kezdő lépések [pdf] Felhasználói kézikönyv STM32WBA sorozat Kezdő lépések, Első lépések, Kezdés |