STMicroelectronics- लोगो

STMicroelectronics STM32WBA श्रृंखला सुरु गर्दै

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-1

उत्पादन जानकारी

निर्दिष्टीकरण:

  • उत्पादन नाम: STM32CubeWBA MCU प्याकेज
  • निर्माता: STM माइक्रोइलेक्ट्रोनिक्स
  • अनुकूलता: STM32WBA श्रृंखला माइक्रोकन्ट्रोलरहरू
  • इजाजतपत्र: खुला स्रोत BSD लाइसेन्स

उत्पादन उपयोग निर्देशन

STM32CubeWBA MCU प्याकेजका मुख्य विशेषताहरू:
STM32CubeWBA MCU प्याकेजले STM32WBA श्रृंखला माइक्रोकन्ट्रोलरहरूमा अनुप्रयोगहरू विकास गर्नका लागि सबै आवश्यक इम्बेडेड सफ्टवेयर कम्पोनेन्टहरू प्रदान गर्दछ। यो STM32 श्रृंखला भित्र अत्यधिक पोर्टेबल छ र HAL र LL API को साथ आउँछ, पूर्वampलेस, र मिडलवेयर कम्पोनेन्टहरू।

वास्तुकला समाप्तview:
STM32CubeWBA MCU प्याकेजको वास्तुकलाले तीन तहहरू समावेश गर्दछ - अनुप्रयोगहरू, पुस्तकालय र प्रोटोकल-आधारित कम्पोनेन्टहरू, हार्डवेयर एब्स्ट्रेक्शन लेयर, BSP ड्राइभरहरू, कोर ड्राइभरहरू, र लो-लेयर API हरू।

FAQ

  • STM32CubeWBA MCU प्याकेजमा के समावेश छ?
    प्याकेजले लो-लेयर (LL) र हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL) API हरू समावेश गर्दछ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 कम-तह APIs, हार्डवेयरमा प्रयोगकर्ता नियन्त्रणको उच्च डिग्रीको साथ उत्कृष्ट प्रदर्शन र पदचिन्ह सुनिश्चित गर्दै
      • मिडलवेयर कम्पोनेन्टहरूको एक सुसंगत सेट जस्तै ThreadX, FileX / LevelX, NetX Duo, USBX, touch library, mbed-crypto, TFM, MCUboot, OpenBL, र STM32_WPAN (ब्लुटुथ® लो एनर्जी प्रो सहित)files र सेवाहरू, Mesh, Zigbee®, OpenThread, Matter, र 802.15.4 MAC तह)
      • सबै एम्बेडेड सफ्टवेयर उपयोगिताहरू परिधीय र एप्लिकेटिभ पूर्वको पूर्ण सेटहरू सहितampलेस
    • STM32Cube विस्तार प्याकेजहरू, जसमा एम्बेडेड सफ्टवेयर कम्पोनेन्टहरू छन् जसले STM32Cube MCU र MPU प्याकेजहरूको कार्यक्षमतालाई पूरक बनाउँछ:
      • मिडलवेयर विस्तार र आवेदन तहहरू
      • Exampकेही विशिष्ट STMicroelectronics विकास बोर्डहरूमा चलिरहेको छ
  • यो प्रयोगकर्ता पुस्तिकाले STM32CubeWBA MCU प्याकेजको साथ कसरी सुरु गर्ने भनेर वर्णन गर्दछ।
    • खण्ड २ STM2CubeWBA मुख्य सुविधाहरूले 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 ThreadX
    • Azure® RTOS ThreadX सँग CMSIS-RTOS कार्यान्वयन
    • USB होस्ट र यन्त्र स्ट्याकहरू धेरै कक्षाहरूसँग आउँदैछन्: Azure® RTOS USBX
    • उन्नत file प्रणाली र फ्लैश अनुवाद तह: FileX / LevelX
    • औद्योगिक ग्रेड नेटवर्किङ स्ट्याक: धेरै IoT प्रोटोकलहरूसँग आउँदै प्रदर्शनको लागि अनुकूलित: NetX Duo
    • बुटलोडर खोल्नुहोस्
    • Arm® विश्वसनीय फर्मवेयर-M (TF-M) एकीकरण समाधान
    • mbed-क्रिप्टो पुस्तकालयहरू
    • एसटी नेटवर्क पुस्तकालय
    • STMTtouch स्पर्श सेन्सिङ पुस्तकालय समाधान
  • यी सबै मिडलवेयर कम्पोनेन्टहरू कार्यान्वयन गर्ने धेरै अनुप्रयोगहरू र प्रदर्शनहरू पनि STM32CubeWBA MCU प्याकेजमा प्रदान गरिएका छन्।
  • STM32CubeWBA MCU प्याकेज कम्पोनेन्ट लेआउट चित्र १ मा चित्रण गरिएको छ। STM1CubeWBA MCU प्याकेज कम्पोनेन्टहरू।

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-2

STM32CubeWBA वास्तुकला समाप्तview

STM32CubeWBA MCU प्याकेज समाधान चित्र 2 मा वर्णन गरे अनुसार सजिलैसँग अन्तरक्रिया गर्ने तीन स्वतन्त्र स्तरहरू वरिपरि बनाइएको छ। STM32CubeWBA MCU प्याकेज वास्तुकला।

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-3

स्तर ४

यो स्तर तीन sublayers मा विभाजित छ:

  • बोर्ड समर्थन प्याकेज (BSP)।
  • हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL):
    • HAL परिधीय चालकहरू
    • कम तह चालकहरू
  • आधारभूत परिधीय उपयोग पूर्वampलेस।

बोर्ड समर्थन प्याकेज (BSP)
यो तहले हार्डवेयर बोर्डहरूमा हार्डवेयर कम्पोनेन्टहरू (जस्तै LCD, अडियो, \ microSD™, र MEMS ड्राइभरहरू) सापेक्ष API को सेट प्रदान गर्दछ। यो दुई भागहरु मिलेर बनेको छ:

  • कम्पोनेन्ट चालक:
    यो चालक बोर्डमा बाहिरी उपकरणसँग सम्बन्धित छ, र STM32 उपकरणसँग होइन। कम्पोनेन्ट ड्राइभरले बीएसपी ड्राइभर बाह्य कम्पोनेन्टहरूलाई विशिष्ट API प्रदान गर्दछ र कुनै पनि अन्य बोर्डमा पोर्टेबल हुन सक्छ।
  • BSP चालक:
    BSP ड्राइभरले कम्पोनेन्ट ड्राइभरहरूलाई विशेष बोर्डमा लिङ्क गर्न अनुमति दिन्छ, र प्रयोगकर्ता-अनुकूलको सेट प्रदान गर्दछ।
    APIs। API नामकरण नियम BSP_FUNCT_Action() हो।
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP एक मोड्युलर आर्किटेक्चरमा आधारित छ जसले निम्न-स्तरको दिनचर्याहरू लागू गरेर कुनै पनि हार्डवेयरमा सजिलै पोर्ट गर्न अनुमति दिन्छ।

हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL) र लो-लेयर (LL)
STM32CubeWBA HAL र LL पूरक हुन् र आवेदन आवश्यकताहरूको विस्तृत दायरा समेट्छ:

  • HAL ड्राइभरहरूले उच्च-स्तर प्रकार्य-उन्मुख उच्च पोर्टेबल API हरू प्रस्ताव गर्छन्। तिनीहरूले अन्त-प्रयोगकर्तालाई MCU र परिधीय जटिलता लुकाउँछन्।
    HAL ड्राइभरहरूले जेनेरिक बहु-उदाहरण सुविधा-उन्मुख APIs प्रदान गर्छन्, जसले प्रयोग गर्न तयार प्रक्रियाहरू प्रदान गरेर प्रयोगकर्ता अनुप्रयोग कार्यान्वयनलाई सरल बनाउँछ। पूर्वका लागिample, संचार परिधीयहरू (I2S, UART, र अन्य) को लागी, यसले परिधीय सुरु गर्न र कन्फिगर गर्न, मतदान, अवरोध, वा DMA प्रक्रियामा आधारित डाटा स्थानान्तरण प्रबन्ध गर्न, र संचारको क्रममा उत्पन्न हुन सक्ने संचार त्रुटिहरू ह्यान्डल गर्न अनुमति दिने APIs प्रदान गर्दछ। HAL ड्राइभर API हरू दुई कोटिहरूमा विभाजित छन्:
    1. जेनेरिक API, जसले सबै STM32 श्रृंखला माइक्रोकन्ट्रोलरहरूलाई सामान्य र जेनेरिक प्रकार्यहरू प्रदान गर्दछ।
    2. एक्स्टेन्सन API हरू, जसले विशेष परिवार वा विशेष भाग नम्बरको लागि विशिष्ट र अनुकूलित कार्यहरू प्रदान गर्दछ।
  • कम-तह API हरू दर्ता स्तरमा कम-स्तर API प्रदान गर्दछ, राम्रो अनुकूलन तर कम पोर्टेबिलिटीको साथ।
    • तिनीहरूलाई MCU र परिधीय विशिष्टताहरूको गहिरो ज्ञान चाहिन्छ।
    • LL ड्राइभरहरू HAL भन्दा हार्डवेयरको नजिक रहेको छिटो हल्का तौल विशेषज्ञ-उन्मुख तह प्रस्ताव गर्न डिजाइन गरिएको हो। HAL को विपरित, LL API हरू बाह्य उपकरणहरूका लागि प्रदान गरिएको छैन जहाँ अप्टिमाइज गरिएको पहुँच मुख्य विशेषता होइन, वा भारी सफ्टवेयर कन्फिगरेसन वा जटिल माथिल्लो-स्तर स्ट्याक आवश्यक पर्नेहरूका लागि।
    • LL ड्राइभरहरू सुविधाहरू:
      • डेटा संरचनाहरूमा निर्दिष्ट प्यारामिटरहरू अनुसार परिधीय मुख्य सुविधाहरू प्रारम्भ गर्न कार्यहरूको सेट।
      • प्रत्येक फिल्डसँग सम्बन्धित रिसेट मानहरूसँग प्रारम्भिक डेटा संरचनाहरू भर्न कार्यहरूको सेट।
      • परिधीय डिइनिटियलाइजेसनको लागि कार्य (परिधीय दर्ताहरू तिनीहरूको पूर्वनिर्धारित मानहरूमा पुनर्स्थापित गरियो)।
      • प्रत्यक्ष र परमाणु दर्ता पहुँचको लागि इनलाइन प्रकार्यहरूको सेट।
      • HAL बाट पूर्ण स्वतन्त्रता र स्ट्यान्डअलोन मोडमा प्रयोग गर्ने क्षमता (HAL ड्राइभरहरू बिना)।
      • समर्थित परिधीय सुविधाहरूको पूर्ण कभरेज।

आधारभूत परिधीय उपयोग पूर्वampलेस
यो तहले पूर्वलाई घेर्छampलेस केवल HAL र BSP स्रोतहरू प्रयोग गरेर STM32 बाह्य उपकरणहरूमा निर्मित।

स्तर ४

यो स्तर दुई sublayers मा विभाजित छ:

  • मिडलवेयर कम्पोनेन्टहरू
  • Exampमिडलवेयर कम्पोनेन्टहरूमा आधारित

मिडलवेयर कम्पोनेन्टहरू

  • मिडलवेयर ब्लुटुथ® लो एनर्जी (लिंकलेयर, एचसीआई, स्ट्याक), थ्रेड®, जिग्बी®, कभर गर्ने पुस्तकालयहरूको सेट हो।
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot, र mbed-crypto।
  • यस तहका कम्पोनेन्टहरू बीचको तेर्सो अन्तरक्रिया विशेष API हरूलाई कल गरेर गरिन्छ।
  • कम-तह ड्राइभरहरूसँग ठाडो अन्तरक्रिया पुस्तकालय प्रणाली कल इन्टरफेसमा लागू गरिएका विशिष्ट कलब्याकहरू र स्थिर म्याक्रोहरू मार्फत गरिन्छ।
  • प्रत्येक मिडलवेयर कम्पोनेन्टका मुख्य विशेषताहरू निम्नानुसार छन्:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: एक वास्तविक-समय अपरेटिङ सिस्टम (RTOS), दुई कार्यात्मक मोडहरूसँग इम्बेडेड प्रणालीहरूको लागि डिजाइन गरिएको।
        • साझा मोड: थ्रेड व्यवस्थापन र सिङ्क्रोनाइजेसन, मेमोरी पूल व्यवस्थापन, सन्देश, र घटना ह्यान्डलिंग जस्ता सामान्य RTOS कार्यक्षमताहरू।
        • मोड्युल मोड: एक उन्नत प्रयोगकर्ता मोड जसले मोड्युल प्रबन्धक मार्फत फ्लाईमा प्रिलिङ्क गरिएको थ्रेडएक्स मोड्युलहरू लोड र अनलोड गर्न अनुमति दिन्छ।
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): लिङ्क र स्ट्याक तहहरूको लागि Bluetooth® कम ऊर्जा प्रोटोकल लागू गर्दछ।
    • MCUboot (खुला स्रोत सफ्टवेयर)
    • स्ट्याक र सम्बन्धित क्लस्टरहरूको लागि Zigbee® प्रोटोकलहरू।
    • Thread® प्रोटोकल स्ट्याक र लिङ्क तह।
    • Arm® विश्वसनीय फर्मवेयर-M, TF-M (खुला-स्रोत सफ्टवेयर): सम्बन्धित सुरक्षित सेवाहरूसँग TrustZone® को लागि Arm® प्लेटफर्म सुरक्षा वास्तुकला (PSA) को सन्दर्भ कार्यान्वयन।
    • mbed-क्रिप्टो (खुला स्रोत सफ्टवेयर): mbed-क्रिप्टो मिडलवेयरले PSA क्रिप्टोग्राफी API कार्यान्वयन प्रदान गर्दछ।
    • STM32 टच सेन्सिङ लाइब्रेरी: बलियो STMTouch capacitive टच सेन्सिङ समाधान, समर्थन निकटता, टचकी, रेखीय र रोटरी टच सेन्सरहरू। यो एक प्रमाणित सतह चार्ज स्थानान्तरण अधिग्रहण सिद्धान्त मा आधारित छ।

Exampमिडलवेयर कम्पोनेन्टहरूमा आधारित
प्रत्येक मिडलवेयर कम्पोनेन्ट एक वा बढी पूर्वको साथ आउँछ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 ले पूर्वको रिच सेट सुविधा दिन्छamples र सबै स्तरहरूमा अनुप्रयोगहरूले कुनै पनि HAL ड्राइभर वा मिडलवेयर कम्पोनेन्टहरू बुझ्न र प्रयोग गर्न सजिलो बनाउँछ। यी पूर्वampलेस तालिका २ मा सूचीबद्ध STMicroelectronics बोर्डहरूमा चल्छ।
    तालिका २. STM2WBA श्रृंखलाका लागि बोर्डहरू
    बोर्ड बोर्ड STM32WBA समर्थित उपकरणहरू
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • STM32CubeWBA MCU प्याकेज कुनै पनि मिल्दो हार्डवेयरमा चल्न सक्छ। प्रयोगकर्ताले प्रदान गरिएको पूर्व पोर्ट गर्न BSP ड्राइभरहरूलाई मात्र अद्यावधिक गर्दछampबोर्डमा les, यदि पछिल्लोमा एउटै हार्डवेयर सुविधाहरू छन् (जस्तै LED, LCD डिस्प्ले, र बटनहरू)।
फर्मवेयर प्याकेज सकियोview
  • STM32CubeWBA प्याकेज समाधान चित्र 3 मा देखाइएको संरचना भएको एउटै जिप प्याकेजमा प्रदान गरिएको छ। STM32CubeWBA फर्मवेयर प्याकेज संरचना।

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-4

  • प्रत्येक बोर्डको लागि, पूर्व को एक सेटampलेसलाई EWARM, MDK-ARM, र STM32CubeIDE टूलचेनका लागि पूर्व कन्फिगर गरिएका परियोजनाहरू प्रदान गरिएको छ।
  • चित्र ४. STM4CubeWBA पूर्वampलेस माथिview NUCLEO-WBA52CG, NUCLEO-WBA55CG र STM32WBA55G-DK1 बोर्डहरूको लागि परियोजना संरचना देखाउँछ।

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-5

  • पूर्वampलेसलाई STM32Cube लेभलको आधारमा वर्गीकृत गरिन्छ जुन तिनीहरूले लागू गर्छन्, र तिनीहरूको नाम निम्नानुसार छ:
    • स्तर ० पूर्वamples लाई Ex भनिन्छampलेस, पूर्वamples_LL, र पूर्वamples_MIX। तिनीहरूले क्रमशः HAL ड्राइभरहरू, LL ड्राइभरहरू, र HAL र LL ड्राइभरहरूको मिश्रण कुनै पनि मिडलवेयर कम्पोनेन्ट बिना प्रयोग गर्छन्।
    • स्तर ० पूर्वamples लाई एप्लिकेसन भनिन्छ। तिनीहरूले प्रत्येक मिडलवेयर कम्पोनेन्टको सामान्य प्रयोग केसहरू प्रदान गर्छन्। दिइएको बोर्डको लागि कुनै पनि फर्मवेयर अनुप्रयोग Templ ates र Templates_LL डाइरेक्टरीहरूमा उपलब्ध टेम्प्लेट परियोजनाहरूको लागि द्रुत रूपमा निर्माण गर्न सकिन्छ।

TrustZone® सक्षम परियोजनाहरू

  • TrustZone® सक्षम गरिएको Exampलेस नामहरूमा _TrustZone उपसर्ग समावेश छ। यो नियम Application ns को लागि पनि लागू हुन्छ (TFM र SBSFU बाहेक, जुन नेटिभ TrustZone® का लागि हो)।
  • TrustZone®-सक्षम Exampलेस र एप्लिकेसनहरूलाई चित्र 5 मा प्रस्तुत गरिए अनुसार सुरक्षित र असुरक्षित उप-परियोजनाहरू मिलेर बनेको बहुप्रोजेक्ट संरचना प्रदान गरिएको छ। बहुपरियोजना सुरक्षित र असुरक्षित परियोजना संरचना।
  • TrustZone®-सक्षम परियोजनाहरू CMSIS-5 उपकरण टेम्प्लेट अनुसार विकसित गरिन्छ, प्रणाली विभाजन हेडर समावेश गर्न विस्तारित। file विभाजन_ .h, जो सुरक्षित एट्रिब्युट एकाइ (SAU), FPU, र सुरक्षित कार्यान्वयन अवस्थामा सुरक्षित/असुरक्षित अवरोध असाइनमेन्टको सेटअपको लागि मुख्य रूपमा जिम्मेवार छ।
  • यो सेटअप सुरक्षित CMSIS SystemInit() प्रकार्यमा गरिन्छ, जुन सुरक्षित अनुप्रयोग main() प्रकार्य प्रविष्ट गर्नु अघि स्टार्टअपमा बोलाइन्छ। सफ्टवेयर दिशानिर्देशहरूको Arm® TrustZone®-M कागजातलाई सन्दर्भ गर्नुहोस्।

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-6

  • STM32CubeWBA प्याकेज फर्मवेयर प्याकेजले विभाजनमा पूर्वनिर्धारित मेमोरी विभाजन प्रदान गर्दछ _ .h files अन्तर्गत उपलब्ध छ: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T इम्प्लेटहरू
  • यी विभाजनहरूमा files, SAU पूर्वनिर्धारित रूपमा असक्षम गरिएको छ। फलस्वरूप, IDAU मेमोरी म्यापिङ सुरक्षा एट्रिब्युसनको लागि प्रयोग गरिन्छ। RM0495 सन्दर्भ पुस्तिकामा TrustZone® टेक्नोलोजी प्रयोग गरी सुरक्षित/गैर-सुरक्षित विभाजनको चित्रलाई सन्दर्भ गर्नुहोस्।
  • यदि प्रयोगकर्ताले SAU सक्षम गर्छ भने, पूर्वनिर्धारित SAU क्षेत्र कन्फिगरेसन विभाजनमा पूर्वनिर्धारित हुन्छ। fileनिम्नानुसार s:
    • SAU क्षेत्र 0: 0x08080000 - 0x081FFFFF (फ्ल्यास मेमोरीको असुरक्षित सुरक्षित आधा (५१२ Kbytes))
    • SAU क्षेत्र 1: 0x0BF88000 - 0x0BF97FFF (असुरक्षित प्रणाली मेमोरी)
    • SAU क्षेत्र 2: 0x0C07E000 - 0x0C07FFFF (सुरक्षित, असुरक्षित कल गर्न सकिने)
    • SAU क्षेत्र 3: 0x20010000 - 0x2001FFFF (असुरक्षित SRAM2 (64 Kbytes))
    • SAU क्षेत्र 4: 0x40000000 - 0x4FFFFFFF (असुरक्षित परिधीय म्याप गरिएको मेमोरी)
  • पूर्वनिर्धारित विभाजन मिलाउन, STM32WBAxx श्रृंखला यन्त्रहरूमा निम्न प्रयोगकर्ता विकल्प बाइटहरू सेट हुनुपर्छ:
    • TZEN = 1 (TrustZone®-सक्षम यन्त्र)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (आन्तरिक फ्ल्यास मेमोरीको 64 मध्ये 128 पृष्ठहरू सुरक्षित रूपमा सेट गरिएको छ) नोट: TZEN = 1 मा पूर्वनिर्धारित रूपमा आन्तरिक फ्ल्यास मेमोरी पूर्ण रूपमा सुरक्षित छ। प्रयोगकर्ता विकल्प बाइटहरू SECWM1_PSTRT/ SECWM1_PEND अनुसार अनुप्रयोग सेट हुनुपर्छ। मेमोरी कन्फिगरेसन (SAU क्षेत्रहरू, यदि SAU सक्षम छ भने)। सुरक्षित/असुरक्षित अनुप्रयोगहरू परियोजना लिङ्कर files पनि पङ्क्तिबद्ध हुनुपर्छ।
  • सबै पूर्वampलेसको एउटै संरचना छ:
    • \Inc फोल्डर सबै हेडर समावेश गर्दछ files.
    • स्रोत कोड समावेश src फोल्डर।
    • \EWARM, \MDK-ARM, र \STM32CubeIDE फोल्डरहरू प्रत्येक टुलचेनको लागि पूर्व कन्फिगर गरिएको परियोजना समावेश गर्दछ।
    • readme.md र readme.html पूर्वको वर्णन गर्दैampले व्यवहार र यसलाई काम गर्न आवश्यक वातावरण।
    • आइओसी file जसले प्रयोगकर्ताहरूलाई अधिकांश फर्मवेयर पूर्व खोल्न अनुमति दिन्छamples STM32CubeMX भित्र।

STM32CubeWBA को साथ सुरु गर्दै

पहिलो HAL पूर्व चलाउँदैample

यस खण्डले पहिलो पूर्व चलाउन कत्तिको सरल छ भनेर वर्णन गर्दछample STM32CubeWBA भित्र। यसले NUCLEO-WBA52CG बोर्डमा चलिरहेको साधारण LED टगलको जेनरेशनलाई उदाहरणको रूपमा प्रयोग गर्दछ:

  1. STM32CubeWBA MCU प्याकेज डाउनलोड गर्नुहोस्।
  2. यसलाई आफ्नो रोजाइको डाइरेक्टरीमा अनजिप गर्नुहोस्।
  3. चित्र १ मा देखाइएको प्याकेज संरचना परिमार्जन नगर्न सुनिश्चित गर्नुहोस्। प्याकेजलाई तपाईंको मूल भोल्युम (जसको अर्थ C:\ST वा G:\Tests) नजिकको स्थानमा प्रतिलिपि गर्न सिफारिस गरिन्छ। लम्बाइ धेरै लामो छ।

पहिलो TrustZone® सक्षम पार्दै पूर्वample

  • TrustZone® सक्षम गरिएको पूर्व लोड गर्नु र चलाउनु अघिampले, पूर्व पढ्न अनिवार्य छampमलाई पढ्नुहोस् file कुनै पनि विशेष कन्फिगरेसनको लागि, जसले सेक्शन 4.2.1 TrustZone® सक्षम परियोजनाहरू (TZEN=1 (प्रयोगकर्ता विकल्प बाइट)) मा वर्णन गरिए अनुसार सुरक्षा सक्षम गरिएको छ भनी सुनिश्चित गर्दछ।
    1. \Projects\NUCLEO-WBA52CG\Ex मा ब्राउज गर्नुहोस्ampलेस।
    2. खोल्नुहोस् \GPIO, त्यसपछि \GPIO_IOToggle_TrustZone फोल्डरहरू।
    3. आफ्नो मनपर्ने टूलचेन संग परियोजना खोल्नुहोस्। एक छिटो समाप्तview कसरी खोल्ने, निर्माण गर्ने र पूर्व चलाउने बारेampसमर्थित टूलचेन्सको साथ le तल दिइएको छ।
    4. सबै सुरक्षित र असुरक्षित परियोजनाहरू अनुक्रममा पुन: निर्माण गर्नुहोस् files र लक्षित मेमोरीमा सुरक्षित र असुरक्षित छविहरू लोड गर्नुहोस्।
    5. पूर्व चलाउनुहोस्ample: नियमित रूपमा, सुरक्षित अनुप्रयोगले प्रत्येक सेकेन्डमा LD2 टगल गर्छ, र असुरक्षित अनुप्रयोगले LD3 लाई दोब्बर छिटो टगल गर्छ। थप विवरणहरूको लागि, रीडमीलाई सन्दर्भ गर्नुहोस् file पूर्व कोample।
  • खोल्न, निर्माण गर्न र पूर्व चलाउनampसमर्थित टूलचेन्सको साथ, तलका चरणहरू पालना गर्नुहोस्:
    • EWARM:
      1. पूर्व अन्तर्गतample फोल्डर, \EWARM सबफोल्डर खोल्नुहोस्।
      2. Project.eww कार्यस्थान सुरु गर्नुहोस्
      3. Xxxxx_S सुरक्षित परियोजना पुन: निर्माण गर्नुहोस् files: [परियोजना]>[सबै पुनर्निर्माण गर्नुहोस्]।
      4. xxxxx_NS असुरक्षित परियोजनालाई सक्रिय अनुप्रयोगको रूपमा सेट गर्नुहोस् (xxxxx_NS परियोजनामा ​​दायाँ क्लिक गर्नुहोस् [सक्रिय रूपमा सेट गर्नुहोस्])
      5. xxxxx_NS असुरक्षित परियोजना पुन: निर्माण गर्नुहोस् files: [परियोजना]>[सबै पुनर्निर्माण गर्नुहोस्]।
      6. [प्रोजेक्ट]>[डाउनलोड]>[सक्रिय अनुप्रयोग डाउनलोड गर्नुहोस्] सँग असुरक्षित बाइनरी फ्ल्यास गर्नुहोस्।
      7. xxxxx_S लाई सक्रिय अनुप्रयोगको रूपमा सेट गर्नुहोस् (xxxxx_S परियोजनामा ​​दायाँ क्लिक गर्नुहोस् [सक्रिय रूपमा सेट गर्नुहोस्]।
      8. [डाउनलोड र डिबग] (Ctrl+D) को साथ सुरक्षित बाइनरी फ्ल्यास गर्नुहोस्।
      9. कार्यक्रम चलाउनुहोस्: [डिबग]>[जानुहोस्(F5)]
    • MDK-ARM:
      1. \MDK-ARM टूलचेन खोल्नुहोस्।
      2. Multiprojects कार्यस्थान खोल्नुहोस् file Project.uvmpw.
      3. xxxxx_s परियोजनालाई सक्रिय अनुप्रयोगको रूपमा चयन गर्नुहोस् ([सक्रिय परियोजनाको रूपमा सेट गर्नुहोस्])।
      4. xxxxx_s परियोजना बनाउनुहोस्।
      5. xxxxx_ns परियोजनालाई सक्रिय परियोजनाको रूपमा चयन गर्नुहोस् ([सक्रिय परियोजनाको रूपमा सेट गर्नुहोस्])।
      6. xxxxx_ns परियोजना बनाउनुहोस्।
      7. असुरक्षित बाइनरी लोड गर्नुहोस् ([F8])। यसले फ्ल्यास मेमोरीमा \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf डाउनलोड गर्छ)
      8. Project_s परियोजनालाई सक्रिय परियोजनाको रूपमा चयन गर्नुहोस् ([सक्रिय परियोजनाको रूपमा सेट गर्नुहोस्])।
      9. सुरक्षित बाइनरी लोड गर्नुहोस् ([F8])। यसले फ्ल्यास मेमोरीमा \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf डाउनलोड गर्छ)।
      10. पूर्व चलाउनुहोस्ample।
    • STM32CubeIDE:
      1. STM32CubeIDE टूलचेन खोल्नुहोस्।
      2. Multiprojects कार्यस्थान खोल्नुहोस् file परियोजना।
      3. xxxxx_Secure परियोजना पुन: निर्माण गर्नुहोस्।
      4. xxxxx_NonSecure परियोजना पुन: निर्माण गर्नुहोस्।
      5. सुरक्षित परियोजनाको लागि [STM32 Cortex-M C/C++] अनुप्रयोगको रूपमा डिबग सुरु गर्नुहोस्।
      6. [सम्पादन गर्ने कन्फिगरेसन] विन्डोमा, [स्टार्टअप] प्यानल चयन गर्नुहोस्, र असुरक्षित परियोजनाको छवि र प्रतीकहरू थप्नुहोस्।
        महत्त्वपूर्ण: सुरक्षित परियोजना अघि असुरक्षित परियोजना लोड हुनुपर्छ।
      7. क्लिक गर्नुहोस् [ठीक छ]।
      8. पूर्व चलाउनुहोस्ampले डिबग परिप्रेक्ष्यमा।

पहिलो TrustZone® असक्षम पारिएको पूर्वample

  • TrustZone® लाई लोड गर्नु र चलाउनु अघि असक्षम गरिएको पूर्वampले, पूर्व पढ्न अनिवार्य छampमलाई पढ्नुहोस् file कुनै पनि विशिष्ट कन्फिगरेसनको लागि। यदि त्यहाँ कुनै विशेष उल्लेख छैन भने, सुनिश्चित गर्नुहोस् कि बोर्ड उपकरणमा सुरक्षा असक्षम गरिएको छ (TZEN=0 (प्रयोगकर्ता विकल्प बाइट))। TZEN = ० मा वैकल्पिक रिग्रेसन गर्नका लागि FAQ हेर्नुहोस्
    1. \Projects\NUCLEO-WBA52CG\Ex मा ब्राउज गर्नुहोस्ampलेस।
    2. खोल्नुहोस् \GPIO, त्यसपछि \GPIO_EXTI फोल्डरहरू।
    3. आफ्नो मनपर्ने टूलचेन संग परियोजना खोल्नुहोस्। एक छिटो समाप्तview कसरी खोल्ने, निर्माण गर्ने र पूर्व चलाउने बारेampसमर्थित टूलचेन्सको साथ le तल दिइएको छ।
    4. सबै पुनर्निर्माण गर्नुहोस् files र लक्ष्य मेमोरीमा आफ्नो छवि लोड गर्नुहोस्।
    5. पूर्व चलाउनुहोस्ample: प्रत्येक पटक [USER] पुस-बटन थिच्दा, LD1 LED टगल हुन्छ। थप विवरणहरूको लागि, रीडमीलाई सन्दर्भ गर्नुहोस् file पूर्व कोample।
  • खोल्न, निर्माण गर्न र पूर्व चलाउनampसमर्थित टूलचेन्सको साथ, तलका चरणहरू पालना गर्नुहोस्:
    • EWARM:
      1. पूर्व अन्तर्गतample फोल्डर, \EWARM सबफोल्डर खोल्नुहोस्।
      2. Project.eww कार्यस्थान सुरु गर्नुहोस् (कार्यस्थानको नाम एक पूर्वबाट परिवर्तन हुन सक्छampले अर्को)।
      3. सबै पुनर्निर्माण गर्नुहोस् files: [परियोजना]>[सबै पुनर्निर्माण गर्नुहोस्]।
      4. परियोजना छवि लोड गर्नुहोस्: [प्रोजेक्ट]> [डिबग]।
      5. कार्यक्रम चलाउनुहोस्: [डिबग]>[जानुहोस् (F5)]।
    • MDK-ARM:
      1. पूर्व अन्तर्गतample फोल्डर, \MDK-ARM सबफोल्डर खोल्नुहोस्।
      2. Project.uvproj कार्यस्थान सुरु गर्नुहोस् (कार्यस्थानको नाम एक पूर्वबाट परिवर्तन हुन सक्छampले अर्को)।
      3. सबै पुनर्निर्माण गर्नुहोस् files:[परियोजना]>[सबै लक्ष्य पुनर्निर्माण गर्नुहोस् files]।
      4. परियोजना छवि लोड गर्नुहोस्: [डिबग]>[डिबग सत्र सुरु/रोक्नुहोस्]।
      5. कार्यक्रम चलाउनुहोस्: [डिबग]>[रन (F5)]।
    • STM32CubeIDE:
      1. STM32CubeIDE टूलचेन खोल्नुहोस्।
      2. क्लिक गर्नुहोस् [File]>[कार्यस्थान स्विच गर्नुहोस्]>[अन्य] र STM32CubeIDE कार्यस्थान निर्देशिकामा ब्राउज गर्नुहोस्।
      3. क्लिक गर्नुहोस् [File]>[आयात], चयन गर्नुहोस् [सामान्य]>[कार्यस्थानमा अवस्थित परियोजनाहरू], र त्यसपछि [अर्को] क्लिक गर्नुहोस्।
      4. STM32CubeIDE कार्यस्थान डाइरेक्टरीमा ब्राउज गर्नुहोस् र परियोजना चयन गर्नुहोस्।
      5. सबै परियोजना पुनर्निर्माण गर्नुहोस् files: [प्रोजेक्ट एक्सप्लोरर] विन्डोमा परियोजना चयन गर्नुहोस् त्यसपछि [प्रोजेक्ट]>[बिल्ड प्रोजेक्ट] मेनुमा क्लिक गर्नुहोस्।
      6. कार्यक्रम चलाउनुहोस्: [रन]>[डिबग (F11)]
अनुकूलन अनुप्रयोग विकास गर्दै

नोट: सफ्टवेयरले फ्ल्याश मेमोरीबाट ० प्रतीक्षा-राज्य कार्यान्वयन प्राप्त गर्न निर्देशन क्यास (ICACHE) सक्षम गर्नुपर्छ, र अधिकतम कार्यसम्पादन र राम्रो पावर खपतमा पुग्छ।

अनुप्रयोग विकास वा अद्यावधिक गर्न STM32CubeMX प्रयोग गर्दै

  • STM32CubeWBA MCU प्याकेजमा, लगभग सबै परियोजना पूर्वamples प्रणाली, बाह्य उपकरणहरू, र मिडलवेयर सुरु गर्न STM32CubeMX उपकरणसँग उत्पन्न गरिन्छ।
  • अवस्थित परियोजनाको प्रत्यक्ष प्रयोग पूर्वample STM32CubeMX उपकरणबाट STM32CubeMX 6.10.0 वा उच्च आवश्यक छ:
    • STM32CubeMX को स्थापना पछि, खोल्नुहोस् र आवश्यक भएमा प्रस्तावित परियोजना अद्यावधिक गर्नुहोस्। अवस्थित परियोजना खोल्ने सबैभन्दा सरल तरिका *.ioc मा डबल-क्लिक गर्नु हो file ताकि STM32CubeMX ले परियोजना र यसको स्रोत स्वतः खोल्छ files.
    • STM32CubeMX ले त्यस्ता परियोजनाहरूको प्रारम्भिक स्रोत कोड उत्पन्न गर्दछ। मुख्य अनुप्रयोग स्रोत कोड "USER CODE BEGIN" र "USER CODE END" टिप्पणीहरू द्वारा समावेश गरिएको छ। यदि IP चयन र सेटिङ परिमार्जन गरिएको छ भने, STM32CubeMX ले कोडको प्रारम्भिक भाग अपडेट गर्दछ तर मुख्य अनुप्रयोग स्रोत कोड सुरक्षित गर्दछ।
  • STM32CubeMX मा अनुकूलन परियोजना विकास गर्न, चरण-दर-चरण प्रक्रिया पालना गर्नुहोस्:
    1. STM32 माइक्रोकन्ट्रोलर चयन गर्नुहोस् जुन बाह्य उपकरणहरूको आवश्यक सेटसँग मेल खान्छ।
    2. पिनआउट-कन्फ्लिक्ट सोल्भर, क्लक-ट्री सेटिङ हेल्पर, पावर खपत क्याल्कुलेटर, र MCU परिधीय कन्फिगरेसन (जस्तै GPIO वा USART) र मिडलवेयर स्ट्याकहरू (जस्तै USB) को प्रयोग गरेर सबै आवश्यक इम्बेडेड सफ्टवेयरहरू कन्फिगर गर्नुहोस्।
    3. चयन गरिएको कन्फिगरेसनमा आधारित प्रारम्भिक C कोड उत्पन्न गर्नुहोस्। यो कोड धेरै विकास वातावरण भित्र प्रयोग गर्न तयार छ। प्रयोगकर्ता कोड अर्को कोड जेनरेशनमा राखिएको छ।
  • STM32CubeMX बारे थप जानकारीको लागि, STM32 कन्फिगरेसन र प्रारम्भिक C कोड उत्पादन (UM32) को लागि प्रयोगकर्ता पुस्तिका STM1718CubeMX हेर्नुहोस्।
  • उपलब्ध परियोजनाको सूचीको लागि पूर्वampSTM32CubeWBA को लागि, अनुप्रयोग नोट STM32Cube फर्मवेयर पूर्व सन्दर्भ गर्नुहोस्ampSTM32WBA श्रृंखला (AN5929) को लागी।

चालक अनुप्रयोगहरू

HAL आवेदन
यस खण्डले STM32CubeWBA प्रयोग गरी अनुकूलन HAL अनुप्रयोग सिर्जना गर्न आवश्यक चरणहरू वर्णन गर्दछ:

  1. एउटा परियोजना बनाउनुहोस्
    • नयाँ परियोजना सिर्जना गर्न, प्रत्येक बोर्डको लागि \Projects\ अन्तर्गत प्रदान गरिएको टेम्प्लेट परियोजनाबाट सुरु गर्नुहोस्। \ टेम्प्लेटहरू वा \ परियोजनाहरू अन्तर्गत उपलब्ध कुनै पनि परियोजनाबाट \परीक्षा पल वा \परियोजनाहरू\ \ अनुप्रयोगहरू (जहाँ बोर्डको नामलाई बुझाउँछ, जस्तै STM32CubeWBA)।
    • टेम्प्लेट परियोजनाले खाली मुख्य लुप प्रकार्य प्रदान गर्दछ। यद्यपि, यो STM32CubeWBA परियोजना सेटिङहरू बुझ्नको लागि राम्रो सुरुवात बिन्दु हो। टेम्प्लेटमा निम्न विशेषताहरू छन्:
      • यसले HAL स्रोत कोड, CMSIS, र BSP ड्राइभरहरू समावेश गर्दछ, जुन दिइएको बोर्डमा कोड विकास गर्न आवश्यक पर्ने घटकहरूको न्यूनतम सेट हो।
      • यसले सबै फर्मवेयर कम्पोनेन्टहरूका लागि समावेश मार्गहरू समावेश गर्दछ।
      • यसले समर्थित STM32WBA श्रृंखला यन्त्रहरू परिभाषित गर्दछ, CMSIS र HAL ड्राइभरहरूलाई सही रूपमा कन्फिगर गर्न अनुमति दिँदै।
      • यसले प्रयोग गर्नका लागि तयार प्रयोगकर्ता प्रदान गर्दछ fileतल देखाइएको रूपमा पूर्व कन्फिगर गरिएको छ:
        HAL ले Arm® core SysTick को साथ पूर्वनिर्धारित समय आधारको साथ प्रारम्भ गर्यो। HAL_Delay() उद्देश्यका लागि SysTick ISR लागू गरियो।
        नोट: अवस्थित परियोजनालाई अर्को स्थानमा प्रतिलिपि गर्दा, समावेश गरिएका सबै मार्गहरू अद्यावधिक गरिएका छन् भनी सुनिश्चित गर्नुहोस्।
  2. प्रयोगकर्ता परियोजनामा ​​आवश्यक मिडलवेयर थप्नुहोस् (वैकल्पिक)
    स्रोत पहिचान गर्न fileपरियोजनामा ​​थपिनेछ file सूची, प्रत्येक मिडलवेयरको लागि प्रदान गरिएको कागजातलाई सन्दर्भ गर्नुहोस्। \Projects\STM32xxx_yyy\Applications\ अन्तर्गतका अनुप्रयोगहरूलाई सन्दर्भ गर्नुहोस्। (कहाँ मिडलवेयर स्ट्याकलाई बुझाउँछ, जस्तै ThreadX) कुन स्रोत थाहा पाउन files र समावेश मार्गहरू थप्नु पर्छ।
  3. फर्मवेयर कम्पोनेन्टहरू कन्फिगर गर्नुहोस्
    HAL र मिडलवेयर कम्पोनेन्टहरूले हेडरमा घोषित म्याक्रोज #define प्रयोग गरेर निर्माण-समय कन्फिगरेसन विकल्पहरूको सेट प्रस्ताव गर्दछ। file। टेम्प्लेट कन्फिगरेसन file प्रत्येक कम्पोनेन्ट भित्र उपलब्ध गराइन्छ, जसलाई प्रोजेक्ट फोल्डरमा प्रतिलिपि गर्नु पर्छ (सामान्यतया कन्फिगरेसन file xxx_conf_template.h नाम दिइएको छ, परियोजना फोल्डरमा प्रतिलिपि गर्दा _template शब्द हटाउन आवश्यक छ)। कन्फिगरेसन file प्रत्येक कन्फिगरेसन विकल्पको प्रभाव बुझ्न पर्याप्त जानकारी प्रदान गर्दछ। थप विस्तृत जानकारी प्रत्येक कम्पोनेन्टको लागि प्रदान गरिएको कागजातमा उपलब्ध छ।
  4. HAL पुस्तकालय सुरु गर्नुहोस्
    मुख्य कार्यक्रममा जम्प गरेपछि, अनुप्रयोग कोडले HAL लाइब्रेरी सुरु गर्न HAL_Init() API लाई कल गर्नुपर्छ, जसले निम्न कार्यहरू गर्दछ:
    • फ्ल्यास मेमोरी प्रिफेच र SysTick अवरोध प्राथमिकताको कन्फिगरेसन (st m32wbaxx_hal_conf.h मा परिभाषित म्याक्रोहरू मार्फत)।
    • stm32wbaxx_hal_conf.h मा परिभाषित SysTick अवरोध प्राथमिकता TICK_INT_PRIO मा प्रत्येक मिलिसेकेन्डमा अवरोध उत्पन्न गर्न SysTick को कन्फिगरेसन।
    • NVIC समूहको प्राथमिकता ० मा सेट गर्दै।
    • HAL_MspInit() कलब्याक प्रकार्यको कल stm32wbaxx_hal_msp.c प्रयोगकर्तामा परिभाषित file विश्वव्यापी निम्न-स्तर हार्डवेयर प्रारम्भिकरणहरू प्रदर्शन गर्न।
  5. प्रणाली घडी कन्फिगर गर्नुहोस्
    प्रणाली घडी कन्फिगरेसन तल वर्णन गरिएका दुई API लाई कल गरेर गरिन्छ:
    • HAL_RCC_OscConfig(): यस API ले आन्तरिक र बाह्य ओसिलेटरहरू कन्फिगर गर्दछ। प्रयोगकर्ताले एक वा सबै ओसिलेटरहरू कन्फिगर गर्न रोज्छ।
    • HAL_RCC_ClockConfig(): यो API ले प्रणाली घडी स्रोत, फ्ल्यास मेमोरी विलम्बता, र AHB र APB prescalers कन्फिगर गर्दछ।
  6. परिधीय प्रारम्भ गर्नुहोस्
    • पहिले परिधीय HAL_PPP_MspInit प्रकार्य लेख्नुहोस्। निम्नानुसार अगाडि बढ्नुहोस्:
      • परिधीय घडी सक्षम गर्नुहोस्।
      • परिधीय GPIOs कन्फिगर गर्नुहोस्।
      • DMA च्यानल कन्फिगर गर्नुहोस् र DMA अवरोध सक्षम गर्नुहोस् (यदि आवश्यक भएमा)।
      • परिधीय अवरोध सक्षम गर्नुहोस् (यदि आवश्यक छ भने)।
    • आवश्यक अवरोध ह्यान्डलरहरू (पेरिफेरल र DMA) कल गर्न stm32xxx_it.c सम्पादन गर्नुहोस्, यदि आवश्यक छ भने।
    • प्रक्रिया पूर्ण कलब्याक प्रकार्यहरू लेख्नुहोस्, यदि परिधीय अवरोध वा DMA प्रयोग गर्ने योजना छ।
    • प्रयोगकर्ता main.c मा file, परिधीय ह्यान्डल संरचना प्रारम्भ गर्नुहोस् त्यसपछि परिधीय सुरु गर्न प्रकार्य HAL_PPP_Init() लाई कल गर्नुहोस्।
  7. एउटा अनुप्रयोग विकास गर्नुहोस्
    • यसैमा एसtagई, प्रणाली तयार छ र प्रयोगकर्ता अनुप्रयोग कोड विकास सुरु गर्न सक्नुहुन्छ।
    • HAL ले परिधीय कन्फिगर गर्न सहज र प्रयोग गर्न तयार APIs प्रदान गर्दछ। यसले कुनै पनि आवेदन आवश्यकताहरू समायोजन गर्न मतदान, अवरोधहरू, र DMA प्रोग्रामिङ मोडेललाई समर्थन गर्दछ। प्रत्येक परिधीय कसरी प्रयोग गर्ने भन्ने बारे थप विवरणहरूको लागि, रिच एक्स सन्दर्भ गर्नुहोस्ampले सेट STM32CubeWBA MCU प्याकेजमा प्रदान गरिएको छ।
      सावधानी: पूर्वनिर्धारित HAL कार्यान्वयनमा, SysTick टाइमरलाई टाइमबेसको रूपमा प्रयोग गरिन्छ: यसले नियमित समय अन्तरालहरूमा अवरोधहरू उत्पन्न गर्छ। यदि HAL_Delay() लाई परिधीय ISR प्रक्रियाबाट कल गरिएको छ भने, SysTick interrupt को परिधीय अवरोध भन्दा उच्च प्राथमिकता (संख्यात्मक रूपमा कम) छ भनेर सुनिश्चित गर्नुहोस्। अन्यथा, कल गर्ने ISR प्रक्रिया अवरुद्ध छ। टाइमबेस कन्फिगरेसनलाई असर गर्ने प्रकार्यहरूलाई प्रयोगकर्तामा अन्य कार्यान्वयनको अवस्थामा ओभरराइड सम्भव बनाउन __ कमजोर घोषित गरिन्छ। file (सामान्य-उद्देश्य टाइमर प्रयोग गर्दै, उदाहरणका लागिample, वा अर्को समय स्रोत)। थप विवरणहरूको लागि, HAL_TimeBase पूर्व सन्दर्भ गर्नुहोस्ample।

LL आवेदन
यस खण्डले STM32CubeWBA प्रयोग गरेर आफू अनुकूल LL अनुप्रयोग सिर्जना गर्न आवश्यक चरणहरू वर्णन गर्दछ।

  1. एउटा परियोजना बनाउनुहोस्
    • नयाँ परियोजना सिर्जना गर्न, कि त \Projects\ अन्तर्गत प्रत्येक बोर्डको लागि प्रदान गरिएको Templates_LL परियोजनाबाट सुरु गर्नुहोस्। \Templates_LL, वा \Projects\ अन्तर्गत उपलब्ध कुनै पनि परियोजनाबाट \ उदाamples_LL ( बोर्डको नामलाई बुझाउँछ, जस्तै NUCLEO-WBA32CG)।
    • टेम्प्लेट परियोजनाले खाली मुख्य लूप प्रकार्य प्रदान गर्दछ, जुन STM32CubeWBA का लागि परियोजना सेटिङहरू बुझ्नको लागि राम्रो सुरुवात बिन्दु हो। टेम्प्लेटको मुख्य विशेषताहरू निम्न हुन्:
      • यसले LL र CMSIS ड्राइभरहरूको स्रोत कोडहरू समावेश गर्दछ, जुन दिइएको बोर्डमा कोड विकास गर्न आवश्यक पर्ने घटकहरूको न्यूनतम सेट हो।
      • यसले सबै आवश्यक फर्मवेयर कम्पोनेन्टहरूका लागि समावेश मार्गहरू समावेश गर्दछ।
      • यसले समर्थित STM32WBA श्रृंखला उपकरण चयन गर्दछ र CMSIS र LL ड्राइभरहरूको सही कन्फिगरेसनलाई अनुमति दिन्छ।
      • यो प्रयोग गर्न तयार प्रयोगकर्ता प्रदान गर्दछ fileनिम्नानुसार पूर्व कन्फिगर गरिएको छ:
        ◦ main.h: LED र USER_BUTTON परिभाषा अमूर्त तह।
        ◦ main.c: अधिकतम आवृत्तिको लागि प्रणाली घडी कन्फिगरेसन।
  2. अवस्थित परियोजनालाई अर्को बोर्डमा पोर्ट गर्नुहोस्
    अर्को लक्ष्य बोर्डमा अवस्थित परियोजनालाई समर्थन गर्न, प्रत्येक बोर्डको लागि उपलब्ध गराइएको Templates_LL परियोजनाबाट सुरु गर्नुहोस् र \Projects\ अन्तर्गत उपलब्ध छ। टेम्प्लेट_LL।
    • एक LL पूर्व चयन गर्नुहोस्ample: बोर्ड फेला पार्न जसमा LL पूर्वampलेस तैनाथ गरिएको छ, एलएल पूर्वको सूचीलाई सन्दर्भ गर्नुहोस्amples STM32CubeProjectsList.html।
  3. LL पूर्व पोर्ट गर्नुहोस्ampLe:
    • Templates_LL फोल्डर प्रतिलिपि / टाँस्नुहोस् - प्रारम्भिक स्रोत राख्न - वा सीधा अवस्थित Temp lates_LL परियोजना अद्यावधिक गर्नुहोस्।
    • त्यसपछि पोर्टिङ मुख्य रूपमा Templates_LL प्रतिस्थापनमा समावेश गर्दछ fileपूर्व द्वारा एसamples_LL लक्षित परियोजना।
    • सबै बोर्ड विशिष्ट भागहरू राख्नुहोस्। स्पष्टता को कारण को लागी, बोर्ड विशिष्ट भागहरु विशिष्ट संग फ्ल्याग गरिएको छ tags:

      STMicroelectronics-STM32WBA-Series-Getting-Started-fig-7

    • तसर्थ, मुख्य पोर्टिंग चरणहरू निम्न हुन्:
      • stm32wbaxx_it.h लाई बदल्नुहोस् file
      • stm32wbaxx_it.c बदल्नुहोस् file
      • main.h लाई बदल्नुहोस् file र यसलाई अपडेट गर्नुहोस्: LL टेम्प्लेटको LED र प्रयोगकर्ता बटन परिभाषा बोर्ड विशिष्ट कन्फिगरेसन अन्तर्गत राख्नुहोस् tags.
      • main.c लाई बदल्नुहोस् file र यसलाई अपडेट गर्नुहोस्:
    • SystemClock_Config() LL टेम्प्लेट प्रकार्यको घडी कन्फिगरेसन बोर्ड स्पेसिफिक कन्फिगरेसन अन्तर्गत राख्नुहोस् tags.
    • LED परिभाषामा निर्भर गर्दै, प्रत्येक LDx घटनालाई main.h मा उपलब्ध अर्को LDy सँग बदल्नुहोस्। file.
    • यी परिमार्जनहरूसँग, पूर्वampले अब लक्षित बोर्डमा चल्छ

सुरक्षा अनुप्रयोगहरू
यो प्याकेज सुरक्षा अनुप्रयोगहरूसँग डेलिभर गरिएको छ।

SBSFU अनुप्रयोगहरू

  • SBSFU ले सुरक्षित बुट र सुरक्षित फर्मवेयर अपडेट प्रकार्यहरू (MCUboot मा आधारित) सहित ट्रस्ट समाधानको रूट प्रदान गर्दछ।
  • समाधान अनुप्रयोग कार्यान्वयन गर्नु अघि प्रयोग गरिन्छ।
  • समाधान एक पूर्व प्रदान गर्दछampसुरक्षित सेवाको le (GPIO टगल), जुन असुरक्षित अनुप्रयोगबाट अलग छ। रनटाइममा असुरक्षित अनुप्रयोगले अझै पनि यो समाधान प्रयोग गर्न सक्छ।

TFM अनुप्रयोगहरू
TFM ले सुरक्षित बुट र सुरक्षित फर्मवेयर अपडेट कार्यक्षमताहरू सहित ट्रस्ट समाधानको रूट प्रदान गर्दछ।
(MCUboot मा आधारित)। समाधान अनुप्रयोग कार्यान्वयन गर्नु अघि प्रयोग गरिन्छ। समाधानले TFM सुरक्षित सेवाहरू प्रदान गर्दछ जुन असुरक्षित अनुप्रयोगबाट अलग छन्। रनटाइममा असुरक्षित अनुप्रयोगले अझै पनि यो समाधान प्रयोग गर्न सक्छ।

आरएफ अनुप्रयोगहरू
RF अनुप्रयोग यस अनुप्रयोग नोटमा वर्णन गरिएको छ: STM32WBA श्रृंखला माइक्रोकन्ट्रोलरहरू (AN5928) सँग वायरलेस अनुप्रयोगहरू निर्माण गर्दै।

STM32CubeWBA रिलीज अद्यावधिकहरू प्राप्त गर्दै
नवीनतम STM32CubeWBA MCU प्याकेज रिलीज र प्याचहरू STM32WBA श्रृंखलाबाट उपलब्ध छन्। तिनीहरू STM32CubeMX मा अपडेटको लागि जाँच गर्नुहोस् बटनबाट पुन: प्राप्त गर्न सकिन्छ। थप विवरणहरूको लागि, STM3 कन्फिगरेसन र प्रारम्भिक C कोड उत्पादन (UM32) को लागि प्रयोगकर्ता पुस्तिका STM32CubeMX को खण्ड 1718 हेर्नुहोस्।

FAQ

  • मैले LL ड्राइभरको सट्टा HAL कहिले प्रयोग गर्नुपर्छ?
    • HAL ड्राइभरहरूले उच्च स्तरको पोर्टेबिलिटीको साथ उच्च-स्तर र कार्य-उन्मुख APIs प्रस्ताव गर्छन्। उत्पादन वा परिधीय जटिलता अन्त प्रयोगकर्ताहरूको लागि लुकेको छ।
    • LL ड्राइभरहरूले राम्रो अप्टिमाइजेसन तर कम पोर्टेबलको साथ कम-लेयर दर्ता स्तर API हरू प्रस्ताव गर्छन्। तिनीहरूलाई उत्पादन वा IP विनिर्देशहरूको गहन ज्ञान चाहिन्छ।
  • के म HAL र LL ड्राइभरहरू सँगै प्रयोग गर्न सक्छु? यदि म सक्छु भने, के बाधाहरू छन्?
    • HAL र LL दुबै ड्राइभरहरू प्रयोग गर्न सम्भव छ। IP प्रारम्भिक चरणको लागि HAL प्रयोग गर्नुहोस् र त्यसपछि LL ड्राइभरहरूसँग I/O सञ्चालनहरू व्यवस्थापन गर्नुहोस्।
    • HAL र LL बीचको मुख्य भिन्नता हो कि HAL ड्राइभरहरूले सञ्चालन व्यवस्थापनको लागि ह्यान्डलहरू सिर्जना गर्न र प्रयोग गर्न आवश्यक छ जबकि LL ड्राइभरहरूले प्रत्यक्ष रूपमा परिधीय दर्ताहरूमा काम गर्छन्। पूर्वamples_MIX पूर्वample ले HAL र LL लाई कसरी मिश्रण गर्ने भनेर वर्णन गर्दछ।
  • LL प्रारम्भिकरण API हरू कसरी सक्षम छन्?
    • LL प्रारम्भिकरण API र सम्बन्धित स्रोतहरू (संरचनाहरू, अक्षरहरू, र प्रोटोटाइपहरू) को परिभाषा USE_FULL_LL_DRIVER संकलन स्विच द्वारा सर्त गरिएको छ।
    • LL प्रारम्भिक APIs प्रयोग गर्न सक्षम हुन, यो स्विच टुलचेन कम्पाइलर प्रिप्रोसेसरमा थप्नुहोस्।
  • कसरी STM32CubeMX ले इम्बेडेड सफ्टवेयरमा आधारित कोड उत्पन्न गर्न सक्छ?
    STM32CubeMX सँग STM32 माइक्रोकन्ट्रोलरहरूको बिल्ट-इन ज्ञान छ, तिनीहरूको परिधीय र सफ्टवेयरले प्रयोगकर्तालाई ग्राफिकल प्रतिनिधित्व प्रदान गर्न र *.h वा *.c उत्पन्न गर्न अनुमति दिन्छ। files प्रयोगकर्ता कन्फिगरेसनमा आधारित।

महत्त्वपूर्ण सूचना - ध्यानपूर्वक पढ्नुहोस्

  • STMicroelectronics NV र यसका सहायक कम्पनीहरू ("ST") ले बिना सूचना कुनै पनि समयमा ST उत्पादनहरू र/वा यस कागजातमा परिवर्तनहरू, सुधारहरू, परिमार्जनहरू, परिमार्जनहरू र सुधारहरू गर्ने अधिकार सुरक्षित राख्छन्। खरिदकर्ताहरूले अर्डर राख्नु अघि ST उत्पादनहरूमा नवीनतम सान्दर्भिक जानकारी प्राप्त गर्नुपर्छ। ST उत्पादनहरू अर्डर स्वीकृतिको समयमा ST को बिक्रीका सर्तहरू र सर्तहरू अनुसार बेचिन्छन्।
  • ST उत्पादनहरूको छनोट, छनोट र प्रयोगको लागि खरिदकर्ताहरू पूर्ण रूपमा जिम्मेवार छन् र ST ले आवेदन सहायता वा खरिदकर्ताहरूको उत्पादनहरूको डिजाइनको लागि कुनै दायित्व मान्दैन।
  • कुनै लाइसेन्स, एक्सप्रेस वा निहित, कुनै पनि बौद्धिक सम्पत्ति अधिकार यहाँ ST द्वारा प्रदान गरिएको छैन।
  • यहाँ उल्लेख गरिएको जानकारी भन्दा फरक प्रावधानहरू सहित ST उत्पादनहरूको पुन: बिक्रीले त्यस्तो उत्पादनको लागि ST द्वारा प्रदान गरिएको कुनै पनि वारेन्टी रद्द हुनेछ।
  • ST र ST लोगो ST को ट्रेडमार्क हो। ST ट्रेडमार्कहरूको बारेमा थप जानकारीको लागि, www.st.com/trademarks मा हेर्नुहोस्। अन्य सबै उत्पादन वा सेवा नामहरू तिनीहरूका सम्बन्धित मालिकहरूको सम्पत्ति हुन्।
  • यस कागजातमा भएको जानकारीले यस कागजातको कुनै पनि अघिल्लो संस्करणहरूमा पहिले प्रदान गरिएको जानकारीलाई हटाउँछ र प्रतिस्थापन गर्दछ।
  • © 2023 STMicroelectronics - सबै अधिकार सुरक्षित

कागजातहरू / स्रोतहरू

STMicroelectronics STM32WBA श्रृंखला सुरु गर्दै [pdf] प्रयोगकर्ता पुस्तिका
STM32WBA श्रृंखला सुरु गर्दै, सुरु गर्दै, सुरु गर्दै

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *