STMicroelectronics STM32WBA सीरीज आरंभ करना
उत्पाद की जानकारी
विशेष विवरण:
- प्रोडक्ट का नाम: STM32CubeWBA MCU पैकेज
- निर्माता: एसटीमाइक्रोइलेक्ट्रॉनिक्स
- अनुकूलता: STM32WBA श्रृंखला माइक्रोकंट्रोलर
- लाइसेंसिंग: ओपन-सोर्स BSD लाइसेंस
उत्पाद उपयोग निर्देश
STM32CubeWBA MCU पैकेज की मुख्य विशेषताएं:
STM32CubeWBA MCU पैकेज STM32WBA सीरीज माइक्रोकंट्रोलर पर एप्लिकेशन विकसित करने के लिए सभी आवश्यक एम्बेडेड सॉफ़्टवेयर घटक प्रदान करता है। यह STM32 सीरीज के भीतर अत्यधिक पोर्टेबल है और HAL और LL API के साथ आता है, उदाहरण के लिएampलेस, और मिडलवेयर घटक।
वास्तुकला खत्मview:
STM32CubeWBA MCU पैकेज की वास्तुकला में तीन स्तर शामिल हैं - अनुप्रयोग, लाइब्रेरी और प्रोटोकॉल-आधारित घटक, हार्डवेयर अमूर्त परत, BSP ड्राइवर, कोर ड्राइवर और निम्न-परत API।
सामान्य प्रश्न
- STM32CubeWBA MCU पैकेज में क्या शामिल है?
पैकेज में निम्न-स्तर (एलएल) और हार्डवेयर अमूर्तन स्तर (एचएएल) एपीआई शामिल हैं, जैसेampलेस, अनुप्रयोग, मिडलवेयर घटक जैसे FileX/LevelX, NetX Duo, mbed-क्रिप्टो लाइब्रेरीज़, और बहुत कुछ। - क्या STM32CubeWBA MCU पैकेज STM32CubeMX कोड जनरेटर के साथ संगत है?
हां, यह पैकेज आरंभीकरण कोड उत्पन्न करने के लिए STM32CubeMX कोड जनरेटर के साथ पूरी तरह से संगत है।
परिचय
- STM32Cube विकास प्रयास, समय और लागत को कम करके डिजाइनर उत्पादकता में उल्लेखनीय सुधार लाने के लिए एक STMicroelectronics मूल पहल है। STM32Cube संपूर्ण STM32 पोर्टफोलियो को कवर करता है।
STM32Cube में शामिल हैं:- अवधारणा से प्राप्ति तक परियोजना विकास को कवर करने के लिए उपयोगकर्ता के अनुकूल सॉफ्टवेयर विकास उपकरण का एक सेट, जिनमें से हैं:
- STM32CubeMX, एक ग्राफिकल सॉफ्टवेयर कॉन्फ़िगरेशन टूल है जो ग्राफिकल विजार्ड्स का उपयोग करके C इनिशियलाइज़ेशन कोड की स्वचालित पीढ़ी की अनुमति देता है
- STM32CubeIDE, परिधीय विन्यास, कोड निर्माण, कोड संकलन और डिबग सुविधाओं के साथ एक संपूर्ण विकास उपकरण
- STM32CubeCLT, कोड संकलन, बोर्ड प्रोग्रामिंग और डिबग सुविधाओं के साथ एक ऑल-इन-वन कमांड-लाइन डेवलपमेंट टूलसेट
- STM32CubeProgrammer (STM32CubeProg), एक प्रोग्रामिंग टूल जो ग्राफिकल और कमांड-लाइन संस्करणों में उपलब्ध है
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), वास्तविक समय में STM32 अनुप्रयोगों के व्यवहार और प्रदर्शन को ठीक करने के लिए शक्तिशाली निगरानी उपकरण
- STM32Cube MCU और MPU पैकेज, प्रत्येक माइक्रोकंट्रोलर और माइक्रोप्रोसेसर श्रृंखला के लिए विशिष्ट व्यापक एम्बेडेड-सॉफ्टवेयर प्लेटफ़ॉर्म (जैसे STM32WBA श्रृंखला के लिए STM32CubeWBA), जिसमें शामिल हैं:
- STM32Cube हार्डवेयर एब्स्ट्रैक्शन लेयर (HAL), STM32 पोर्टफोलियो में अधिकतम पोर्टेबिलिटी सुनिश्चित करता है
- STM32Cube लो-लेयर एपीआई, हार्डवेयर पर उच्च स्तर के उपयोगकर्ता नियंत्रण के साथ सर्वश्रेष्ठ प्रदर्शन और पैरों के निशान सुनिश्चित करता है
- थ्रेडएक्स जैसे मिडलवेयर घटकों का एक सुसंगत सेट, Fileएक्स / लेवलएक्स, नेटएक्स डुओ, यूएसबीएक्स, टच लाइब्रेरी, एमबीड-क्रिप्टो, टीएफएम, एमसीयूबूट, ओपनबीएल, और एसटीएम 32_डब्ल्यूपीएन (ब्लूटूथ® लो एनर्जी प्रो सहित)files और सेवाएँ, मेश, ज़िगबी®, ओपनथ्रेड, मैटर, और 802.15.4 मैक परत)
- पेरिफेरल और एप्लिकेटिव के पूरे सेट के साथ सभी एम्बेडेड सॉफ्टवेयर यूटिलिटीजampलेस
- STM32Cube विस्तार पैकेज, जिसमें एम्बेडेड सॉफ़्टवेयर घटक होते हैं जो STM32Cube MCU और MPU पैकेज की कार्यात्मकताओं को पूरक करते हैं:
- मिडलवेयर एक्सटेंशन और लागू परतें
- Exampकुछ विशिष्ट STMicroelectronics विकास बोर्डों पर चल रहा है
- अवधारणा से प्राप्ति तक परियोजना विकास को कवर करने के लिए उपयोगकर्ता के अनुकूल सॉफ्टवेयर विकास उपकरण का एक सेट, जिनमें से हैं:
- यह उपयोगकर्ता मैनुअल बताता है कि STM32CubeWBA MCU पैकेज के साथ कैसे शुरुआत करें।
- अनुभाग 2 STM32CubeWBA मुख्य विशेषताएं STM32CubeWBA MCU पैकेज की मुख्य विशेषताओं का वर्णन करता है।
- अनुभाग 3 STM32CubeWBA आर्किटेक्चरview एक ओवर प्रदान करता हैview STM32CubeWBA आर्किटेक्चर और MCU पैकेज संरचना का।
सामान्य जानकारी
STM32CubeWBA MCU पैकेज, Arm® TrustZone® और FPU के साथ Arm® Cortex®-M32 प्रोसेसर पर आधारित STM32 33-बिट माइक्रोकंट्रोलर पर चलता है।
टिप्पणी: आर्म और ट्रस्टज़ोन यूएस और/या अन्य जगहों पर आर्म लिमिटेड (या इसकी सहायक कंपनियों) के पंजीकृत ट्रेडमार्क हैं।
STM32CubeWBA मुख्य विशेषताएं
- STM32CubeWBA MCU पैकेज, TrustZone® और FPU के साथ Arm® Cortex®-M32 प्रोसेसर पर आधारित STM32 33-बिट माइक्रोकंट्रोलर पर चलता है।
- STM32CubeWBA, STM32WBA श्रृंखला माइक्रोकंट्रोलर के लिए एक एप्लिकेशन विकसित करने के लिए आवश्यक सभी सामान्य एम्बेडेड सॉफ़्टवेयर घटकों को एक ही पैकेज में एकत्रित करता है। STM32Cube पहल के अनुरूप, घटकों का यह सेट अत्यधिक पोर्टेबल है, न केवल STM32WBA श्रृंखला माइक्रोकंट्रोलर के भीतर बल्कि अन्य STM32 श्रृंखलाओं के लिए भी।
- STM32CubeWBA, आरंभीकरण कोड उत्पन्न करने के लिए STM32CubeMX कोड जनरेटर के साथ पूरी तरह से संगत है। पैकेज में लो-लेयर (LL) और हार्डवेयर एब्स्ट्रक्शन लेयर (HAL) API शामिल हैं जो माइक्रोकंट्रोलर हार्डवेयर को कवर करते हैं, साथ ही साथ विस्तृत सेट भी शामिल है।ampSTMicroelectronics बोर्ड पर चलने वाले लेस। उपयोगकर्ता की सुविधा के लिए HAL और LL API ओपन-सोर्स BSD लाइसेंस में उपलब्ध हैं।
- STM32CubeWBA MCU पैकेज में Microsoft® Azure® RTOS मिडलवेयर और अन्य इन-हाउस और ओपन-सोर्स स्टैक के आसपास निर्मित एक व्यापक मिडलवेयर घटक भी शामिल है, जिसमें संबंधित एक्स शामिल हैंampलेस.
- वे निःशुल्क, उपयोगकर्ता-अनुकूल लाइसेंस शर्तों के साथ आते हैं:
- एकीकृत और पूर्ण-विशेषताओं वाला Azure® RTOS: Azure® RTOS थ्रेडएक्स
- Azure® RTOS थ्रेडएक्स के साथ CMSIS-RTOS कार्यान्वयन
- USB होस्ट और डिवाइस स्टैक कई क्लासों के साथ आ रहे हैं: Azure® RTOS USBX
- विकसित file सिस्टम और फ्लैश अनुवाद परत: Fileएक्स / लेवलएक्स
- औद्योगिक ग्रेड नेटवर्किंग स्टैक: कई IoT प्रोटोकॉल के साथ आने वाले प्रदर्शन के लिए अनुकूलित: NetX Duo
- ओपनबूटलोडर
- आर्म® विश्वसनीय फ़र्मवेयर-एम (TF‑M) एकीकरण समाधान
- mbed-क्रिप्टो लाइब्रेरीज़
- एसटी नेटवर्क लाइब्रेरी
- STMTouch स्पर्श संवेदन लाइब्रेरी समाधान
- इन सभी मिडलवेयर घटकों को कार्यान्वित करने वाले कई अनुप्रयोग और प्रदर्शन भी STM32CubeWBA MCU पैकेज में प्रदान किए गए हैं।
- STM32CubeWBA MCU पैकेज घटक लेआउट चित्र 1 में दिखाया गया है। STM32CubeWBA MCU पैकेज घटक।
STM32CubeWBA आर्किटेक्चरview
STM32CubeWBA MCU पैकेज समाधान तीन स्वतंत्र स्तरों के आसपास बनाया गया है जो आसानी से परस्पर क्रिया करते हैं जैसा कि चित्र 2 में वर्णित है। STM32CubeWBA MCU पैकेज आर्किटेक्चर।
स्तर 0
यह स्तर तीन उप-स्तरों में विभाजित है:
- बोर्ड सहायता पैकेज (बीएसपी)।
- हार्डवेयर अमूर्तन परत (HAL):
- एचएएल परिधीय ड्राइवर
- निम्न-स्तर ड्राइवर
- बुनियादी परिधीय उपयोग उदाampलेस.
बोर्ड सहायता पैकेज (बीएसपी)
यह परत हार्डवेयर बोर्ड (जैसे LCD, ऑडियो,\ microSD™, और MEMS ड्राइवर) में हार्डवेयर घटकों से संबंधित API का एक सेट प्रदान करती है। यह दो भागों से बना है:
- घटक ड्राइवर:
यह ड्राइवर बोर्ड पर बाहरी डिवाइस से संबंधित है, न कि STM32 डिवाइस से। घटक ड्राइवर BSP ड्राइवर बाहरी घटकों को विशिष्ट API प्रदान करता है और किसी भी अन्य बोर्ड पर पोर्टेबल हो सकता है। - बीएसपी ड्राइवर:
बीएसपी ड्राइवर घटक ड्राइवरों को एक विशिष्ट बोर्ड से जोड़ने की अनुमति देता है, और उपयोगकर्ता के अनुकूल उपकरणों का एक सेट प्रदान करता है।
APIs. API नामकरण नियम BSP_FUNCT_Action() है.
Exampलेबल: BSP_LED_Init(), BSP_LED_On()
बीएसपी एक मॉड्यूलर आर्किटेक्चर पर आधारित है जो निम्न-स्तरीय रूटीन को लागू करके किसी भी हार्डवेयर पर आसान पोर्टिंग की अनुमति देता है।
हार्डवेयर अमूर्त परत (एचएएल) और निम्न परत (एलएल)
STM32CubeWBA HAL और LL पूरक हैं और अनुप्रयोग आवश्यकताओं की एक विस्तृत श्रृंखला को कवर करते हैं:
- HAL ड्राइवर उच्च-स्तरीय फ़ंक्शन-उन्मुख अत्यधिक पोर्टेबल API प्रदान करते हैं। वे अंतिम उपयोगकर्ता के लिए MCU और परिधीय जटिलता को छिपाते हैं।
HAL ड्राइवर जेनेरिक मल्टी-इंस्टेंस फ़ीचर-ओरिएंटेड API प्रदान करते हैं, जो उपयोग के लिए तैयार प्रक्रियाएँ प्रदान करके उपयोगकर्ता एप्लिकेशन कार्यान्वयन को सरल बनाते हैं। उदाहरण के लिएampसंचार परिधीयों (I2S, UART, और अन्य) के लिए, यह API प्रदान करता है जो परिधीय को आरंभ करने और कॉन्फ़िगर करने, पोलिंग, इंटरप्टिंग या DMA प्रक्रिया के आधार पर डेटा ट्रांसफर को प्रबंधित करने और संचार के दौरान उत्पन्न होने वाली संचार त्रुटियों को संभालने की अनुमति देता है। HAL ड्राइवर API दो श्रेणियों में विभाजित हैं:- जेनेरिक एपीआई, जो सभी STM32 श्रृंखला माइक्रोकंट्रोलर्स को सामान्य और जेनेरिक फ़ंक्शन प्रदान करते हैं।
- एक्सटेंशन एपीआई, जो किसी विशिष्ट परिवार या विशिष्ट भाग संख्या के लिए विशिष्ट और अनुकूलित फ़ंक्शन प्रदान करते हैं।
- निम्न-स्तरीय एपीआई रजिस्टर स्तर पर निम्न-स्तरीय एपीआई प्रदान करते हैं, जिसमें बेहतर अनुकूलन होता है, लेकिन पोर्टेबिलिटी कम होती है।
- उन्हें MCU और परिधीय विनिर्देशों का गहन ज्ञान आवश्यक है।
- एलएल ड्राइवर्स को एक तेज, हल्के वजन वाली विशेषज्ञ-उन्मुख परत प्रदान करने के लिए डिज़ाइन किया गया है जो एचएएल की तुलना में हार्डवेयर के अधिक करीब है। एचएएल के विपरीत, एलएल एपीआई उन परिधीय उपकरणों के लिए प्रदान नहीं किए जाते हैं जहां अनुकूलित पहुंच एक प्रमुख विशेषता नहीं है, या जिनके लिए भारी सॉफ़्टवेयर कॉन्फ़िगरेशन या जटिल ऊपरी-स्तरीय स्टैक की आवश्यकता होती है।
- एलएल ड्राइवर की विशेषताएं:
- डेटा संरचनाओं में निर्दिष्ट मापदंडों के अनुसार परिधीय मुख्य विशेषताओं को आरंभ करने के लिए कार्यों का एक सेट।
- प्रत्येक फ़ील्ड के संगत रीसेट मानों के साथ आरंभीकरण डेटा संरचनाओं को भरने के लिए फ़ंक्शनों का एक सेट।
- परिधीय विप्रारंभीकरण (परिधीय रजिस्टरों को उनके डिफ़ॉल्ट मानों पर पुनर्स्थापित करना) के लिए फ़ंक्शन.
- प्रत्यक्ष और परमाणु रजिस्टर पहुंच के लिए इनलाइन फ़ंक्शनों का एक सेट।
- एचएएल से पूर्ण स्वतंत्रता और स्टैंडअलोन मोड में उपयोग की क्षमता (एचएएल ड्राइवरों के बिना)।
- समर्थित परिधीय सुविधाओं का पूर्ण कवरेज।
बुनियादी परिधीय उपयोग उदाampलेस
यह परत एक्स को घेरती हैampकेवल HAL और BSP संसाधनों का उपयोग करके STM32 बाह्य उपकरणों पर निर्मित फ़ाइलें।
स्तर 1
यह स्तर दो उप-स्तरों में विभाजित है:
- मिडलवेयर घटक
- Exampमिडलवेयर घटकों पर आधारित लेस
मिडलवेयर घटक
- मिडलवेयर ब्लूटूथ® लो एनर्जी (लिंकलेयर, एचसीआई, स्टैक), थ्रेड®, जिगबी® को कवर करने वाली लाइब्रेरीज़ का एक सेट है।
- मैटर, ओपनबूटलोडर, माइक्रोसॉफ्ट® एज़्योर® आरटीओएस, टीएफ-एम, एमसीयूबूट और एमबीड-क्रिप्टो।
- इस परत के घटकों के बीच क्षैतिज अंतःक्रिया फीचर्ड एपीआई को कॉल करके की जाती है।
- निम्न-स्तर ड्राइवरों के साथ ऊर्ध्वाधर अंतःक्रिया, लाइब्रेरी सिस्टम कॉल इंटरफ़ेस में कार्यान्वित विशिष्ट कॉलबैक और स्थिर मैक्रोज़ के माध्यम से की जाती है।
- प्रत्येक मिडलवेयर घटक की मुख्य विशेषताएं इस प्रकार हैं:
- माइक्रोसॉफ्ट® एज़्योर® RTOS
- Azure® RTOS थ्रेडएक्स: एक वास्तविक समय ऑपरेटिंग सिस्टम (RTOS), जिसे दो कार्यात्मक मोड के साथ एम्बेडेड सिस्टम के लिए डिज़ाइन किया गया है।
- सामान्य मोड: सामान्य RTOS कार्यक्षमताएं जैसे थ्रेड प्रबंधन और सिंक्रनाइज़ेशन, मेमोरी पूल प्रबंधन, मैसेजिंग और इवेंट हैंडलिंग।
- मॉड्यूल मोड: एक उन्नत उपयोगकर्ता मोड जो मॉड्यूल प्रबंधक के माध्यम से प्रीलिंक्ड थ्रेडएक्स मॉड्यूल को लोड करने और अनलोड करने की अनुमति देता है।
- नेटएक्स डुओ
- FileX
- यूएसबीएक्स
- Azure® RTOS थ्रेडएक्स: एक वास्तविक समय ऑपरेटिंग सिस्टम (RTOS), जिसे दो कार्यात्मक मोड के साथ एम्बेडेड सिस्टम के लिए डिज़ाइन किया गया है।
- ब्लूटूथ® लो एनर्जी (BLE): लिंक और स्टैक परतों के लिए ब्लूटूथ® लो एनर्जी प्रोटोकॉल को क्रियान्वित करता है।
- MCUboot (ओपन सोर्स सॉफ्टवेयर)
- स्टैक और संबंधित क्लस्टरों के लिए ज़िगबी® प्रोटोकॉल।
- थ्रेड® प्रोटोकॉल स्टैक और लिंक परत।
- Arm® विश्वसनीय फर्मवेयर-M, TF‑M (ओपन-सोर्स सॉफ्टवेयर): संबद्ध सुरक्षित सेवाओं के साथ TrustZone® के लिए Arm® प्लेटफ़ॉर्म सुरक्षा आर्किटेक्चर (PSA) का संदर्भ कार्यान्वयन।
- mbed-crypto (ओपन-सोर्स सॉफ्टवेयर): mbed-crypto मिडलवेयर एक PSA क्रिप्टोग्राफी API कार्यान्वयन प्रदान करता है।
- STM32 टच सेंसिंग लाइब्रेरी: मज़बूत STMTouch कैपेसिटिव टच सेंसिंग समाधान, निकटता, टचकी, रैखिक और रोटरी टच सेंसर का समर्थन करता है। यह एक सिद्ध सतह चार्ज ट्रांसफर अधिग्रहण सिद्धांत पर आधारित है।
- माइक्रोसॉफ्ट® एज़्योर® RTOS
Exampमिडलवेयर घटकों पर आधारित लेस
प्रत्येक मिडलवेयर घटक एक या अधिक ex के साथ आता हैampलेस (जिन्हें एप्लीकेशन भी कहा जाता है) यह दिखाते हैं कि इसका उपयोग कैसे किया जाए। एकीकरण उदाहरणampकई मिडलवेयर घटकों का उपयोग करने वाली फाइलें भी प्रदान की जाती हैं।
STM32CubeWBA फर्मवेयर पैकेज खत्मview
समर्थित STM32WBA श्रृंखला डिवाइस और हार्डवेयर
- STM32Cube एक अत्यधिक पोर्टेबल हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL) प्रदान करता है, जो एक सामान्य आर्किटेक्चर के आसपास निर्मित है। यह बिल्ड-अप लेयर्स सिद्धांत की अनुमति देता है, जैसे कि MCU का उपयोग किए बिना, गहराई से जाने बिना अपने कार्यों को लागू करने के लिए मिडलवेयर लेयर का उपयोग करना। यह लाइब्रेरी कोड की पुन: प्रयोज्यता में सुधार करता है और अन्य उपकरणों के लिए आसान पोर्टेबिलिटी सुनिश्चित करता है।
- इसके अलावा, इसकी स्तरित वास्तुकला के कारण, STM32CubeWBA सभी STM32WBA श्रृंखलाओं के लिए पूर्ण समर्थन प्रदान करता है।
- उपयोगकर्ता को केवल stm32wbaxx.h में सही मैक्रो परिभाषित करना है।
- तालिका 1 में STM32WBA श्रृंखला डिवाइस के आधार पर परिभाषित करने के लिए मैक्रो दिखाया गया है। इस मैक्रो को कंपाइलर प्रीप्रोसेसर में भी परिभाषित किया जाना चाहिए।
तालिका 1. STM32WBA श्रृंखला के लिए मैक्रोज़stm32wbaxx.h में परिभाषित मैक्रो STM32WBA श्रृंखला डिवाइस :stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 :stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA में ex का एक समृद्ध सेट हैampसभी स्तरों पर फ़ाइलों और अनुप्रयोगों को समझना और किसी भी HAL ड्राइवर या मिडलवेयर घटकों का उपयोग करना आसान बनाता है। ये एक्सampतालिका 2 में सूचीबद्ध एसटीमाइक्रोइलेक्ट्रॉनिक्स बोर्डों पर चलने वाले मॉडल।
तालिका 2. STM32WBA श्रृंखला के लिए बोर्डतख़्ता बोर्ड STM32WBA समर्थित डिवाइस न्यूक्लियो-WBA52CG एसटीएम32WBA52CGU6 न्यूक्लियो-WBA55CG एसटीएम32WBA55CGU6 एसटीएम32WBA55-डीके1 एसटीएम32WBA55CGU7 - STM32CubeWBA MCU पैकेज किसी भी संगत हार्डवेयर पर चल सकता है। उपयोगकर्ता बस दिए गए एक्स को पोर्ट करने के लिए BSP ड्राइवर को अपडेट करता हैampबोर्ड पर लेस, यदि उत्तरार्द्ध में समान हार्डवेयर विशेषताएं हैं (जैसे एलईडी, एलसीडी डिस्प्ले और बटन)।
फर्मवेयर पैकेज खत्मview
- STM32CubeWBA पैकेज समाधान एक एकल ज़िप पैकेज में प्रदान किया गया है जिसकी संरचना चित्र 3 में दिखाई गई है। STM32CubeWBA फर्मवेयर पैकेज संरचना।
- प्रत्येक बोर्ड के लिए, उदाहरणों का एक सेटamples को EWARM, MDK-ARM, और STM32CubeIDE टूलचेन के लिए पूर्व-कॉन्फ़िगर किए गए प्रोजेक्ट प्रदान किए गए हैं।
- चित्र 4. STM32CubeWBA एक्सampखत्म हो गयाview NUCLEO‑WBA52CG, NUCLEO-WBA55CG और STM32WBA55G-DK1 बोर्डों के लिए परियोजना संरचना दिखाता है।
- भूतपूर्वampफ़ाइलों को उस STM32Cube स्तर के आधार पर वर्गीकृत किया जाता है जिस पर वे लागू होते हैं, और उन्हें निम्नानुसार नाम दिया गया है:
- लेवल 0 पूर्वampलेस को एक्स कहा जाता हैampलेस, एक्सamples_LL, और पूर्वamples_MIX. वे क्रमशः HAL ड्राइवर, LL ड्राइवर, तथा बिना किसी मिडलवेयर घटक के HAL और LL ड्राइवरों के मिश्रण का उपयोग करते हैं।
- लेवल 1 पूर्वampलेस को एप्लीकेशन कहा जाता है। वे प्रत्येक मिडलवेयर घटक के विशिष्ट उपयोग के मामले प्रदान करते हैं। किसी दिए गए बोर्ड के लिए कोई भी फ़र्मवेयर एप्लिकेशन टेम्पल एट्स और टेम्प्लेट्स_एलएल निर्देशिकाओं में उपलब्ध टेम्पलेट प्रोजेक्ट्स की बदौलत जल्दी से बनाया जा सकता है।
ट्रस्टज़ोन® सक्षम परियोजनाएँ
- TrustZone® सक्षम Exampसभी नामों में _TrustZone उपसर्ग होता है। यह नियम अनुप्रयोगों के लिए भी लागू होता है (TFM और SBSFU को छोड़कर, जो मूल रूप से TrustZone® के लिए हैं)।
- ट्रस्टज़ोन®-सक्षम एक्सampफ़ाइलों और अनुप्रयोगों को सुरक्षित और असुरक्षित उप-परियोजनाओं से बनी एक बहु-परियोजना संरचना प्रदान की जाती है जैसा कि चित्र 5 में प्रस्तुत किया गया है। बहु-परियोजना सुरक्षित और असुरक्षित परियोजना संरचना।
- ट्रस्टज़ोन®-सक्षम परियोजनाएं CMSIS-5 डिवाइस टेम्पलेट के अनुसार विकसित की जाती हैं, जिन्हें सिस्टम विभाजन हेडर को शामिल करने के लिए विस्तारित किया जाता है file विभाजन_ .h, जो मुख्य रूप से सुरक्षित विशेषता इकाई (SAU), FPU, और सुरक्षित निष्पादन स्थिति में सुरक्षित/असुरक्षित इंटरप्ट असाइनमेंट की स्थापना के लिए जिम्मेदार है।
- यह सेटअप सुरक्षित CMSIS SystemInit() फ़ंक्शन में किया जाता है, जिसे सुरक्षित एप्लिकेशन main() फ़ंक्शन में प्रवेश करने से पहले स्टार्टअप पर कॉल किया जाता है। सॉफ़्टवेयर दिशा-निर्देशों के Arm® TrustZone®-M दस्तावेज़ देखें।
- STM32CubeWBA पैकेज फर्मवेयर पैकेज विभाजन में डिफ़ॉल्ट मेमोरी विभाजन प्रदान करता है _ ।एच files नीचे उपलब्ध है: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- इन विभाजनों में files, SAU डिफ़ॉल्ट रूप से अक्षम है। परिणामस्वरूप, IDAU मेमोरी मैपिंग का उपयोग सुरक्षा एट्रिब्यूशन के लिए किया जाता है। RM0495 संदर्भ मैनुअल में TrustZone® तकनीक का उपयोग करके सुरक्षित/असुरक्षित विभाजन का चित्र देखें।
- यदि उपयोगकर्ता SAU को सक्षम करता है, तो विभाजन में डिफ़ॉल्ट SAU क्षेत्र कॉन्फ़िगरेशन पूर्वनिर्धारित होता है fileइस प्रकार है:
- SAU क्षेत्र 0: 0x08080000 – 0x081FFFFF (फ़्लैश मेमोरी का असुरक्षित आधा भाग (512 Kbytes))
- SAU क्षेत्र 1: 0x0BF88000 – 0x0BF97FFF (असुरक्षित सिस्टम मेमोरी)
- SAU क्षेत्र 2: 0x0C07E000 – 0x0C07FFFF (सुरक्षित, असुरक्षित कॉल करने योग्य)
- SAU क्षेत्र 3: 0x20010000 – 0x2001FFFF (असुरक्षित SRAM2 (64 Kbytes))
- SAU क्षेत्र 4: 0x40000000 – 0x4FFFFFFF (असुरक्षित परिधीय मैप की गई मेमोरी)
- डिफ़ॉल्ट विभाजन से मेल खाने के लिए, STM32WBAxx श्रृंखला डिवाइस में निम्नलिखित उपयोगकर्ता विकल्प बाइट्स सेट होने चाहिए:
- TZEN = 1 (ट्रस्टज़ोन®-सक्षम डिवाइस)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (आंतरिक फ्लैश मेमोरी के 64 में से 128 पृष्ठ सुरक्षित के रूप में सेट हैं) नोट: आंतरिक फ्लैश मेमोरी TZEN = 1 में डिफ़ॉल्ट रूप से पूरी तरह सुरक्षित है। उपयोगकर्ता विकल्प बाइट्स SECWM1_PSTRT/ SECWM1_PEND को एप्लिकेशन मेमोरी कॉन्फ़िगरेशन (SAU क्षेत्र, यदि SAU सक्षम है) के अनुसार सेट किया जाना चाहिए। सुरक्षित/असुरक्षित एप्लिकेशन प्रोजेक्ट लिंकर fileको भी संरेखित किया जाना चाहिए।
- सभी पूर्वampलेस की संरचना समान है:
- \Inc फ़ोल्डर जिसमें सभी हेडर शामिल हैं files.
- Src फ़ोल्डर जिसमें स्रोत कोड है।
- \EWARM, \MDK-ARM, और \STM32CubeIDE फ़ोल्डर्स में प्रत्येक टूलचेन के लिए पूर्व-कॉन्फ़िगर किया गया प्रोजेक्ट शामिल है।
- readme.md और readme.html पूर्व का वर्णन करते हैंampइसे कार्य करने के लिए व्यवहार और आवश्यक वातावरण की आवश्यकता होती है।
- आईओसी file जो उपयोगकर्ताओं को अधिकांश फर्मवेयर एक्स को खोलने की अनुमति देता हैampSTM32CubeMX के भीतर les.
STM32CubeWBA के साथ आरंभ करना
पहला HAL एक्स चलानाample
यह अनुभाग बताता है कि पहला एक्स चलाना कितना सरल हैampSTM32CubeWBA के भीतर ले। यह एक उदाहरण के रूप में NUCLEO-WBA52CG बोर्ड पर चलने वाले एक साधारण एलईडी टॉगल की पीढ़ी का उपयोग करता है:
- STM32CubeWBA MCU पैकेज डाउनलोड करें.
- इसे अपनी पसंद की डायरेक्टरी में अनज़िप करें।
- सुनिश्चित करें कि चित्र 1 में दिखाए गए पैकेज संरचना को संशोधित न करें। यह भी अनुशंसा की जाती है कि पैकेज को अपने रूट वॉल्यूम (अर्थात C:\ST या G:\Tests) के निकट स्थान पर कॉपी करें, क्योंकि कुछ IDE में तब समस्या आती है जब पथ की लंबाई बहुत अधिक होती है।
पहला TrustZone® सक्षम एक्स चलानाample
- TrustZone® सक्षम एक्स को लोड करने और चलाने से पहलेampले, पूर्व पढ़ना अनिवार्य हैampले रीडमी file किसी विशिष्ट कॉन्फ़िगरेशन के लिए, जो यह सुनिश्चित करता है कि सुरक्षा अनुभाग 4.2.1 ट्रस्टज़ोन® सक्षम परियोजनाओं (TZEN=1 (उपयोगकर्ता विकल्प बाइट)) में वर्णित अनुसार सक्षम है।
- \Projects\NUCLEO-WBA52CG\Ex पर ब्राउज़ करेंampलेस.
- \GPIO खोलें, फिर \GPIO_IOToggle_TrustZone फ़ोल्डर खोलें.
- अपने पसंदीदा टूलचेन के साथ प्रोजेक्ट खोलें।view एक एक्स कैसे खोलें, बनाएं और चलाएंampसमर्थित टूलचेन के साथ फ़ाइल नीचे दी गई है।
- सभी सुरक्षित और असुरक्षित परियोजनाओं को क्रम से पुनः बनाएं fileसुरक्षित और असुरक्षित छवियों को लक्ष्य मेमोरी में लोड करें।
- पूर्व चलाएँampले: नियमित रूप से, सुरक्षित एप्लिकेशन हर सेकंड LD2 को टॉगल करता है, और असुरक्षित एप्लिकेशन LD3 को दोगुनी तेज़ी से टॉगल करता है। अधिक जानकारी के लिए, रीडमी देखें file पूर्व केampले.
- एक एक्स खोलने, बनाने और चलाने के लिएampसमर्थित टूलचेन के साथ काम करने के लिए, नीचे दिए गए चरणों का पालन करें:
- ईवार्म:
- पूर्व के तहतample फ़ोल्डर में, \EWARM सबफ़ोल्डर खोलें.
- Project.eww कार्यक्षेत्र लॉन्च करें
- xxxxx_S सुरक्षित प्रोजेक्ट का पुनर्निर्माण करें files: [प्रोजेक्ट]>[सभी का पुनर्निर्माण].
- xxxxx_NS असुरक्षित प्रोजेक्ट को सक्रिय अनुप्रयोग के रूप में सेट करें (xxxxx_NS प्रोजेक्ट पर राइट क्लिक करें [सक्रिय के रूप में सेट करें])
- xxxxx_NS असुरक्षित परियोजना का पुनर्निर्माण करें files: [प्रोजेक्ट]>[सभी का पुनर्निर्माण].
- असुरक्षित बाइनरी को [प्रोजेक्ट]>[डाउनलोड]>[सक्रिय एप्लिकेशन डाउनलोड करें] के साथ फ्लैश करें।
- xxxxx_S को सक्रिय अनुप्रयोग के रूप में सेट करें (xxxxx_S प्रोजेक्ट पर राइट क्लिक करें [सक्रिय के रूप में सेट करें])।
- [डाउनलोड और डीबग] (Ctrl+D) के साथ सुरक्षित बाइनरी को फ्लैश करें।
- प्रोग्राम चलाएँ: [डीबग]>[गो(F5)]
- एमडीके-एआरएम:
- \MDK-ARM टूलचेन खोलें.
- मल्टीप्रोजेक्ट्स कार्यक्षेत्र खोलें file प्रोजेक्ट.uvmpw.
- xxxxx_s प्रोजेक्ट को सक्रिय अनुप्रयोग के रूप में चुनें ([सक्रिय प्रोजेक्ट के रूप में सेट करें]).
- xxxxx_s परियोजना बनाएँ.
- xxxxx_ns प्रोजेक्ट को सक्रिय प्रोजेक्ट के रूप में चुनें ([सक्रिय प्रोजेक्ट के रूप में सेट करें]).
- xxxxx_ns परियोजना बनाएँ.
- असुरक्षित बाइनरी लोड करें ([F8])। यह \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf को फ़्लैश मेमोरी में डाउनलोड करता है)
- Project_s प्रोजेक्ट को सक्रिय प्रोजेक्ट के रूप में चुनें ([सक्रिय प्रोजेक्ट के रूप में सेट करें]).
- सुरक्षित बाइनरी लोड करें ([F8])। यह \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf को फ़्लैश मेमोरी में डाउनलोड करता है)।
- पूर्व चलाएँampले.
- STM32क्यूबआईडीई:
- STM32CubeIDE टूलचेन खोलें.
- मल्टीप्रोजेक्ट्स कार्यक्षेत्र खोलें file ।परियोजना।
- xxxxx_Secure परियोजना का पुनर्निर्माण करें.
- xxxxx_NonSecure परियोजना का पुनर्निर्माण करें.
- सुरक्षित प्रोजेक्ट के लिए [Debug as STM32 Cortex-M C/C++] एप्लिकेशन लॉन्च करें।
- [कॉन्फ़िगरेशन संपादित करें] विंडो में, [स्टार्टअप] पैनल का चयन करें, और असुरक्षित प्रोजेक्ट की छवि और प्रतीकों को लोड करें।
महत्वपूर्ण: असुरक्षित परियोजना को सुरक्षित परियोजना से पहले लोड किया जाना चाहिए। - ओके पर क्लिक करें]।
- पूर्व चलाएँampडीबग परिप्रेक्ष्य पर ले.
- ईवार्म:
पहला TrustZone® अक्षम एक्स चलानाample
- TrustZone® अक्षम एक्स को लोड करने और चलाने से पहलेampले, पूर्व पढ़ना अनिवार्य हैampले रीडमी file किसी भी विशिष्ट कॉन्फ़िगरेशन के लिए। यदि कोई विशिष्ट उल्लेख नहीं है, तो सुनिश्चित करें कि बोर्ड डिवाइस में सुरक्षा अक्षम है (TZEN=0 (उपयोगकर्ता विकल्प बाइट))। TZEN = 0 पर वैकल्पिक प्रतिगमन करने के लिए FAQ देखें
- \Projects\NUCLEO-WBA52CG\Ex पर ब्राउज़ करेंampलेस.
- \GPIO, फिर \GPIO_EXTI फ़ोल्डर खोलें.
- अपने पसंदीदा टूलचेन के साथ प्रोजेक्ट खोलें।view एक एक्स कैसे खोलें, बनाएं और चलाएंampसमर्थित टूलचेन के साथ फ़ाइल नीचे दी गई है।
- सभी का पुनर्निर्माण करें fileऔर अपनी छवि को लक्ष्य मेमोरी में लोड करें।
- पूर्व चलाएँampले: हर बार जब [USER] पुश-बटन दबाया जाता है, तो LD1 LED टॉगल हो जाती है। अधिक जानकारी के लिए, रीडमी देखें file पूर्व केampले.
- एक एक्स खोलने, बनाने और चलाने के लिएampसमर्थित टूलचेन के साथ काम करने के लिए, नीचे दिए गए चरणों का पालन करें:
- ईवार्म:
- पूर्व के तहतample फ़ोल्डर में, \EWARM सबफ़ोल्डर खोलें.
- Project.eww कार्यक्षेत्र लॉन्च करें (कार्यक्षेत्र का नाम एक उदाहरण से दूसरे उदाहरण में बदल सकता है)ampले को दूसरे में ले जाना)।
- सभी का पुनर्निर्माण करें files: [प्रोजेक्ट]>[सभी का पुनर्निर्माण].
- प्रोजेक्ट छवि लोड करें: [प्रोजेक्ट]>[डीबग].
- प्रोग्राम चलाएँ: [डीबग]>[जाओ (F5)].
- एमडीके-एआरएम:
- पूर्व के तहतample फ़ोल्डर में, \MDK-ARM सबफ़ोल्डर खोलें.
- Project.uvproj कार्यक्षेत्र लॉन्च करें (कार्यक्षेत्र का नाम एक उदाहरण से दूसरे उदाहरण में बदल सकता है)ampले को दूसरे में ले जाना)।
- सभी का पुनर्निर्माण करें files:[प्रोजेक्ट]>[सभी लक्ष्य का पुनर्निर्माण करें fileएस]।
- प्रोजेक्ट छवि लोड करें: [डीबग]>[डीबग सत्र प्रारंभ/रोकें].
- प्रोग्राम चलाएँ: [डीबग]>[रन (F5)].
- STM32क्यूबआईडीई:
- STM32CubeIDE टूलचेन खोलें.
- क्लिक करें [File]>[कार्यस्थान स्विच करें]>[अन्य] और STM32CubeIDE कार्यस्थान निर्देशिका तक ब्राउज़ करें।
- क्लिक करें [File]>[आयात करें], [सामान्य]>[कार्यस्थान में मौजूदा प्रोजेक्ट] का चयन करें, और फिर [अगला] पर क्लिक करें।
- STM32CubeIDE कार्यक्षेत्र निर्देशिका ब्राउज़ करें और प्रोजेक्ट का चयन करें।
- सभी परियोजनाओं का पुनर्निर्माण करें files: [प्रोजेक्ट एक्सप्लोरर] विंडो में प्रोजेक्ट का चयन करें फिर [प्रोजेक्ट]>[प्रोजेक्ट बनाएँ] मेनू पर क्लिक करें।
- प्रोग्राम चलाएँ: [Run]>[Debug (F11)]
- ईवार्म:
कस्टम एप्लिकेशन विकसित करना
टिप्पणी: फ्लैश मेमोरी से 0 प्रतीक्षा-स्थिति निष्पादन प्राप्त करने, तथा अधिकतम प्रदर्शन और बेहतर विद्युत खपत तक पहुंचने के लिए सॉफ्टवेयर को निर्देश कैश (ICACHE) को सक्षम करना होगा।
किसी एप्लिकेशन को विकसित या अद्यतन करने के लिए STM32CubeMX का उपयोग करना
- STM32CubeWBA MCU पैकेज में, लगभग सभी प्रोजेक्ट exampसिस्टम, बाह्य उपकरणों और मिडलवेयर को आरंभ करने के लिए STM32CubeMX टूल के साथ फ़ाइलें उत्पन्न की जाती हैं।
- किसी मौजूदा परियोजना का प्रत्यक्ष उपयोगampSTM32CubeMX उपकरण से फ़ाइल डाउनलोड करने के लिए STM32CubeMX 6.10.0 या उच्चतर संस्करण की आवश्यकता होती है:
- STM32CubeMX की स्थापना के बाद, प्रस्तावित प्रोजेक्ट को खोलें और यदि आवश्यक हो तो उसे अपडेट करें। मौजूदा प्रोजेक्ट को खोलने का सबसे सरल तरीका *.ioc पर डबल-क्लिक करना है। file ताकि STM32CubeMX स्वचालित रूप से प्रोजेक्ट और उसके स्रोत को खोल सके files.
- STM32CubeMX ऐसे प्रोजेक्ट्स का आरंभीकरण स्रोत कोड तैयार करता है। मुख्य एप्लिकेशन स्रोत कोड “USER CODE BEGIN” और “USER CODE END” टिप्पणियों द्वारा निहित है। यदि IP चयन और सेटिंग संशोधित की जाती है, तो STM32CubeMX कोड के आरंभीकरण भाग को अपडेट करता है लेकिन मुख्य एप्लिकेशन स्रोत कोड को सुरक्षित रखता है।
- STM32CubeMX में कस्टम प्रोजेक्ट विकसित करने के लिए, चरण-दर-चरण प्रक्रिया का पालन करें:
- उस STM32 माइक्रोकंट्रोलर का चयन करें जो बाह्य उपकरणों के आवश्यक सेट से मेल खाता हो।
- पिनआउट-कॉन्फ्लिक्ट सॉल्वर, क्लॉक-ट्री सेटिंग हेल्पर, पावर खपत कैलकुलेटर, तथा MCU परिधीय कॉन्फ़िगरेशन (जैसे GPIO या USART) और मिडलवेयर स्टैक (जैसे USB) निष्पादित करने वाली उपयोगिता का उपयोग करके सभी आवश्यक एम्बेडेड सॉफ़्टवेयर को कॉन्फ़िगर करें।
- चयनित कॉन्फ़िगरेशन के आधार पर आरंभीकरण C कोड जनरेट करें। यह कोड कई विकास वातावरणों में उपयोग के लिए तैयार है। उपयोगकर्ता कोड को अगली कोड पीढ़ी में रखा जाता है।
- STM32CubeMX के बारे में अधिक जानकारी के लिए, STM32 कॉन्फ़िगरेशन और आरंभीकरण C कोड जनरेशन के लिए उपयोगकर्ता मैनुअल STM32CubeMX (UM1718) देखें।
- उपलब्ध परियोजना उदाहरणों की सूची के लिएampSTM32CubeWBA के लिए, एप्लिकेशन नोट STM32Cube फर्मवेयर उदाहरण देखेंampSTM32WBA श्रृंखला (AN5929) के लिए मॉडल।
ड्राइवर अनुप्रयोग
एचएएल आवेदन
यह अनुभाग STM32CubeWBA का उपयोग करके कस्टम HAL अनुप्रयोग बनाने के लिए आवश्यक चरणों का वर्णन करता है:
- एक प्रोजेक्ट बनाएं
- एक नया प्रोजेक्ट बनाने के लिए, \Projects\ के अंतर्गत प्रत्येक बोर्ड के लिए उपलब्ध कराए गए टेम्पलेट प्रोजेक्ट से शुरू करें \Templates या \Projects\ के अंतर्गत किसी भी उपलब्ध प्रोजेक्ट से \उदाहरण या \परियोजनाएँ\ \अनुप्रयोग (जहाँ बोर्ड नाम को संदर्भित करता है, जैसे STM32CubeWBA)।
- टेम्पलेट प्रोजेक्ट एक खाली मुख्य लूप फ़ंक्शन प्रदान करता है। हालाँकि, यह STM32CubeWBA प्रोजेक्ट सेटिंग्स को समझने के लिए एक अच्छा प्रारंभिक बिंदु है। टेम्पलेट में निम्नलिखित विशेषताएँ हैं:
- इसमें HAL स्रोत कोड, CMSIS और BSP ड्राइवर शामिल हैं, जो किसी दिए गए बोर्ड पर कोड विकसित करने के लिए आवश्यक घटकों का न्यूनतम सेट है।
- इसमें सभी फर्मवेयर घटकों के लिए पथ शामिल हैं।
- यह समर्थित STM32WBA श्रृंखला डिवाइसों को परिभाषित करता है, जिससे CMSIS और HAL ड्राइवरों को सही ढंग से कॉन्फ़िगर किया जा सकता है।
- यह उपयोग के लिए तैयार उपयोगकर्ता प्रदान करता है fileनीचे दिखाए अनुसार पूर्व-कॉन्फ़िगर किया गया है:
HAL को Arm® कोर SysTick के साथ डिफ़ॉल्ट समय आधार के साथ आरंभीकृत किया गया। SysTick ISR को HAL_Delay() उद्देश्य के लिए कार्यान्वित किया गया।
टिप्पणी: किसी मौजूदा प्रोजेक्ट को किसी अन्य स्थान पर कॉपी करते समय, सुनिश्चित करें कि सभी सम्मिलित पथ अपडेट किए गए हैं।
- उपयोगकर्ता प्रोजेक्ट में आवश्यक मिडलवेयर जोड़ें (वैकल्पिक)
स्रोत की पहचान करने के लिए fileपरियोजना में जोड़े जाने वाले file सूची में, प्रत्येक मिडलवेयर के लिए प्रदान किए गए दस्तावेज़ देखें। \Projects\STM32xxx_yyy\Applications\ के अंतर्गत अनुप्रयोगों को देखें (कहाँ मिडलवेयर स्टैक को संदर्भित करता है, जैसे कि थ्रेडएक्स) यह जानने के लिए कि कौन सा स्रोत files और सम्मिलित पथ अवश्य जोड़े जाने चाहिए। - फ़र्मवेयर घटकों को कॉन्फ़िगर करें
HAL और मिडलवेयर घटक हेडर में घोषित मैक्रोज़ #define का उपयोग करके बिल्ड-टाइम कॉन्फ़िगरेशन विकल्पों का एक सेट प्रदान करते हैं file. एक टेम्पलेट कॉन्फ़िगरेशन file प्रत्येक घटक के भीतर प्रदान किया जाता है, जिसे प्रोजेक्ट फ़ोल्डर में कॉपी किया जाना चाहिए (आमतौर पर कॉन्फ़िगरेशन file इसका नाम xxx_conf_template.h है, इसे प्रोजेक्ट फ़ोल्डर में कॉपी करते समय _template शब्द को हटाना होगा)। कॉन्फ़िगरेशन file प्रत्येक कॉन्फ़िगरेशन विकल्प के प्रभाव को समझने के लिए पर्याप्त जानकारी प्रदान करता है। प्रत्येक घटक के लिए प्रदान किए गए दस्तावेज़ में अधिक विस्तृत जानकारी उपलब्ध है। - HAL लाइब्रेरी प्रारंभ करें
मुख्य प्रोग्राम पर जाने के बाद, एप्लिकेशन कोड को HAL लाइब्रेरी को आरंभ करने के लिए HAL_Init() API को कॉल करना होगा, जो निम्नलिखित कार्य करता है:- फ्लैश मेमोरी प्रीफ़ेच और SysTick इंटरप्ट प्राथमिकता का कॉन्फ़िगरेशन (st m32wbaxx_hal_conf.h में परिभाषित मैक्रोज़ के माध्यम से).
- SysTick का विन्यास, stm32wbaxx_hal_conf.h में परिभाषित SysTick व्यवधान प्राथमिकता TICK_INT_PRIO पर प्रत्येक मिलीसेकंड में व्यवधान उत्पन्न करने के लिए।
- NVIC समूह प्राथमिकता को 0 पर सेट करना.
- stm32wbaxx_hal_msp.c उपयोगकर्ता में परिभाषित HAL_MspInit() कॉलबैक फ़ंक्शन का कॉल file वैश्विक निम्न-स्तरीय हार्डवेयर आरंभीकरण करने के लिए.
- सिस्टम घड़ी कॉन्फ़िगर करें
सिस्टम क्लॉक कॉन्फ़िगरेशन नीचे वर्णित दो API को कॉल करके किया जाता है:- HAL_RCC_Oscकॉन्फ़िगरेशन(): यह API आंतरिक और बाह्य ऑसिलेटर को कॉन्फ़िगर करता है। उपयोगकर्ता एक या सभी ऑसिलेटर को कॉन्फ़िगर करना चुनता है।
- HAL_RCC_क्लॉककॉन्फ़िगरेशन(): यह API सिस्टम क्लॉक स्रोत, फ्लैश मेमोरी विलंबता और AHB और APB प्रीस्केलर्स को कॉन्फ़िगर करता है।
- परिधीय को आरंभ करें
- सबसे पहले परिधीय HAL_PPP_MspInit फ़ंक्शन लिखें। निम्नानुसार आगे बढ़ें:
- परिधीय घड़ी सक्षम करें.
- परिधीय GPIOs को कॉन्फ़िगर करें.
- DMA चैनल को कॉन्फ़िगर करें और DMA इंटरप्ट को सक्षम करें (यदि आवश्यक हो)।
- परिधीय व्यवधान सक्षम करें (यदि आवश्यक हो).
- यदि आवश्यक हो तो आवश्यक इंटरप्ट हैंडलर्स (पेरिफेरल और DMA) को कॉल करने के लिए stm32xxx_it.c को संपादित करें।
- यदि परिधीय इंटरप्ट या डीएमए का उपयोग करने की योजना बनाई गई है, तो प्रक्रिया पूर्ण कॉलबैक फ़ंक्शन लिखें।
- उपयोगकर्ता main.c में fileपरिधीय हैंडल संरचना को आरंभ करें, फिर परिधीय को आरंभ करने के लिए HAL_PPP_Init() फ़ंक्शन को कॉल करें।
- सबसे पहले परिधीय HAL_PPP_MspInit फ़ंक्शन लिखें। निम्नानुसार आगे बढ़ें:
- एक एप्लीकेशन विकसित करें
- इस समयtagई, सिस्टम तैयार है और उपयोगकर्ता अनुप्रयोग कोड विकास शुरू हो सकता है।
- HAL परिधीय को कॉन्फ़िगर करने के लिए सहज और उपयोग के लिए तैयार API प्रदान करता है। यह किसी भी एप्लिकेशन आवश्यकताओं को समायोजित करने के लिए पोलिंग, इंटरप्ट और DMA प्रोग्रामिंग मॉडल का समर्थन करता है। प्रत्येक परिधीय का उपयोग कैसे करें, इस बारे में अधिक जानकारी के लिए, समृद्ध अनुभव देखेंampSTM32CubeWBA MCU पैकेज में प्रदान किया गया सेट।
सावधानी: डिफ़ॉल्ट HAL कार्यान्वयन में, SysTick टाइमर का उपयोग टाइमबेस के रूप में किया जाता है: यह नियमित समय अंतराल पर इंटरप्ट उत्पन्न करता है। यदि परिधीय ISR प्रक्रिया से HAL_Delay() को कॉल किया जाता है, तो सुनिश्चित करें कि SysTick इंटरप्ट की प्राथमिकता परिधीय इंटरप्ट से अधिक (संख्यात्मक रूप से कम) है। अन्यथा, कॉलर ISR प्रक्रिया अवरुद्ध है। टाइमबेस कॉन्फ़िगरेशन को प्रभावित करने वाले फ़ंक्शन को __weak के रूप में घोषित किया जाता है ताकि उपयोगकर्ता में अन्य कार्यान्वयन के मामले में ओवरराइड संभव हो सके file (उदाहरण के लिए एक सामान्य प्रयोजन टाइमर का उपयोग करनाampले, या कोई अन्य समय स्रोत)। अधिक जानकारी के लिए, HAL_TimeBase उदाहरण देखेंampले.
एलएल आवेदन
यह अनुभाग STM32CubeWBA का उपयोग करके कस्टम LL अनुप्रयोग बनाने के लिए आवश्यक चरणों का वर्णन करता है।
- एक प्रोजेक्ट बनाएं
- एक नया प्रोजेक्ट बनाने के लिए, \Projects\ के अंतर्गत प्रत्येक बोर्ड के लिए उपलब्ध Templates_LL प्रोजेक्ट से शुरू करें \Templates_LL, या \Projects\ के अंतर्गत किसी भी उपलब्ध प्रोजेक्ट से \पूर्वampलेस_एलएल ( बोर्ड नाम को संदर्भित करता है, जैसे NUCLEO-WBA32CG)।
- टेम्पलेट प्रोजेक्ट एक खाली मुख्य लूप फ़ंक्शन प्रदान करता है, जो STM32CubeWBA के लिए प्रोजेक्ट सेटिंग्स को समझने के लिए एक अच्छा प्रारंभिक बिंदु है। टेम्पलेट की मुख्य विशेषताएँ निम्नलिखित हैं:
- इसमें एलएल और सीएमएसआईएस ड्राइवरों के स्रोत कोड शामिल हैं, जो किसी दिए गए बोर्ड पर कोड विकसित करने के लिए आवश्यक घटकों का न्यूनतम सेट है।
- इसमें सभी आवश्यक फर्मवेयर घटकों के लिए पथ शामिल हैं।
- यह समर्थित STM32WBA श्रृंखला डिवाइस का चयन करता है और CMSIS और LL ड्राइवरों के सही कॉन्फ़िगरेशन की अनुमति देता है।
- यह उपयोग के लिए तैयार उपयोगकर्ता प्रदान करता है fileजो निम्न प्रकार से पूर्व-कॉन्फ़िगर किए गए हैं:
◦ main.h: LED और USER_BUTTON परिभाषा अमूर्तन परत.
◦ main.c: अधिकतम आवृत्ति के लिए सिस्टम क्लॉक कॉन्फ़िगरेशन।
- किसी मौजूदा प्रोजेक्ट को दूसरे बोर्ड पर पोर्ट करें
किसी अन्य लक्ष्य बोर्ड पर मौजूदा परियोजना का समर्थन करने के लिए, प्रत्येक बोर्ड के लिए उपलब्ध और \Projects\ के अंतर्गत उपलब्ध Templates_LL परियोजना से शुरू करें \टेम्पलेट्स_LL.- एक एलएल एक्स चुनेंample: वह बोर्ड ढूँढना जिस पर LL ex हैampएलएल तैनात हैं, एलएल एक्स की सूची देखेंampSTM32CubeProjectsList.html डाउनलोड करें.
- एलएल एक्स को पोर्ट करेंampपर:
- प्रारंभिक स्रोत को रखने के लिए Templates_LL फ़ोल्डर को कॉपी/पेस्ट करें - या मौजूदा Temp lates_LL प्रोजेक्ट को सीधे अपडेट करें।
- फिर पोर्टिंग में मुख्य रूप से Templates_LL को प्रतिस्थापित करना शामिल है fileपूर्व द्वाराamples_LL लक्षित परियोजना.
- सभी बोर्ड विशिष्ट भागों को रखें। स्पष्टता के लिए, बोर्ड विशिष्ट भागों को विशिष्ट के साथ चिह्नित किया जाता है tags:
- इस प्रकार, मुख्य पोर्टिंग चरण निम्नलिखित हैं:
- stm32wbaxx_it.h को प्रतिस्थापित करें file
- stm32wbaxx_it.c को प्रतिस्थापित करें file
- main.h को प्रतिस्थापित करें file और इसे अपडेट करें: एलएल टेम्पलेट की एलईडी और उपयोगकर्ता बटन परिभाषा को बोर्ड विशिष्ट कॉन्फ़िगरेशन के अंतर्गत रखें tags.
- main.c को प्रतिस्थापित करें file और इसे अपडेट करें:
- SystemClock_Config() LL टेम्पलेट फ़ंक्शन के क्लॉक कॉन्फ़िगरेशन को बोर्ड विशिष्ट कॉन्फ़िगरेशन के अंतर्गत रखें tags.
- एलईडी परिभाषा के आधार पर, प्रत्येक एलडीएक्स घटना को main.h में उपलब्ध किसी अन्य एलडीवाई से प्रतिस्थापित करें file.
- इन संशोधनों के साथ, पूर्वample अब लक्षित बोर्ड पर चलता है
सुरक्षा अनुप्रयोगों
यह पैकेज सुरक्षा अनुप्रयोगों के साथ दिया जाता है।
एसबीएसएफयू आवेदन
- एसबीएसएफयू एक रूट ऑफ ट्रस्ट समाधान प्रदान करता है, जिसमें सिक्योर बूट और सिक्योर फर्मवेयर अपडेट कार्यात्मकताएं (एमसीयूबूट पर आधारित) शामिल हैं।
- समाधान का उपयोग अनुप्रयोग को निष्पादित करने से पहले किया जाता है।
- समाधान एक पूर्व प्रदान करता हैampसुरक्षित सेवा (GPIO टॉगल) का उपयोग करें, जो असुरक्षित एप्लिकेशन से अलग है। रनटाइम पर असुरक्षित एप्लिकेशन अभी भी इस समाधान का उपयोग कर सकता है।
टीएफएम अनुप्रयोग
टीएफएम सुरक्षित बूट और सुरक्षित फर्मवेयर अपडेट कार्यक्षमताओं सहित रूट ऑफ ट्रस्ट समाधान प्रदान करता है
(MCUboot पर आधारित)। समाधान का उपयोग एप्लिकेशन को निष्पादित करने से पहले किया जाता है। समाधान TFM सुरक्षित सेवाएँ प्रदान करता है जो असुरक्षित एप्लिकेशन से अलग होती हैं। रनटाइम पर असुरक्षित एप्लिकेशन अभी भी इस समाधान का उपयोग कर सकता है।
आरएफ अनुप्रयोग
आरएफ अनुप्रयोग का वर्णन इस अनुप्रयोग नोट में किया गया है: STM32WBA श्रृंखला माइक्रोकंट्रोलर्स (AN5928) के साथ वायरलेस अनुप्रयोगों का निर्माण।
STM32CubeWBA रिलीज़ अपडेट प्राप्त करना
STM32CubeWBA सीरीज से नवीनतम STM32CubeWBA MCU पैकेज रिलीज़ और पैच उपलब्ध हैं। इन्हें STM32CubeMX में चेक फॉर अपडेट बटन से प्राप्त किया जा सकता है। अधिक जानकारी के लिए, STM3 कॉन्फ़िगरेशन और आरंभीकरण C कोड जनरेशन (UM32) के लिए उपयोगकर्ता मैनुअल STM32CubeMX के अनुभाग 1718 को देखें।
सामान्य प्रश्न
- मुझे LL ड्राइवर्स के स्थान पर HAL का उपयोग कब करना चाहिए?
- HAL ड्राइवर उच्च स्तरीय और फ़ंक्शन-उन्मुख API प्रदान करते हैं, जिसमें उच्च स्तर की पोर्टेबिलिटी होती है। उत्पाद या परिधीय जटिलता अंतिम उपयोगकर्ताओं के लिए छिपी हुई है।
- एलएल ड्राइवर कम-लेयर रजिस्टर लेवल एपीआई प्रदान करते हैं, बेहतर अनुकूलन के साथ लेकिन कम पोर्टेबल। उन्हें उत्पाद या आईपी विनिर्देशों के गहन ज्ञान की आवश्यकता होती है।
- क्या मैं HAL और LL ड्राइवर्स को एक साथ इस्तेमाल कर सकता हूँ? अगर कर सकता हूँ, तो क्या बाधाएँ हैं?
- HAL और LL दोनों ड्राइवर का उपयोग करना संभव है। IP आरंभीकरण चरण के लिए HAL का उपयोग करें और फिर LL ड्राइवर के साथ I/O संचालन प्रबंधित करें।
- एचएएल और एलएल के बीच मुख्य अंतर यह है कि एचएएल ड्राइवरों को संचालन प्रबंधन के लिए हैंडल बनाने और उपयोग करने की आवश्यकता होती है जबकि एलएल ड्राइवर सीधे परिधीय रजिस्टरों पर काम करते हैं।amples_MIX पूर्वampयह लेख एचएएल और एलएल को मिश्रित करने का तरीका बताता है।
- एलएल आरंभीकरण एपीआई कैसे सक्षम होते हैं?
- एलएल आरंभीकरण एपीआई और संबंधित संसाधनों (संरचनाएं, लिटरल और प्रोटोटाइप) की परिभाषा USE_FULL_LL_DRIVER संकलन स्विच द्वारा निर्धारित की जाती है।
- एलएल आरंभीकरण एपीआई का उपयोग करने में सक्षम होने के लिए, टूलचेन कंपाइलर प्रीप्रोसेसर में यह स्विच जोड़ें।
- STM32CubeMX एम्बेडेड सॉफ्टवेयर पर आधारित कोड कैसे उत्पन्न कर सकता है?
STM32CubeMX में STM32 माइक्रोकंट्रोलर्स का अंतर्निहित ज्ञान है, जिसमें उनके बाह्य उपकरण और सॉफ्टवेयर शामिल हैं जो उपयोगकर्ता को ग्राफिकल प्रतिनिधित्व प्रदान करने और *.h या *.c उत्पन्न करने की अनुमति देता है fileयह उपयोगकर्ता कॉन्फ़िगरेशन पर आधारित है।
महत्वपूर्ण सूचना – ध्यानपूर्वक पढ़ें
- एसटीमाइक्रोइलेक्ट्रॉनिक्स एनवी और इसकी सहायक कंपनियां ("एसटी") बिना किसी सूचना के किसी भी समय एसटी उत्पादों और/या इस दस्तावेज़ में परिवर्तन, सुधार, संवर्द्धन, संशोधन और सुधार करने का अधिकार सुरक्षित रखती हैं। खरीदारों को ऑर्डर देने से पहले एसटी उत्पादों पर नवीनतम प्रासंगिक जानकारी प्राप्त करनी चाहिए। एसटी उत्पादों को ऑर्डर पावती के समय लागू एसटी की बिक्री की शर्तों और नियमों के अनुसार बेचा जाता है।
- क्रेता एसटी उत्पादों के चयन, चयन और उपयोग के लिए पूरी तरह से जिम्मेदार हैं और एसटी आवेदन सहायता या खरीदारों के उत्पादों के डिजाइन के लिए कोई दायित्व नहीं लेता है।
- यहां एसटी द्वारा किसी भी बौद्धिक संपदा अधिकार के लिए कोई लाइसेंस, व्यक्त या निहित, प्रदान नहीं किया गया है।
- यहां दी गई जानकारी से भिन्न प्रावधानों के साथ एसटी उत्पादों की पुनर्बिक्री से ऐसे उत्पाद के लिए एसटी द्वारा दी गई किसी भी वारंटी को रद्द कर दिया जाएगा।
- एसटी और एसटी लोगो एसटी के ट्रेडमार्क हैं। एसटी ट्रेडमार्क के बारे में अतिरिक्त जानकारी के लिए www.st.com/trademarks देखें। अन्य सभी उत्पाद या सेवा नाम उनके संबंधित स्वामियों की संपत्ति हैं।
- इस दस्तावेज़ में दी गई जानकारी इस दस्तावेज़ के किसी भी पूर्ववर्ती संस्करण में दी गई जानकारी का स्थान लेगी।
- © 2023 एसटीमाइक्रोइलेक्ट्रॉनिक्स – सभी अधिकार सुरक्षित
दस्तावेज़ / संसाधन
![]() |
STMicroelectronics STM32WBA सीरीज आरंभ करना [पीडीएफ] उपयोगकर्ता पुस्तिका STM32WBA सीरीज आरंभ करना, आरंभ करना, आरंभ किया |