STMicroelectronics STM32WBA সিরিজ শুরু হচ্ছে
পণ্য তথ্য
স্পেসিফিকেশন:
- পণ্যের নাম: STM32CubeWBA MCU প্যাকেজ
- প্রস্তুতকারক: এসটিমাইক্রোইলেক্ট্রনিক্স
- সামঞ্জস্যতা: STM32WBA সিরিজের মাইক্রোকন্ট্রোলার
- লাইসেন্সিং: ওপেন সোর্স BSD লাইসেন্স
পণ্য ব্যবহারের নির্দেশাবলী
STM32CubeWBA MCU প্যাকেজের প্রধান বৈশিষ্ট্য:
STM32CubeWBA MCU প্যাকেজ STM32WBA সিরিজের মাইক্রোকন্ট্রোলারগুলিতে অ্যাপ্লিকেশন বিকাশের জন্য সমস্ত প্রয়োজনীয় এমবেডেড সফ্টওয়্যার উপাদান সরবরাহ করে। এটি STM32 সিরিজের মধ্যে অত্যন্ত বহনযোগ্য এবং HAL এবং LL API এর সাথে আসে, যেমনampলেস, এবং মিডলওয়্যার উপাদান।
আর্কিটেকচার ওভারview:
STM32CubeWBA MCU প্যাকেজের আর্কিটেকচারে তিনটি স্তর রয়েছে - অ্যাপ্লিকেশন, লাইব্রেরি এবং প্রোটোকল-ভিত্তিক উপাদান, হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার, BSP ড্রাইভার, কোর ড্রাইভার এবং লো-লেয়ার এপিআই।
FAQ
- STM32CubeWBA MCU প্যাকেজে কী অন্তর্ভুক্ত রয়েছে?
প্যাকেজটিতে লো-লেয়ার (LL) এবং হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) APIs রয়েছে, যেমনampলেস, অ্যাপ্লিকেশন, মিডলওয়্যার উপাদান পছন্দ FileX/LevelX, NetX Duo, mbed-ক্রিপ্টো লাইব্রেরি, এবং আরও অনেক কিছু। - STM32CubeWBA MCU প্যাকেজ কি STM32CubeMX কোড জেনারেটরের সাথে সামঞ্জস্যপূর্ণ?
হ্যাঁ, প্যাকেজটি আরম্ভ করার কোড তৈরি করার জন্য STM32CubeMX কোড জেনারেটরের সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ।
ভূমিকা
- STM32Cube হল একটি STMicroelectronics মূল উদ্যোগ যা উন্নয়ন প্রচেষ্টা, সময় এবং খরচ কমিয়ে ডিজাইনার উৎপাদনশীলতাকে উল্লেখযোগ্যভাবে উন্নত করে। STM32Cube পুরো STM32 পোর্টফোলিও কভার করে।
STM32Cube এর মধ্যে রয়েছে:- ধারণা থেকে উপলব্ধি পর্যন্ত প্রকল্পের বিকাশকে কভার করার জন্য ব্যবহারকারী-বান্ধব সফ্টওয়্যার বিকাশের সরঞ্জামগুলির একটি সেট, যার মধ্যে রয়েছে:
- STM32CubeMX, একটি গ্রাফিকাল সফ্টওয়্যার কনফিগারেশন টুল যা গ্রাফিক্যাল উইজার্ড ব্যবহার করে সি ইনিশিয়ালাইজেশন কোডের স্বয়ংক্রিয় প্রজন্মের অনুমতি দেয়
- STM32CubeIDE, পেরিফেরাল কনফিগারেশন, কোড জেনারেশন, কোড কম্পাইলেশন এবং ডিবাগ বৈশিষ্ট্য সহ একটি অল-ইন-ওয়ান ডেভেলপমেন্ট টুল
- STM32CubeCLT, কোড সংকলন, বোর্ড প্রোগ্রামিং এবং ডিবাগ বৈশিষ্ট্য সহ একটি সর্ব-ইন-ওয়ান কমান্ড-লাইন ডেভেলপমেন্ট টুলসেট
- STM32CubeProgrammer (STM32CubeProg), গ্রাফিকাল এবং কমান্ড-লাইন সংস্করণে উপলব্ধ একটি প্রোগ্রামিং টুল
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), রিয়েল টাইমে STM32 অ্যাপ্লিকেশানগুলির আচরণ এবং কার্যকারিতা সূক্ষ্ম-টিউন করার জন্য শক্তিশালী মনিটরিং টুল
- STM32Cube MCU এবং MPU প্যাকেজ, প্রতিটি মাইক্রোকন্ট্রোলার এবং মাইক্রোপ্রসেসর সিরিজের জন্য নির্দিষ্ট ব্যাপক এমবেডেড-সফ্টওয়্যার প্ল্যাটফর্ম (যেমন STM32WBA সিরিজের জন্য STM32CubeWBA), যার মধ্যে রয়েছে:
- STM32Cube হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL), STM32 পোর্টফোলিও জুড়ে সর্বাধিক বহনযোগ্যতা নিশ্চিত করে
- STM32Cube লো-লেয়ার এপিআই, হার্ডওয়্যারের উপর ব্যবহারকারীর নিয়ন্ত্রণের উচ্চ ডিগ্রী সহ সর্বোত্তম কর্মক্ষমতা এবং পায়ের ছাপ নিশ্চিত করে
- মিডলওয়্যার উপাদানগুলির একটি সামঞ্জস্যপূর্ণ সেট যেমন 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 প্যাকেজ দিয়ে শুরু করবেন।
- বিভাগ 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) এপিআই রয়েছে যা মাইক্রোকন্ট্রোলার হার্ডওয়্যারকে কভার করে, একত্রে একটি বিস্তৃত সেট সহamples STMicroelectronics বোর্ডে চলছে। 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 সিস্টেম এবং ফ্ল্যাশ অনুবাদ স্তর: Fileএক্স / লেভেলএক্স
- ইন্ডাস্ট্রিয়াল গ্রেড নেটওয়ার্কিং স্ট্যাক: অনেক IoT প্রোটোকলের সাথে পারফরম্যান্সের জন্য অপ্টিমাইজ করা হয়েছে: NetX Duo
- ওপেন বুটলোডার
- Arm® বিশ্বস্ত ফার্মওয়্যার-M (TF‑M) ইন্টিগ্রেশন সমাধান
- mbed-ক্রিপ্টো লাইব্রেরি
- এসটি নেটওয়ার্ক লাইব্রেরি
- STMTtouch স্পর্শ সেন্সিং লাইব্রেরি সমাধান
- STM32CubeWBA MCU প্যাকেজে এই সমস্ত মিডলওয়্যার উপাদানগুলি বাস্তবায়নকারী বেশ কয়েকটি অ্যাপ্লিকেশন এবং প্রদর্শনী প্রদান করা হয়েছে।
- STM32CubeWBA MCU প্যাকেজ কম্পোনেন্ট লেআউট চিত্র 1 এ দেখানো হয়েছে। STM32CubeWBA MCU প্যাকেজ উপাদান।
STM32CubeWBA আর্কিটেকচার শেষview
STM32CubeWBA MCU প্যাকেজ সলিউশনটি তিনটি স্বাধীন স্তরের চারপাশে তৈরি করা হয়েছে যা চিত্র 2-এ বর্ণিত সহজে ইন্টারঅ্যাক্ট করে। STM32CubeWBA MCU প্যাকেজ আর্কিটেকচার।
লেভেল 0
এই স্তরটি তিনটি উপস্তরে বিভক্ত:
- বোর্ড সাপোর্ট প্যাকেজ (BSP)।
- হার্ডওয়্যার বিমূর্তকরণ স্তর (HAL):
- HAL পেরিফেরাল ড্রাইভার
- নিম্ন স্তরের ড্রাইভার
- মৌলিক পেরিফেরাল ব্যবহার প্রাক্তনampলেস
বোর্ড সাপোর্ট প্যাকেজ (BSP)
এই স্তরটি হার্ডওয়্যার বোর্ডের হার্ডওয়্যার উপাদানগুলির (যেমন LCD, অডিও, \ microSD™, এবং MEMS ড্রাইভার) সম্পর্কিত API-এর একটি সেট অফার করে। এটি দুটি অংশ নিয়ে গঠিত:
- কম্পোনেন্ট ড্রাইভার:
এই ড্রাইভারটি বোর্ডের বাহ্যিক ডিভাইসের সাথে সম্পর্কিত, STM32 ডিভাইসের সাথে নয়। কম্পোনেন্ট ড্রাইভার বিএসপি ড্রাইভার বাহ্যিক উপাদানগুলিতে নির্দিষ্ট API সরবরাহ করে এবং অন্য কোনও বোর্ডে বহনযোগ্য হতে পারে। - বিএসপি ড্রাইভার:
বিএসপি ড্রাইভার একটি নির্দিষ্ট বোর্ডের সাথে কম্পোনেন্ট ড্রাইভারকে লিঙ্ক করার অনুমতি দেয় এবং ব্যবহারকারী-বান্ধব একটি সেট সরবরাহ করে
এপিআই API নামকরণের নিয়ম হল BSP_FUNCT_Action()।
Exampলে: BSP_LED_Init(), BSP_LED_On()
BSP একটি মডুলার আর্কিটেকচারের উপর ভিত্তি করে তৈরি করা হয়েছে যা শুধুমাত্র নিম্ন-স্তরের রুটিনগুলি বাস্তবায়ন করে যেকোনো হার্ডওয়্যারে সহজে পোর্ট করার অনুমতি দেয়।
হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) এবং লো-লেয়ার (LL)
STM32CubeWBA HAL এবং LL পরিপূরক এবং বিস্তৃত আবেদনের প্রয়োজনীয়তা কভার করে:
- এইচএএল ড্রাইভাররা উচ্চ-স্তরের ফাংশন-ভিত্তিক উচ্চ বহনযোগ্য API অফার করে। তারা শেষ ব্যবহারকারীর কাছে MCU এবং পেরিফেরাল জটিলতা লুকিয়ে রাখে।
HAL ড্রাইভারগুলি জেনেরিক মাল্টি-ইনস্ট্যান্স বৈশিষ্ট্য-ভিত্তিক API প্রদান করে, যা ব্যবহারের জন্য প্রস্তুত প্রসেস প্রদান করে ব্যবহারকারীর অ্যাপ্লিকেশন বাস্তবায়নকে সহজ করে। প্রাক্তন জন্যample, যোগাযোগ পেরিফেরালগুলির জন্য (I2S, UART, এবং অন্যান্য), এটি APIs প্রদান করে পেরিফেরাল শুরু এবং কনফিগার করার অনুমতি দেয়, পোলিং, বাধা বা DMA প্রক্রিয়ার উপর ভিত্তি করে ডেটা স্থানান্তর পরিচালনা করে এবং যোগাযোগের সময় উদ্ভূত যোগাযোগের ত্রুটিগুলি পরিচালনা করে। HAL ড্রাইভার API গুলি দুটি বিভাগে বিভক্ত:- জেনেরিক API, যা সমস্ত STM32 সিরিজের মাইক্রোকন্ট্রোলারে সাধারণ এবং জেনেরিক ফাংশন প্রদান করে।
- এক্সটেনশন API, যা একটি নির্দিষ্ট পরিবার বা একটি নির্দিষ্ট অংশ নম্বরের জন্য নির্দিষ্ট এবং কাস্টমাইজড ফাংশন প্রদান করে।
- নিম্ন-স্তরের APIগুলি রেজিস্টার স্তরে নিম্ন-স্তরের API প্রদান করে, ভাল অপ্টিমাইজেশান সহ কিন্তু কম বহনযোগ্যতা।
- তাদের MCU এবং পেরিফেরাল স্পেসিফিকেশনের গভীর জ্ঞান প্রয়োজন।
- LL ড্রাইভারগুলিকে একটি দ্রুত লাইটওয়েট বিশেষজ্ঞ-ভিত্তিক স্তর অফার করার জন্য ডিজাইন করা হয়েছে যা HAL-এর চেয়ে হার্ডওয়্যারের কাছাকাছি। এইচএএল-এর বিপরীতে, এলএল এপিআইগুলি পেরিফেরালগুলির জন্য দেওয়া হয় না যেখানে অপ্টিমাইজড অ্যাক্সেস একটি মূল বৈশিষ্ট্য নয়, বা যাদের ভারী সফ্টওয়্যার কনফিগারেশন বা জটিল উচ্চ-স্তরের স্ট্যাকের প্রয়োজন হয়।
- এলএল ড্রাইভারের বৈশিষ্ট্য:
- ডেটা স্ট্রাকচারে নির্দিষ্ট পরামিতি অনুসারে পেরিফেরাল প্রধান বৈশিষ্ট্যগুলি শুরু করার জন্য ফাংশনের একটি সেট।
- প্রতিটি ক্ষেত্রের সাথে সম্পর্কিত রিসেট মানগুলির সাথে প্রারম্ভিক ডেটা স্ট্রাকচারগুলি পূরণ করার জন্য ফাংশনের একটি সেট৷
- পেরিফেরাল ডিনিটিয়ালাইজেশনের জন্য ফাংশন (পেরিফেরাল রেজিস্টারগুলি তাদের ডিফল্ট মানগুলিতে পুনরুদ্ধার করা হয়েছে)।
- সরাসরি এবং পারমাণবিক রেজিস্টার অ্যাক্সেসের জন্য ইনলাইন ফাংশনগুলির একটি সেট।
- HAL থেকে সম্পূর্ণ স্বাধীনতা এবং স্বতন্ত্র মোডে ব্যবহার করার ক্ষমতা (HAL ড্রাইভার ছাড়া)।
- সমর্থিত পেরিফেরাল বৈশিষ্ট্যের সম্পূর্ণ কভারেজ।
মৌলিক পেরিফেরাল ব্যবহার প্রাক্তনampলেস
এই স্তরটি প্রাক্তনকে আবদ্ধ করেamples শুধুমাত্র HAL এবং BSP সম্পদ ব্যবহার করে STM32 পেরিফেরালের উপর নির্মিত।
লেভেল 1
এই স্তরটি দুটি উপস্তরে বিভক্ত:
- মিডলওয়্যার উপাদান
- Exampমিডলওয়্যার উপাদানগুলির উপর ভিত্তি করে
মিডলওয়্যার উপাদান
- মিডলওয়্যার হল ব্লুটুথ® লো এনার্জি (লিঙ্কলেয়ার, এইচসিআই, স্ট্যাক), থ্রেড®, জিগবি®, লাইব্রেরির একটি সেট।
- ম্যাটার, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot, এবং mbed-ক্রিপ্টো।
- এই স্তরের উপাদানগুলির মধ্যে অনুভূমিক মিথস্ক্রিয়া বৈশিষ্ট্যযুক্ত API কল করে সম্পন্ন করা হয়।
- লো-লেয়ার ড্রাইভারের সাথে উল্লম্ব মিথস্ক্রিয়া নির্দিষ্ট কলব্যাক এবং লাইব্রেরি সিস্টেম কল ইন্টারফেসে বাস্তবায়িত স্ট্যাটিক ম্যাক্রোর মাধ্যমে সম্পন্ন হয়।
- প্রতিটি মিডলওয়্যার উপাদানের প্রধান বৈশিষ্ট্যগুলি নিম্নরূপ:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: একটি রিয়েল-টাইম অপারেটিং সিস্টেম (RTOS), দুটি কার্যকরী মোড সহ এমবেডেড সিস্টেমের জন্য ডিজাইন করা হয়েছে।
- কমন মোড: সাধারণ RTOS কার্যকারিতা যেমন থ্রেড ম্যানেজমেন্ট এবং সিঙ্ক্রোনাইজেশন, মেমরি পুল ম্যানেজমেন্ট, মেসেজিং এবং ইভেন্ট হ্যান্ডলিং।
- মডিউল মোড: একটি উন্নত ব্যবহারকারী মোড যা একটি মডিউল ম্যানেজারের মাধ্যমে ফ্লাইতে প্রিলিঙ্ক করা থ্রেডএক্স মডিউল লোড এবং আনলোড করার অনুমতি দেয়।
- নেটএক্স ডুও
- FileX
- ইউএসবিএক্স
- Azure® RTOS ThreadX: একটি রিয়েল-টাইম অপারেটিং সিস্টেম (RTOS), দুটি কার্যকরী মোড সহ এমবেডেড সিস্টেমের জন্য ডিজাইন করা হয়েছে।
- Bluetooth® Low Energy (BLE): লিঙ্ক এবং স্ট্যাক স্তরগুলির জন্য Bluetooth® নিম্ন শক্তি প্রোটোকল প্রয়োগ করে।
- MCUboot (ওপেন সোর্স সফটওয়্যার)
- স্ট্যাক এবং সম্পর্কিত ক্লাস্টারগুলির জন্য Zigbee® প্রোটোকল।
- Thread® প্রোটোকল স্ট্যাক এবং লিঙ্ক স্তর।
- Arm® বিশ্বস্ত ফার্মওয়্যার-M, TF‑M (ওপেন-সোর্স সফ্টওয়্যার): TrustZone®-এর জন্য Arm® প্ল্যাটফর্ম সিকিউরিটি আর্কিটেকচার (PSA) এর রেফারেন্স ইমপ্লিমেন্টেশন সংশ্লিষ্ট সুরক্ষিত পরিষেবার সাথে।
- mbed-ক্রিপ্টো (ওপেন সোর্স সফ্টওয়্যার): mbed-ক্রিপ্টো মিডলওয়্যার একটি PSA ক্রিপ্টোগ্রাফি API বাস্তবায়ন প্রদান করে।
- STM32 টাচ সেন্সিং লাইব্রেরি: মজবুত STMTouch ক্যাপাসিটিভ টাচ সেন্সিং সলিউশন, সাপোর্টিং প্রক্সিমিটি, টাচকি, লিনিয়ার এবং রোটারি টাচ সেন্সর। এটি একটি প্রমাণিত পৃষ্ঠ চার্জ স্থানান্তর অধিগ্রহণ নীতির উপর ভিত্তি করে।
- Microsoft® Azure® RTOS
Exampমিডলওয়্যার উপাদানগুলির উপর ভিত্তি করে
প্রতিটি মিডলওয়্যার উপাদান এক বা একাধিক প্রাক্তনের সাথে আসেamples (অ্যাপ্লিকেশানও বলা হয়) কিভাবে এটি ব্যবহার করতে হয় তা দেখাচ্ছে। ইন্টিগ্রেশন প্রাক্তনamples যেগুলি বিভিন্ন মিডলওয়্যার উপাদান ব্যবহার করে সেইসাথে প্রদান করা হয়।
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 প্রাক্তন একটি সমৃদ্ধ সেট বৈশিষ্ট্যampসমস্ত স্তরে লেস এবং অ্যাপ্লিকেশনগুলি যে কোনও HAL ড্রাইভার বা মিডলওয়্যার উপাদানগুলি বোঝা এবং ব্যবহার করা সহজ করে তোলে। এই প্রাক্তনampসারণি 2 এ তালিকাভুক্ত STMicroelectronics বোর্ডগুলিতে চালিত হয়৷
সারণি 2. STM32WBA সিরিজের জন্য বোর্ডবোর্ড বোর্ড STM32WBA সমর্থিত ডিভাইস NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - STM32CubeWBA MCU প্যাকেজ যেকোনো সামঞ্জস্যপূর্ণ হার্ডওয়্যারে চলতে পারে। প্রদত্ত প্রাক্তন পোর্ট করার জন্য ব্যবহারকারী কেবল BSP ড্রাইভার আপডেট করেampবোর্ডে les, যদি পরেরটির একই হার্ডওয়্যার বৈশিষ্ট্য থাকে (যেমন LED, LCD ডিসপ্লে, এবং বোতাম)।
ফার্মওয়্যার প্যাকেজ শেষview
- STM32CubeWBA প্যাকেজ সলিউশনটি একটি একক জিপ প্যাকেজে দেওয়া হয়েছে যার কাঠামো চিত্র 3-এ দেখানো হয়েছে। STM32CubeWBA ফার্মওয়্যার প্যাকেজ কাঠামো।
- প্রতিটি বোর্ডের জন্য, প্রাক্তন একটি সেটamples-কে EWARM, MDK-ARM, এবং STM32CubeIDE টুলচেইনের জন্য প্রি-কনফিগার করা প্রজেক্ট দেওয়া হয়েছে।
- চিত্র 4. STM32CubeWBA প্রাক্তনampলেস ওভারview NUCLEO-WBA52CG, NUCLEO-WBA55CG এবং STM32WBA55G-DK1 বোর্ডগুলির জন্য প্রকল্প কাঠামো দেখায়৷
- প্রাক্তনampতারা যে STM32Cube স্তরে প্রযোজ্য তার উপর নির্ভর করে les শ্রেণীবদ্ধ করা হয়, এবং সেগুলির নাম নিম্নরূপ:
- লেভেল 0 প্রাক্তনamples বলা হয় প্রাক্তনampলেস, প্রাক্তনamples_LL, এবং প্রাক্তনamples_MIX তারা যথাক্রমে HAL ড্রাইভার, LL ড্রাইভার এবং HAL এবং LL ড্রাইভারের মিশ্রণ কোন মিডলওয়্যার কম্পোনেন্ট ছাড়াই ব্যবহার করে।
- লেভেল 1 প্রাক্তনampলেসকে বলা হয় অ্যাপ্লিকেশন। তারা প্রতিটি মিডলওয়্যার উপাদানের সাধারণ ব্যবহারের ক্ষেত্রে সরবরাহ করে। প্রদত্ত বোর্ডের জন্য যেকোন ফার্মওয়্যার অ্যাপ্লিকেশন দ্রুত তৈরি করা যেতে পারে Templ ates এবং Templates_LL ডিরেক্টরিতে উপলব্ধ টেমপ্লেট প্রকল্পগুলির জন্য ধন্যবাদ।
TrustZone® সক্ষম প্রকল্প
- TrustZone® সক্রিয় Examples নামের মধ্যে _TrustZone উপসর্গ থাকে। নিয়মটি আবেদনপত্রের জন্যও প্রয়োগ করা হয় (TFM এবং SBSFU ছাড়া, যা স্থানীয়ভাবে TrustZone®-এর জন্য)।
- TrustZone®-সক্ষম Exampলেস এবং অ্যাপ্লিকেশানগুলি চিত্র 5-এ উপস্থাপিত হিসাবে সুরক্ষিত এবং অরক্ষিত উপ-প্রকল্পের সমন্বয়ে গঠিত একটি বহুপ্রকল্প কাঠামো প্রদান করা হয়। মাল্টিপ্রজেক্ট সুরক্ষিত এবং অরক্ষিত প্রকল্প কাঠামো।
- TrustZone®-সক্ষম প্রকল্পগুলি CMSIS-5 ডিভাইস টেমপ্লেট অনুযায়ী তৈরি করা হয়েছে, যা সিস্টেম পার্টিশনিং হেডার অন্তর্ভুক্ত করার জন্য প্রসারিত করা হয়েছে file বিভাজন_ .h, যিনি প্রধানত সুরক্ষিত অ্যাট্রিবিউট ইউনিট (SAU), FPU এবং সুরক্ষিত এক্সিকিউশন স্টেটে সুরক্ষিত/অনিরাপদ বিঘ্নিত অ্যাসাইনমেন্টের সেটআপের জন্য দায়ী।
- এই সেটআপটি সুরক্ষিত CMSIS SystemInit() ফাংশনে সম্পাদিত হয়, যা সুরক্ষিত অ্যাপ্লিকেশন main() ফাংশনে প্রবেশ করার আগে স্টার্টআপে বলা হয়। সফ্টওয়্যার নির্দেশিকাগুলির Arm® TrustZone®-M ডকুমেন্টেশন পড়ুন।
- STM32CubeWBA প্যাকেজ ফার্মওয়্যার প্যাকেজ পার্টিশনে ডিফল্ট মেমরি পার্টিশন প্রদান করে _ .h fileএর অধীনে উপলব্ধ: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T এম্পলেট
- এই বিভাজনে files, SAU ডিফল্টরূপে নিষ্ক্রিয়। ফলস্বরূপ, IDAU মেমরি ম্যাপিং নিরাপত্তা বৈশিষ্ট্যের জন্য ব্যবহৃত হয়। RM0495 রেফারেন্স ম্যানুয়ালে TrustZone® প্রযুক্তি ব্যবহার করে সিকিউর/অ-সুরক্ষিত পার্টিশনের চিত্রটি পড়ুন।
- ব্যবহারকারী যদি SAU সক্ষম করে, একটি ডিফল্ট SAU অঞ্চলের কনফিগারেশন পার্টিশনে পূর্বনির্ধারিত থাকে fileনিম্নরূপ s:
- 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 (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 প্রাক্তন বর্ণনা করছেample আচরণ এবং এটি কাজ করার জন্য প্রয়োজনীয় পরিবেশ।
- আইওসি file যা ব্যবহারকারীদের ফার্মওয়্যার প্রাক্তন বেশিরভাগ খুলতে দেয়amples STM32CubeMX এর মধ্যে।
STM32CubeWBA দিয়ে শুরু করা হচ্ছে
প্রথম HAL প্রাক্তন চালাচ্ছেনample
এই বিভাগটি ব্যাখ্যা করে যে প্রথম এক্স চালানো কতটা সহজample STM32CubeWBA এর মধ্যে। এটি NUCLEO-WBA52CG বোর্ডে চলমান একটি সাধারণ LED টগলের প্রজন্মের উদাহরণ হিসাবে ব্যবহার করে:
- STM32CubeWBA MCU প্যাকেজ ডাউনলোড করুন।
- আপনার পছন্দের একটি ডিরেক্টরিতে এটি আনজিপ করুন।
- চিত্র 1-এ দেখানো প্যাকেজ কাঠামো পরিবর্তন না করার বিষয়টি নিশ্চিত করুন। আপনার রুট ভলিউমের (অর্থাৎ C:\ST বা G:\Tests) কাছাকাছি অবস্থানে প্যাকেজটি অনুলিপি করারও সুপারিশ করা হয়, কারণ কিছু IDE-তে সমস্যা দেখা দেয় যখন পাথ দৈর্ঘ্য খুব দীর্ঘ।
একটি প্রথম TrustZone® চালু করা প্রাক্তনample
- একটি TrustZone® সক্রিয় লোড এবং চালানোর আগে exampলে, প্রাক্তন পড়া বাধ্যতামূলকample readme file যেকোন নির্দিষ্ট কনফিগারেশনের জন্য, যা নিশ্চিত করে যে সুরক্ষাটি সেকশন 4.2.1 TrustZone® সক্ষম প্রকল্পে বর্ণিত হিসাবে সক্রিয় করা হয়েছে (TZEN=1 (ব্যবহারকারীর বিকল্প বাইট))।
- ব্রাউজ করুন \Projects\NUCLEO-WBA52CG\Exampলেস
- \GPIO, তারপর \GPIO_IOToggle_TrustZone ফোল্ডার খুলুন।
- আপনার পছন্দের টুলচেইন দিয়ে প্রকল্পটি খুলুন। একটি দ্রুত ওভারview একজন প্রাক্তন কীভাবে খুলবেন, তৈরি করবেন এবং চালাবেনampসমর্থিত টুলচেইন সহ le নিচে দেওয়া হল।
- ক্রমানুসারে সমস্ত নিরাপদ এবং অরক্ষিত প্রকল্প পুনর্নির্মাণ করুন files এবং টার্গেট মেমরিতে সুরক্ষিত এবং অরক্ষিত ছবি লোড করুন।
- প্রাক্তন চালানample: নিয়মিতভাবে, সুরক্ষিত অ্যাপ্লিকেশনটি প্রতি সেকেন্ডে LD2 টগল করে এবং অরক্ষিত অ্যাপ্লিকেশনটি LD3 কে দ্বিগুণ দ্রুত টগল করে। আরো বিস্তারিত জানার জন্য, readme পড়ুন 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:
- \MDK-ARM টুলচেন খুলুন।
- মাল্টিপ্রজেক্ট ওয়ার্কস্পেস খুলুন file Project.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লে
- STM32CubeIDE:
- STM32CubeIDE টুলচেন খুলুন।
- মাল্টিপ্রজেক্ট ওয়ার্কস্পেস খুলুন file .প্রকল্প
- xxxxx_Secure প্রকল্পটি পুনর্নির্মাণ করুন।
- xxxxx_NonSecure প্রকল্পটি পুনর্নির্মাণ করুন।
- সুরক্ষিত প্রজেক্টের জন্য [STM32 Cortex-M C/C++ হিসাবে ডিবাগ] অ্যাপ্লিকেশন চালু করুন।
- [কনফিগারেশন সম্পাদনা করুন] উইন্ডোতে, [স্টার্টআপ] প্যানেলটি নির্বাচন করুন এবং অ-সুরক্ষিত প্রকল্পের চিত্র এবং প্রতীক যোগ করুন।
গুরুত্বপূর্ণ: নিরাপদ প্রকল্পের আগে অ-সুরক্ষিত প্রকল্প লোড করা আবশ্যক। - [ঠিক আছে] ক্লিক করুন।
- প্রাক্তন চালানampডিবাগ পরিপ্রেক্ষিতে le.
- ইওয়ার্ম:
একটি প্রথম TrustZone® অক্ষম করা প্রাক্তনample
- একটি TrustZone® নিষ্ক্রিয় লোড এবং চালানোর আগে exampলে, প্রাক্তন পড়া বাধ্যতামূলকample readme file কোনো নির্দিষ্ট কনফিগারেশনের জন্য। যদি কোন নির্দিষ্ট উল্লেখ না থাকে, নিশ্চিত করুন যে বোর্ড ডিভাইসে নিরাপত্তা নিষ্ক্রিয় আছে (TZEN=0 (ব্যবহারকারীর বিকল্প বাইট))। TZEN = 0 এ ঐচ্ছিক রিগ্রেশন করার জন্য প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন
- ব্রাউজ করুন \Projects\NUCLEO-WBA52CG\Exampলেস
- \GPIO, তারপর \GPIO_EXTI ফোল্ডার খুলুন।
- আপনার পছন্দের টুলচেইন দিয়ে প্রকল্পটি খুলুন। একটি দ্রুত ওভারview একজন প্রাক্তন কীভাবে খুলবেন, তৈরি করবেন এবং চালাবেনampসমর্থিত টুলচেইন সহ le নিচে দেওয়া হল।
- সব পুনর্নির্মাণ files এবং লক্ষ্য মেমরিতে আপনার ইমেজ লোড.
- প্রাক্তন চালানample: প্রতিবার [USER] পুশ-বোতাম টিপলে, LD1 LED টগল হয়৷ আরো বিস্তারিত জানার জন্য, readme পড়ুন file প্রাক্তন এরampলে
- একজন প্রাক্তন খুলতে, তৈরি করতে এবং চালাতেampসমর্থিত টুলচেইন সহ, নীচের পদক্ষেপগুলি অনুসরণ করুন:
- ইওয়ার্ম:
- প্রাক্তন অধীনেample ফোল্ডার, \EWARM সাবফোল্ডার খুলুন।
- Project.eww ওয়ার্কস্পেস চালু করুন (ওয়ার্কস্পেসের নাম একটি প্রাক্তন থেকে পরিবর্তিত হতে পারেampঅন্যের কাছে লে)।
- সব পুনর্নির্মাণ files: [প্রকল্প]>[সমস্ত পুনর্নির্মাণ]।
- প্রকল্পের ছবি লোড করুন: [প্রকল্প]>[ডিবাগ]।
- প্রোগ্রাম চালান: [ডিবাগ]>[গো (F5)]।
- MDK-ARM:
- প্রাক্তন অধীনেample ফোল্ডার, \MDK-ARM সাবফোল্ডার খুলুন।
- Project.uvproj ওয়ার্কস্পেস চালু করুন (ওয়ার্কস্পেসের নাম একটি প্রাক্তন থেকে পরিবর্তিত হতে পারেampঅন্যের কাছে লে)।
- সব পুনর্নির্মাণ files:[প্রকল্প]>[সমস্ত লক্ষ্য পুনর্নির্মাণ করুন files]।
- প্রকল্পের ছবি লোড করুন: [ডিবাগ]>[ডিবাগ সেশন শুরু/বন্ধ করুন]।
- প্রোগ্রাম চালান: [ডিবাগ]>[রান (F5)]।
- STM32CubeIDE:
- STM32CubeIDE টুলচেন খুলুন।
- ক্লিক [File]>[ওয়ার্কস্পেস স্যুইচ করুন]>[অন্যান্য] এবং STM32CubeIDE ওয়ার্কস্পেস ডিরেক্টরিতে ব্রাউজ করুন।
- ক্লিক [File]>[আমদানি] , [সাধারণ]>[কার্যস্থানে বিদ্যমান প্রকল্প] নির্বাচন করুন এবং তারপরে [পরবর্তী] ক্লিক করুন।
- STM32CubeIDE ওয়ার্কস্পেস ডিরেক্টরিতে ব্রাউজ করুন এবং প্রকল্পটি নির্বাচন করুন।
- সমস্ত প্রকল্প পুনর্নির্মাণ files: [প্রকল্প এক্সপ্লোরার] উইন্ডোতে প্রকল্পটি নির্বাচন করুন তারপর [প্রকল্প]>[বিল্ড প্রকল্প] মেনুতে ক্লিক করুন।
- প্রোগ্রাম চালান: [রান]>[ডিবাগ (F11)]
- ইওয়ার্ম:
একটি কাস্টম অ্যাপ্লিকেশন উন্নয়নশীল
দ্রষ্টব্য: ফ্ল্যাশ মেমরি থেকে 0 ওয়েট-স্টেট এক্সিকিউশন পেতে এবং সর্বোচ্চ পারফরম্যান্স এবং আরও ভালো পাওয়ার খরচে পৌঁছানোর জন্য সফ্টওয়্যারকে অবশ্যই ইনস্ট্রাকশন ক্যাশে (ICACHE) সক্ষম করতে হবে।
একটি অ্যাপ্লিকেশন বিকাশ বা আপডেট করতে STM32CubeMX ব্যবহার করা
- STM32CubeWBA MCU প্যাকেজে, প্রায় সমস্ত প্রকল্প প্রাক্তনamplesগুলি সিস্টেম, পেরিফেরাল এবং মিডলওয়্যার শুরু করার জন্য STM32CubeMX টুল দিয়ে তৈরি করা হয়।
- একটি বিদ্যমান প্রকল্পের সরাসরি ব্যবহার প্রাক্তনampSTM32CubeMX টুলের জন্য STM32CubeMX 6.10.0 বা উচ্চতর প্রয়োজন:
- STM32CubeMX ইনস্টল করার পরে, একটি প্রস্তাবিত প্রকল্প খুলুন এবং প্রয়োজনে আপডেট করুন। একটি বিদ্যমান প্রকল্প খোলার সবচেয়ে সহজ উপায় হল *.ioc-এ ডাবল ক্লিক করা file যাতে STM32CubeMX স্বয়ংক্রিয়ভাবে প্রজেক্ট এবং এর উৎস খুলে দেয় files.
- STM32CubeMX এই ধরনের প্রকল্পের প্রাথমিক সোর্স কোড তৈরি করে। প্রধান অ্যাপ্লিকেশন সোর্স কোড "USER CODE BEGIN" এবং "USER CODE END" মন্তব্যগুলির দ্বারা ধারণ করা হয়৷ আইপি নির্বাচন এবং সেটিং পরিবর্তন করা হলে, STM32CubeMX কোডের প্রারম্ভিক অংশ আপডেট করে কিন্তু মূল অ্যাপ্লিকেশন সোর্স কোড সংরক্ষণ করে।
- STM32CubeMX-এ একটি কাস্টম প্রকল্প তৈরির জন্য ধাপে ধাপে প্রক্রিয়া অনুসরণ করুন:
- STM32 মাইক্রোকন্ট্রোলার নির্বাচন করুন যা পেরিফেরালগুলির প্রয়োজনীয় সেটের সাথে মেলে।
- একটি পিনআউট-কনফ্লিক্ট সলভার, একটি ক্লক-ট্রি সেটিং হেল্পার, একটি পাওয়ার কনজাম্পশন ক্যালকুলেটর এবং এমসিইউ পেরিফেরাল কনফিগারেশন (যেমন GPIO বা USART) এবং মিডলওয়্যার স্ট্যাকগুলি (যেমন USB) সম্পাদনকারী ইউটিলিটি ব্যবহার করে সমস্ত প্রয়োজনীয় এমবেডেড সফ্টওয়্যার কনফিগার করুন।
- নির্বাচিত কনফিগারেশনের উপর ভিত্তি করে প্রাথমিক সি কোড তৈরি করুন। এই কোডটি বিভিন্ন উন্নয়ন পরিবেশের মধ্যে ব্যবহারের জন্য প্রস্তুত। ব্যবহারকারীর কোডটি পরবর্তী কোড জেনারেশনে রাখা হয়।
- STM32CubeMX সম্পর্কে আরও তথ্যের জন্য, STM32 কনফিগারেশন এবং ইনিশিয়ালাইজেশন C কোড জেনারেশন (UM32) এর জন্য ব্যবহারকারীর ম্যানুয়াল STM1718CubeMX দেখুন।
- উপলব্ধ প্রকল্পের একটি তালিকার জন্য প্রাক্তনampSTM32CubeWBA-এর জন্য, আবেদন নোট পড়ুন STM32Cube ফার্মওয়্যার প্রাক্তনampSTM32WBA সিরিজের জন্য les (AN5929)।
ড্রাইভার অ্যাপ্লিকেশন
HAL আবেদন
এই বিভাগটি STM32CubeWBA ব্যবহার করে একটি কাস্টম HAL অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপগুলি বর্ণনা করে:
- একটি প্রকল্প তৈরি করুন
- একটি নতুন প্রকল্প তৈরি করতে, \Projects\ এর অধীনে প্রতিটি বোর্ডের জন্য প্রদত্ত টেমপ্লেট প্রকল্প থেকে শুরু করুন \ টেমপ্লেট বা \ প্রকল্পের অধীনে উপলব্ধ যে কোনও প্রকল্প থেকে \পরীক্ষার আবেদন বা \প্রকল্প\ অ্যাপ্লিকেশন (যেখানে বোর্ডের নাম বোঝায়, যেমন STM32CubeWBA)।
- টেমপ্লেট প্রকল্প একটি খালি প্রধান লুপ ফাংশন প্রদান করে। যাইহোক, STM32CubeWBA প্রকল্প সেটিংস বোঝার জন্য এটি একটি ভাল সূচনা পয়েন্ট। টেমপ্লেটের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
- এতে এইচএএল সোর্স কোড, সিএমএসআইএস এবং বিএসপি ড্রাইভার রয়েছে, যা একটি প্রদত্ত বোর্ডে একটি কোড বিকাশের জন্য প্রয়োজনীয় উপাদানগুলির ন্যূনতম সেট।
- এটিতে সমস্ত ফার্মওয়্যার উপাদানগুলির জন্য অন্তর্ভুক্ত পাথ রয়েছে।
- এটি সমর্থিত STM32WBA সিরিজ ডিভাইসগুলিকে সংজ্ঞায়িত করে, CMSIS এবং HAL ড্রাইভারকে সঠিকভাবে কনফিগার করার অনুমতি দেয়।
- এটি ব্যবহার করার জন্য প্রস্তুত ব্যবহারকারী প্রদান করে fileনীচের দেখানো হিসাবে পূর্ব কনফিগার করা হয়েছে:
এইচএএল আর্ম® কোর সিসটিকের সাথে ডিফল্ট টাইম বেস দিয়ে শুরু হয়েছে। HAL_Delay() উদ্দেশ্যে SysTick ISR প্রয়োগ করা হয়েছে।
দ্রষ্টব্য: একটি বিদ্যমান প্রজেক্টকে অন্য স্থানে অনুলিপি করার সময়, নিশ্চিত করুন যে সমস্ত অন্তর্ভুক্ত পাথ আপডেট করা হয়েছে।
- ব্যবহারকারী প্রকল্পে প্রয়োজনীয় মিডলওয়্যার যোগ করুন (ঐচ্ছিক)
উৎস সনাক্ত করতে fileপ্রকল্পে যোগ করতে হবে file তালিকা, প্রতিটি মিডলওয়্যারের জন্য প্রদত্ত ডকুমেন্টেশন পড়ুন। \Projects\STM32xxx_yyy\Applications\ এর অধীনে আবেদনগুলি পড়ুন (কোথায় মিডলওয়্যার স্ট্যাক বোঝায়, যেমন ThreadX) কোন উৎস জানতে files এবং অন্তর্ভুক্ত পাথ যোগ করতে হবে। - ফার্মওয়্যারের উপাদানগুলি কনফিগার করুন
HAL এবং মিডলওয়্যার উপাদানগুলি হেডারে ঘোষিত ম্যাক্রো #define ব্যবহার করে বিল্ড-টাইম কনফিগারেশন বিকল্পগুলির একটি সেট অফার করে file. একটি টেমপ্লেট কনফিগারেশন file প্রতিটি উপাদানের মধ্যে প্রদান করা হয়, যা প্রকল্প ফোল্ডারে অনুলিপি করতে হবে (সাধারণত কনফিগারেশন file নাম দেওয়া হয়েছে xxx_conf_template.h, প্রজেক্ট ফোল্ডারে কপি করার সময় _template শব্দটি অপসারণ করতে হবে)। কনফিগারেশন file প্রতিটি কনফিগারেশন বিকল্পের প্রভাব বোঝার জন্য যথেষ্ট তথ্য প্রদান করে। প্রতিটি উপাদানের জন্য প্রদত্ত ডকুমেন্টেশনে আরও বিস্তারিত তথ্য পাওয়া যায়। - HAL লাইব্রেরি শুরু করুন
প্রধান প্রোগ্রামে যাওয়ার পর, HAL লাইব্রেরি আরম্ভ করার জন্য অ্যাপ্লিকেশন কোডটিকে অবশ্যই HAL_Init() API কল করতে হবে, যা নিম্নলিখিত কাজগুলি সম্পাদন করে:- ফ্ল্যাশ মেমরি প্রিফেচ এবং SysTick ইন্টারাপ্ট অগ্রাধিকারের কনফিগারেশন (st m32wbaxx_hal_conf.h এ সংজ্ঞায়িত ম্যাক্রোর মাধ্যমে)।
- stm32wbaxx_hal_conf.h-এ সংজ্ঞায়িত SysTick ইন্টারাপ্ট অগ্রাধিকার TICK_INT_PRIO-এ প্রতি মিলিসেকেন্ডে একটি বিঘ্ন তৈরি করতে SysTick-এর কনফিগারেশন।
- NVIC গ্রুপের অগ্রাধিকার 0-এ সেট করা।
- HAL_MspInit() কলব্যাক ফাংশনের কল stm32wbaxx_hal_msp.c ব্যবহারকারীতে সংজ্ঞায়িত করা হয়েছে file বিশ্বব্যাপী নিম্ন-স্তরের হার্ডওয়্যার প্রারম্ভিকতা সম্পাদন করতে।
- সিস্টেম ঘড়ি কনফিগার করুন
সিস্টেম ঘড়ি কনফিগারেশন নীচে বর্ণিত দুটি API কল করে সম্পন্ন করা হয়:- HAL_RCC_OscConfig(): এই API অভ্যন্তরীণ এবং বহিরাগত অসিলেটর কনফিগার করে। ব্যবহারকারী এক বা সমস্ত অসিলেটর কনফিগার করতে বেছে নেয়।
- HAL_RCC_ClockConfig(): এই API সিস্টেম ঘড়ির উৎস, ফ্ল্যাশ মেমরির লেটেন্সি এবং AHB এবং APB prescalers কনফিগার করে।
- পেরিফেরাল শুরু করুন
- প্রথমে পেরিফেরাল HAL_PPP_MspInit ফাংশন লিখুন। নিম্নলিখিত হিসাবে এগিয়ে যান:
- পেরিফেরাল ঘড়ি সক্রিয় করুন।
- পেরিফেরাল GPIO কনফিগার করুন।
- DMA চ্যানেল কনফিগার করুন এবং DMA বাধা সক্রিয় করুন (যদি প্রয়োজন হয়)।
- পেরিফেরাল ইন্টারাপ্ট সক্ষম করুন (যদি প্রয়োজন হয়)।
- প্রয়োজন হলে প্রয়োজনীয় ইন্টারাপ্ট হ্যান্ডলার (পেরিফেরাল এবং ডিএমএ) কল করতে stm32xxx_it.c সম্পাদনা করুন।
- প্রক্রিয়া সম্পূর্ণ কলব্যাক ফাংশন লিখুন, যদি একটি পেরিফেরাল বাধা বা DMA ব্যবহার করার পরিকল্পনা করা হয়।
- ব্যবহারকারী main.c মধ্যে file, পেরিফেরাল হ্যান্ডেল গঠন শুরু করুন তারপর পেরিফেরাল আরম্ভ করার জন্য HAL_PPP_Init() ফাংশনটি কল করুন।
- প্রথমে পেরিফেরাল HAL_PPP_MspInit ফাংশন লিখুন। নিম্নলিখিত হিসাবে এগিয়ে যান:
- একটি অ্যাপ্লিকেশন বিকাশ
- এই এসtagই, সিস্টেম প্রস্তুত এবং ব্যবহারকারী অ্যাপ্লিকেশন কোড বিকাশ শুরু করতে পারে।
- পেরিফেরাল কনফিগার করার জন্য HAL স্বজ্ঞাত এবং ব্যবহারের জন্য প্রস্তুত API প্রদান করে। এটি কোনো আবেদনের প্রয়োজনীয়তা মিটমাট করার জন্য পোলিং, ইন্টারাপ্ট এবং একটি DMA প্রোগ্রামিং মডেল সমর্থন করে। প্রতিটি পেরিফেরাল কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, সমৃদ্ধ প্রাক্তন পড়ুনample সেট STM32CubeWBA MCU প্যাকেজে প্রদত্ত।
সতর্কতা: ডিফল্ট HAL বাস্তবায়নে, SysTick টাইমার একটি টাইমবেস হিসাবে ব্যবহৃত হয়: এটি নিয়মিত সময়ের ব্যবধানে বাধা তৈরি করে। যদি পেরিফেরাল আইএসআর প্রক্রিয়া থেকে HAL_Delay() কল করা হয়, তাহলে নিশ্চিত করুন যে SysTick ইন্টারাপ্টের পেরিফেরাল ইন্টারাপ্টের চেয়ে বেশি অগ্রাধিকার (সংখ্যাগতভাবে কম) রয়েছে। অন্যথায়, কলার আইএসআর প্রক্রিয়া ব্লক করা হয়। টাইমবেস কনফিগারেশনগুলিকে প্রভাবিত করে এমন ফাংশনগুলিকে __দুর্বল হিসাবে ঘোষণা করা হয় যাতে ব্যবহারকারীর অন্যান্য বাস্তবায়নের ক্ষেত্রে ওভাররাইড সম্ভব হয় file (একটি সাধারণ-উদ্দেশ্য টাইমার ব্যবহার করে, যেমনample, বা অন্য সময় উৎস)। আরো বিস্তারিত জানার জন্য, HAL_TimeBase প্রাক্তন দেখুনampলে
এলএল আবেদন
এই বিভাগটি STM32CubeWBA ব্যবহার করে একটি কাস্টম LL অ্যাপ্লিকেশন তৈরি করতে প্রয়োজনীয় পদক্ষেপগুলি বর্ণনা করে৷
- একটি প্রকল্প তৈরি করুন
- একটি নতুন প্রকল্প তৈরি করতে, হয় \Projects\ এর অধীনে প্রতিটি বোর্ডের জন্য প্রদত্ত Templates_LL প্রকল্প থেকে শুরু করুন। \Templates_LL, অথবা \Projects\ এর অধীনে উপলব্ধ যেকোন প্রকল্প থেকে \ প্রাক্তনamples_LL ( বোর্ডের নাম বোঝায়, যেমন NUCLEO-WBA32CG)।
- টেমপ্লেট প্রকল্পটি একটি খালি প্রধান লুপ ফাংশন প্রদান করে, যা STM32CubeWBA-এর প্রকল্প সেটিংস বোঝার জন্য একটি ভাল সূচনা বিন্দু। টেমপ্লেট প্রধান বৈশিষ্ট্য নিম্নলিখিত:
- এটিতে LL এবং CMSIS ড্রাইভারের সোর্স কোড রয়েছে, যা একটি প্রদত্ত বোর্ডে কোড বিকাশের জন্য প্রয়োজনীয় উপাদানগুলির ন্যূনতম সেট।
- এটিতে সমস্ত প্রয়োজনীয় ফার্মওয়্যার উপাদানগুলির জন্য অন্তর্ভুক্ত পাথ রয়েছে৷
- এটি সমর্থিত STM32WBA সিরিজ ডিভাইস নির্বাচন করে এবং CMSIS এবং LL ড্রাইভারের সঠিক কনফিগারেশনের অনুমতি দেয়।
- এটি ব্যবহার করার জন্য প্রস্তুত ব্যবহারকারী প্রদান করে files যা নিম্নরূপ পূর্বে কনফিগার করা হয়েছে:
◦ main.h: LED এবং USER_BUTTON সংজ্ঞা বিমূর্তকরণ স্তর।
◦ main.c: সর্বাধিক ফ্রিকোয়েন্সির জন্য সিস্টেম ঘড়ি কনফিগারেশন।
- একটি বিদ্যমান প্রকল্প অন্য বোর্ডে পোর্ট করুন
অন্য টার্গেট বোর্ডে একটি বিদ্যমান প্রকল্পকে সমর্থন করতে, প্রতিটি বোর্ডের জন্য প্রদত্ত Templates_LL প্রকল্প থেকে শুরু করুন এবং \Projects\ এর অধীনে উপলব্ধ \Templates_LL.- একজন এলএল প্রাক্তন নির্বাচন করুনample: যে বোর্ডে LL প্রাক্তন তা খুঁজে বের করতেamples নিযুক্ত করা হয়, LL প্রাক্তন তালিকা পড়ুনamples STM32CubeProjectsList.html.
- LL প্রাক্তন পোর্টampLe:
- Templates_LL ফোল্ডারটি অনুলিপি/পেস্ট করুন - প্রাথমিক উত্সটি রাখতে - বা সরাসরি বিদ্যমান টেম্প লেটস_এলএল প্রকল্পটি আপডেট করুন।
- তারপর পোর্টিং মূলত টেমপ্লেট_এলএল প্রতিস্থাপন করে fileপ্রাক্তন দ্বারা samples_LL লক্ষ্যযুক্ত প্রকল্প।
- সমস্ত বোর্ড নির্দিষ্ট অংশ রাখুন. স্পষ্টতার কারণে, বোর্ড নির্দিষ্ট অংশ নির্দিষ্ট সঙ্গে পতাকাঙ্কিত করা হয় tags:
- সুতরাং, প্রধান পোর্টিং পদক্ষেপগুলি নিম্নরূপ:
- stm32wbaxx_it.h প্রতিস্থাপন করুন file
- stm32wbaxx_it.c প্রতিস্থাপন করুন file
- main.h প্রতিস্থাপন file এবং এটি আপডেট করুন: LL টেমপ্লেটের LED এবং ব্যবহারকারী বোতাম সংজ্ঞা বোর্ড নির্দিষ্ট কনফিগারেশনের অধীনে রাখুন tags.
- main.c প্রতিস্থাপন করুন file এবং এটি আপডেট করুন:
- SystemClock_Config() LL টেমপ্লেট ফাংশনের ক্লক কনফিগারেশনটি বোর্ড স্পেসিফিক কনফিগারেশনের অধীনে রাখুন tags.
- LED সংজ্ঞার উপর নির্ভর করে, প্রতিটি LDx সংঘটন প্রধান.h-এ উপলব্ধ অন্য LDy দিয়ে প্রতিস্থাপন করুন file.
- এই পরিবর্তনের সাথে, প্রাক্তনample এখন টার্গেটেড বোর্ডে চলে
নিরাপত্তা অ্যাপ্লিকেশন
এই প্যাকেজ নিরাপত্তা অ্যাপ্লিকেশনের সাথে বিতরণ করা হয়.
SBSFU অ্যাপ্লিকেশন
- SBSFU একটি রুট অফ ট্রাস্ট সমাধান প্রদান করে, যার মধ্যে সিকিউর বুট এবং সিকিউর ফার্মওয়্যার আপডেট কার্যকারিতা রয়েছে (MCUboot এর উপর ভিত্তি করে)।
- অ্যাপ্লিকেশনটি কার্যকর করার আগে সমাধানটি ব্যবহার করা হয়।
- সমাধান একটি প্রাক্তন প্রদান করেampএকটি সুরক্ষিত পরিষেবার (GPIO টগল), যা অরক্ষিত অ্যাপ্লিকেশন থেকে বিচ্ছিন্ন। রানটাইমে অ-সুরক্ষিত অ্যাপ্লিকেশন এখনও এই সমাধান ব্যবহার করতে পারে।
TFM অ্যাপ্লিকেশন
TFM সিকিউর বুট এবং সিকিউর ফার্মওয়্যার আপডেট কার্যকারিতা সহ একটি রুট অফ ট্রাস্ট সমাধান প্রদান করে
(MCUboot এর উপর ভিত্তি করে)। অ্যাপ্লিকেশনটি কার্যকর করার আগে সমাধানটি ব্যবহার করা হয়। সমাধানটি TFM সুরক্ষিত পরিষেবা প্রদান করে যেগুলি অ-সুরক্ষিত অ্যাপ্লিকেশন থেকে বিচ্ছিন্ন। রানটাইমে অ-সুরক্ষিত অ্যাপ্লিকেশন এখনও এই সমাধান ব্যবহার করতে পারে।
আরএফ অ্যাপ্লিকেশন
RF অ্যাপ্লিকেশনটি এই অ্যাপ্লিকেশন নোটে বর্ণনা করা হয়েছে: STM32WBA সিরিজ মাইক্রোকন্ট্রোলার (AN5928) সহ বেতার অ্যাপ্লিকেশন তৈরি করা।
STM32CubeWBA রিলিজ আপডেট পাওয়া যাচ্ছে
সর্বশেষ STM32CubeWBA MCU প্যাকেজ রিলিজ এবং প্যাচগুলি STM32WBA সিরিজ থেকে পাওয়া যায়। সেগুলি STM32CubeMX-এ চেক ফর আপডেট বোতাম থেকে পুনরুদ্ধার করা যেতে পারে। আরও বিশদ বিবরণের জন্য, STM3 কনফিগারেশন এবং ইনিশিয়ালাইজেশন C কোড জেনারেশন (UM32) এর জন্য ব্যবহারকারী ম্যানুয়াল STM32CubeMX এর বিভাগ 1718 দেখুন।
FAQ
- এলএল ড্রাইভারের পরিবর্তে আমার কখন HAL ব্যবহার করা উচিত?
- HAL ড্রাইভার উচ্চ-স্তরের এবং ফাংশন-ওরিয়েন্টেড এপিআই অফার করে, উচ্চ স্তরের বহনযোগ্যতা সহ। পণ্য বা পেরিফেরাল জটিলতা শেষ ব্যবহারকারীদের জন্য লুকানো হয়.
- এলএল ড্রাইভাররা কম পোর্টেবল অপ্টিমাইজেশান সহ নিম্ন স্তরের রেজিস্টার লেভেল এপিআই অফার করে। তাদের পণ্য বা আইপি স্পেসিফিকেশন সম্পর্কে গভীর জ্ঞান প্রয়োজন।
- আমি কি একসাথে HAL এবং LL ড্রাইভার ব্যবহার করতে পারি? আমি যদি পারি, তাহলে বাধা কি?
- HAL এবং LL ড্রাইভার উভয়ই ব্যবহার করা সম্ভব। IP প্রারম্ভিক পর্যায়ে HAL ব্যবহার করুন এবং তারপর LL ড্রাইভারের সাথে I/O অপারেশন পরিচালনা করুন।
- HAL এবং LL এর মধ্যে প্রধান পার্থক্য হল যে HAL ড্রাইভারদের অপারেশন পরিচালনার জন্য হ্যান্ডলগুলি তৈরি এবং ব্যবহার করতে হয় যখন LL ড্রাইভারগুলি সরাসরি পেরিফেরাল রেজিস্টারে কাজ করে। প্রাক্তনamples_MIX প্রাক্তনample কিভাবে HAL এবং LL মিশ্রিত করতে হয় তা ব্যাখ্যা করে।
- এলএল ইনিশিয়ালাইজেশন এপিআই কীভাবে সক্রিয় করা হয়?
- LL প্রারম্ভিক API এবং সংশ্লিষ্ট সংস্থানগুলির সংজ্ঞা (কাঠামো, আক্ষরিক এবং প্রোটোটাইপ) USE_FULL_LL_DRIVER সংকলন সুইচ দ্বারা শর্তযুক্ত।
- LL প্রারম্ভিক API ব্যবহার করতে সক্ষম হতে, টুলচেইন কম্পাইলার প্রিপ্রসেসরে এই সুইচটি যোগ করুন।
- কিভাবে STM32CubeMX এম্বেডেড সফ্টওয়্যারের উপর ভিত্তি করে কোড তৈরি করতে পারে?
STM32CubeMX-এ STM32 মাইক্রোকন্ট্রোলারের অন্তর্নির্মিত জ্ঞান রয়েছে, যার মধ্যে রয়েছে তাদের পেরিফেরিয়াল এবং সফ্টওয়্যার যা ব্যবহারকারীকে একটি গ্রাফিকাল উপস্থাপনা প্রদান করতে এবং *.h বা *.c তৈরি করতে দেয়। fileব্যবহারকারী কনফিগারেশনের উপর ভিত্তি করে।
গুরুত্বপূর্ণ নোটিশ - সাবধানে পড়ুন
- STMicroelectronics NV এবং এর অধীনস্থ সংস্থাগুলি ("ST") ST পণ্য এবং/অথবা এই নথিতে কোনো নোটিশ ছাড়াই পরিবর্তন, সংশোধন, পরিবর্ধন, পরিবর্তন এবং উন্নতি করার অধিকার সংরক্ষণ করে৷ অর্ডার দেওয়ার আগে ক্রেতাদের ST পণ্যের সাম্প্রতিক প্রাসঙ্গিক তথ্য প্রাপ্ত করা উচিত। ST পণ্যগুলি অর্ডার প্রাপ্তির সময় ST-এর শর্তাবলী অনুসারে বিক্রি করা হয়।
- ক্রেতারা ST পণ্যের পছন্দ, নির্বাচন এবং ব্যবহারের জন্য সম্পূর্ণরূপে দায়ী এবং ST আবেদন সহায়তা বা ক্রেতাদের পণ্যের নকশার জন্য কোনো দায়বদ্ধতা গ্রহণ করে না।
- এখানে ST দ্বারা কোনও বৌদ্ধিক সম্পত্তির অধিকারের কোনও লাইসেন্স, প্রকাশ বা উহ্য নেই।
- এখানে উল্লিখিত তথ্য থেকে ভিন্ন বিধান সহ ST পণ্যের পুনঃবিক্রয় এই জাতীয় পণ্যের জন্য ST দ্বারা প্রদত্ত যে কোনও ওয়ারেন্টি বাতিল করবে।
- ST এবং ST লোগো হল ST-এর ট্রেডমার্ক৷ ST ট্রেডমার্ক সম্পর্কে অতিরিক্ত তথ্যের জন্য, www.st.com/trademarks দেখুন। অন্যান্য সমস্ত পণ্য বা পরিষেবার নাম তাদের নিজ নিজ মালিকদের সম্পত্তি.
- এই নথির তথ্য এই নথির পূর্ববর্তী সংস্করণে পূর্বে সরবরাহ করা তথ্যের স্থলাভিষিক্ত এবং প্রতিস্থাপন করে।
- © 2023 STMicroelectronics – সর্বস্বত্ব সংরক্ষিত
দলিল/সম্পদ
![]() |
STMicroelectronics STM32WBA সিরিজ শুরু হচ্ছে [পিডিএফ] ব্যবহারকারী ম্যানুয়াল STM32WBA সিরিজ শুরু করা, শুরু করা, শুরু করা |