شروع سری STM32WBA STMicroelectronics
اطلاعات محصول
مشخصات:
- نام محصول: بسته STM32CubeWBA MCU
- سازنده: STMicroelectronics
- سازگاری: میکروکنترلرهای سری STM32WBA
- صدور مجوز: مجوز BSD منبع باز
دستورالعمل استفاده از محصول
ویژگی های اصلی بسته STM32CubeWBA MCU:
بسته STM32CubeWBA MCU تمام اجزای نرم افزاری تعبیه شده لازم را برای توسعه برنامه های کاربردی در میکروکنترلرهای سری STM32WBA فراهم می کند. این بسیار قابل حمل در سری STM32 است و دارای API های HAL و LL استamples و اجزای میان افزار.
معماری به پایان رسیدview:
معماری بسته MCU STM32CubeWBA از سه سطح تشکیل شده است - برنامه ها، کتابخانه و اجزای مبتنی بر پروتکل، لایه انتزاعی سخت افزار، درایورهای BSP، درایورهای هسته و APIهای لایه پایین.
سوالات متداول
- بسته STM32CubeWBA MCU شامل چه مواردی است؟
این بسته شامل APIهای لایه پایین (LL) و لایه انتزاعی سخت افزاری (HAL) استamples، برنامه ها، اجزای میان افزار مانند FileX/LevelX، NetX Duo، کتابخانههای mbed-crypto و موارد دیگر. - آیا بسته STM32CubeWBA MCU با تولید کننده کد STM32CubeMX سازگار است؟
بله، بسته کاملاً با مولد کد STM32CubeMX برای تولید کد اولیه سازگار است.
مقدمه
- STM32Cube یک ابتکار اصلی STMicroelectronics است که با کاهش تلاش، زمان و هزینه توسعه، بهره وری طراح را به طور قابل توجهی بهبود می بخشد. STM32Cube کل مجموعه STM32 را پوشش می دهد.
STM32Cube شامل:- مجموعه ای از ابزارهای توسعه نرم افزار کاربر پسند برای پوشش توسعه پروژه از زمان تصور تا تحقق، که از جمله آنها می توان به موارد زیر اشاره کرد:
- STM32CubeMX، یک ابزار پیکربندی نرم افزار گرافیکی است که امکان تولید خودکار کد اولیه C را با استفاده از جادوگران گرافیکی فراهم می کند.
- STM32CubeIDE، یک ابزار توسعه همهجانبه با پیکربندی محیطی، تولید کد، کامپایل کد و ویژگیهای اشکالزدایی
- STM32CubeCLT، مجموعه ابزار توسعه خط فرمان همهجانبه با کامپایل کد، برنامهنویسی برد و ویژگیهای اشکالزدایی
- STM32CubeProgrammer (STM32CubeProg)، یک ابزار برنامه نویسی موجود در نسخه های گرافیکی و خط فرمان
- STM32CubeMonitor (STM32CubeMonitor، STM32CubeMonPwr، STM32CubeMonRF، STM32CubeMonUCPD)، ابزار نظارتی قدرتمند برای تنظیم دقیق رفتار و عملکرد برنامه های STM32 در زمان واقعی
- بستههای MCU و MPU STM32Cube، پلتفرمهای نرمافزار جاسازی شده جامع مخصوص هر میکروکنترلر و سری ریزپردازنده (مانند STM32CubeWBA برای سری STM32WBA)، که شامل:
- لایه انتزاعی سخت افزار STM32Cube (HAL) که حداکثر قابلیت حمل را در سراسر مجموعه STM32 تضمین می کند.
- APIهای لایه پایین STM32Cube که بهترین عملکرد و ردپای را با درجه بالایی از کنترل کاربر بر سخت افزار تضمین می کند.
- مجموعه ای ثابت از اجزای میان افزار مانند ThreadX، FileX / LevelX، NetX Duo، USBX، کتابخانه لمسی، mbed-crypto، TFM، MCUboot، OpenBL، و STM32_WPAN (از جمله Bluetooth® Low Energy profiles و خدمات، Mesh، Zigbee®، OpenThread، Matter و لایه MAC 802.15.4)
- همه ابزارهای نرم افزاری تعبیه شده با مجموعه کامل ابزارهای جانبی و کاربردیamples
- بستههای توسعه STM32Cube، که شامل مؤلفههای نرمافزاری تعبیهشده است که عملکردهای بستههای MCU و MPU STM32Cube را با موارد زیر تکمیل میکند:
- پسوندهای میان افزار و لایه های کاربردی
- Exampدر برخی از بردهای توسعه STMicroelectronics خاص اجرا می شود
- مجموعه ای از ابزارهای توسعه نرم افزار کاربر پسند برای پوشش توسعه پروژه از زمان تصور تا تحقق، که از جمله آنها می توان به موارد زیر اشاره کرد:
- این کتابچه راهنمای کاربر نحوه شروع کار با بسته STM32CubeWBA MCU را شرح می دهد.
- بخش 2 ویژگی های اصلی STM32CubeWBA ویژگی های اصلی بسته MCU STM32CubeWBA را شرح می دهد.
- بخش 3 معماری STM32CubeWBA به پایان رسیدview یک over فراهم می کندview از معماری STM32CubeWBA و ساختار بسته MCU.
اطلاعات عمومی
بسته MCU STM32CubeWBA بر روی میکروکنترلرهای 32 بیتی STM32 مبتنی بر پردازنده Arm® Cortex®-M33 با Arm® TrustZone® و FPU اجرا می شود.
توجه: Arm و TrustZone علائم تجاری ثبت شده Arm Limited (یا شرکت های تابعه آن) در ایالات متحده و/یا جاهای دیگر هستند.
ویژگی های اصلی STM32CubeWBA
- بسته MCU STM32CubeWBA بر روی میکروکنترلرهای 32 بیتی STM32 مبتنی بر پردازنده Arm® Cortex®-M33 با TrustZone® و FPU اجرا می شود.
- STM32CubeWBA، در یک بسته واحد، تمام اجزای نرم افزار تعبیه شده عمومی مورد نیاز برای توسعه یک برنامه کاربردی برای میکروکنترلرهای سری STM32WBA را جمع آوری می کند. مطابق با ابتکار STM32Cube، این مجموعه از اجزاء نه تنها در میکروکنترلرهای سری STM32WBA بلکه برای سایر سری های STM32 بسیار قابل حمل است.
- STM32CubeWBA برای تولید کد اولیه کاملاً با مولد کد STM32CubeMX سازگار است. این بسته شامل API های لایه پایین (LL) و لایه انتزاعی سخت افزار (HAL) است که سخت افزار میکروکنترلر را به همراه مجموعه گسترده ای از exampمواردی که روی بردهای STMicroelectronics اجرا می شوند. API های HAL و LL در مجوز BSD منبع باز برای راحتی کاربر در دسترس هستند.
- بسته STM32CubeWBA MCU همچنین شامل یک مؤلفه میانافزار جامع است که حول میانافزار Microsoft® Azure® RTOS، و دیگر پشتههای داخلی و منبع باز، با نسخه قبلی مربوطه ساخته شده است.amples
- آنها با شرایط مجوز رایگان و کاربرپسند ارائه می شوند:
- Azure® RTOS یکپارچه و با امکانات کامل: Azure® RTOS ThreadX
- پیاده سازی CMSIS-RTOS با Azure® RTOS ThreadX
- پشتههای میزبان و دستگاه USB با کلاسهای زیادی عرضه میشوند: Azure® RTOS USBX
- پیشرفته file لایه ترجمه سیستم و فلش: FileX / LevelX
- پشته شبکهای درجه صنعتی: بهینهسازی شده برای عملکرد با بسیاری از پروتکلهای اینترنت اشیا: NetX Duo
- OpenBootloader
- راه حل ادغام Arm® Trusted Firmware-M (TF‑M).
- کتابخانه های mbed-crypto
- کتابخانه شبکه ST
- راه حل کتابخانه حسگر لمسی STMTtouch
- چندین برنامه کاربردی و نمایشی که همه این اجزای میانافزار را پیادهسازی میکنند نیز در بسته STM32CubeWBA MCU ارائه شدهاند.
- طرح مولفه STM32CubeWBA MCU Package در شکل 1 نشان داده شده است. اجزای بسته STM32CubeWBA MCU.
معماری STM32CubeWBA به پایان رسیدview
راه حل بسته STM32CubeWBA MCU حول سه سطح مستقل ساخته شده است که به راحتی همانطور که در شکل 2 توضیح داده شده است با هم تعامل دارند. معماری بسته STM32CubeWBA MCU.
سطح 0
این سطح به سه زیر لایه تقسیم می شود:
- بسته پشتیبانی هیئت مدیره (BSP).
- لایه انتزاعی سخت افزار (HAL):
- درایورهای جانبی HAL
- درایورهای لایه پایین
- استفاده اولیه از لوازم جانبیamples
بسته پشتیبانی هیئت مدیره (BSP)
این لایه مجموعه ای از APIها را نسبت به اجزای سخت افزاری موجود در بردهای سخت افزاری (مانند درایورهای LCD، Audio،\ microSD™ و MEMS) ارائه می دهد. از دو بخش تشکیل شده است:
- درایور کامپوننت:
این درایور مربوط به دستگاه خارجی روی برد است و نه به دستگاه STM32. درایور کامپوننت API های خاصی را برای اجزای خارجی درایور BSP ارائه می دهد و می تواند روی هر برد دیگری قابل حمل باشد. - درایور BSP:
درایور BSP اجازه می دهد تا درایورهای کامپوننت را به یک برد خاص پیوند دهید و مجموعه ای کاربرپسند را فراهم می کند
API ها قانون نامگذاری API BSP_FUNCT_Action () است.
Example: BSP_LED_Init()، BSP_LED_On()
BSP بر اساس یک معماری ماژولار است که امکان انتقال آسان روی هر سخت افزاری را تنها با اجرای روال های سطح پایین فراهم می کند.
لایه انتزاعی سخت افزاری (HAL) و لایه پایین (LL)
STM32CubeWBA HAL و LL مکمل یکدیگر هستند و طیف وسیعی از نیازهای برنامه را پوشش می دهند:
- درایورهای HAL APIهای بسیار قابل حمل عملکرد محور را ارائه می دهند. آنها MCU و پیچیدگی محیطی را برای کاربر نهایی پنهان می کنند.
درایورهای HAL APIهای ویژگی گرا چند نمونه ای عمومی را ارائه می دهند که اجرای برنامه کاربر را با ارائه فرآیندهای آماده برای استفاده ساده می کند. برای مثالampبرای تجهیزات جانبی ارتباطی (I2S، UART و دیگران)، APIهایی را فراهم می کند که امکان تنظیم اولیه و پیکربندی ابزار جانبی، مدیریت انتقال داده بر اساس نظرسنجی، وقفه یا فرآیند DMA و مدیریت خطاهای ارتباطی که ممکن است در طول ارتباط ایجاد شود را فراهم می کند. API های درایور HAL به دو دسته تقسیم می شوند:- APIهای عمومی، که عملکردهای مشترک و عمومی را برای همه میکروکنترلرهای سری STM32 ارائه می کنند.
- API های برنامه افزودنی، که عملکردهای خاص و سفارشی شده ای را برای یک خانواده خاص یا یک شماره قطعه خاص ارائه می کنند.
- API های لایه پایین، API های سطح پایین را در سطح ثبت، با بهینه سازی بهتر اما قابلیت حمل کمتر ارائه می دهند.
- آنها به دانش عمیق MCU و مشخصات جانبی نیاز دارند.
- درایورهای LL طوری طراحی شده اند که یک لایه متخصص گرا و سبک وزن را ارائه دهند که نسبت به HAL به سخت افزار نزدیک تر است. برخلاف HAL، API های LL برای وسایل جانبی که در آن دسترسی بهینه یک ویژگی کلیدی نیست، یا برای آنهایی که به پیکربندی نرم افزار سنگین یا پشته پیچیده سطح بالایی نیاز دارند، ارائه نشده است.
- ویژگی درایورهای LL:
- مجموعه ای از توابع برای مقداردهی اولیه ویژگی های اصلی محیطی با توجه به پارامترهای مشخص شده در ساختارهای داده.
- مجموعه ای از توابع برای پر کردن ساختارهای داده اولیه با مقادیر بازنشانی مربوط به هر فیلد.
- تابعی برای deinitialization محیطی (رجیسترهای محیطی به مقادیر پیش فرض خود بازیابی شدند).
- مجموعه ای از توابع درون خطی برای دسترسی مستقیم و ثبت اتمی.
- استقلال کامل از HAL و قابلیت استفاده در حالت مستقل (بدون درایورهای HAL).
- پوشش کامل ویژگی های جانبی پشتیبانی شده
استفاده اولیه از لوازم جانبیamples
این لایه لایه سابق را در بر می گیردampدستگاههای جانبی STM32 تنها با استفاده از منابع HAL و BSP ساخته شدهاند.
سطح 1
این سطح به دو زیر لایه تقسیم می شود:
- اجزای میان افزار
- Examples بر اساس اجزای میان افزار
اجزای میان افزار
- میانافزار مجموعهای از کتابخانهها است که Bluetooth® Low Energy (Linklayer، HCI، Stack)، Thread®، Zigbee®،
- Matter، OpenBootloader، Microsoft® Azure® RTOS، TF‑M، MCUboot و mbed-crypto.
- تعامل افقی بین اجزای این لایه با فراخوانی API های مشخص شده انجام می شود.
- تعامل عمودی با درایورهای لایه پایین از طریق تماس های خاص و ماکروهای ثابت پیاده سازی شده در رابط فراخوانی سیستم کتابخانه انجام می شود.
- ویژگی های اصلی هر جزء میان افزار به شرح زیر است:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: یک سیستم عامل بلادرنگ (RTOS) که برای سیستم های تعبیه شده با دو حالت کاربردی طراحی شده است.
- حالت مشترک: قابلیت های رایج RTOS مانند مدیریت رشته و همگام سازی، مدیریت مخزن حافظه، پیام رسانی و مدیریت رویداد.
- حالت ماژول: یک حالت کاربر پیشرفته که امکان بارگیری و تخلیه ماژول های ThreadX از پیش پیوند شده را در پرواز از طریق مدیر ماژول فراهم می کند.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: یک سیستم عامل بلادرنگ (RTOS) که برای سیستم های تعبیه شده با دو حالت کاربردی طراحی شده است.
- Bluetooth® Low Energy (BLE): پروتکل Bluetooth® Low Energy را برای لایههای Link و Stack پیادهسازی میکند.
- MCUboot (نرم افزار متن باز)
- پروتکل های Zigbee® برای پشته و خوشه های مرتبط.
- پشته پروتکل Thread® و لایه پیوند.
- Arm® trusted firmware-M، TF-M (نرمافزار منبع باز): اجرای مرجع معماری امنیتی پلتفرم Arm® (PSA) برای TrustZone® با خدمات ایمن مرتبط.
- mbed-crypto (نرم افزار منبع باز): میان افزار mbed-crypto یک اجرای API رمزنگاری PSA را ارائه می دهد.
- کتابخانه حسگر لمسی STM32: محلول حسگر لمسی خازنی مقاوم STMTtouch، پشتیبانی از حسگرهای مجاورت، کلید لمسی، لمسی خطی و چرخشی. این بر اساس یک اصل اثبات شده اکتساب انتقال بار سطحی است.
- Microsoft® Azure® RTOS
Examples بر اساس اجزای میان افزار
هر جزء میان افزاری با یک یا چند نسخه قبلی ارائه می شودamples (که برنامه ها نیز نامیده می شوند) نحوه استفاده از آن را نشان می دهد. ادغام سابق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 فهرست شده در جدول 2 اجرا می شود.
جدول 2. بردهای سری STM32WBAهیئت مدیره دستگاه های پشتیبانی شده از STM32WBA را برد NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - بسته STM32CubeWBA MCU می تواند بر روی هر سخت افزار سازگار اجرا شود. کاربر به سادگی درایورهای BSP را به روز می کند تا نمونه قبلی ارائه شده را پورت کندampدر صورتی که دومی دارای همان ویژگی های سخت افزاری (مانند LED، صفحه نمایش LCD و دکمه ها) باشد.
بسته نرم افزاری تمام شدview
- راه حل بسته STM32CubeWBA در یک بسته فشرده با ساختار نشان داده شده در شکل 3 ارائه شده است. ساختار بسته سیستم عامل STM32CubeWBA.
- برای هر تخته، مجموعه ای از سابقamples با پروژه های از پیش پیکربندی شده برای زنجیره های ابزار EWARM، MDK-ARM و STM32CubeIDE ارائه شده است.
- شکل 4. STM32CubeWBA سابقampکمترview ساختار پروژه را برای بردهای NUCLEO-WBA52CG، NUCLEO-WBA55CG و STM32WBA55G-DK1 نشان می دهد.
- سابقampبسته به سطح STM32Cube که برای آن اعمال می شود طبقه بندی می شوند و به صورت زیر نامگذاری می شوند:
- سطح 0 سابقamples را Ex می نامندampلس، مثالamples_LL و Examples_MIX. آنها به ترتیب از درایورهای HAL، درایورهای LL و ترکیبی از درایورهای HAL و LL بدون هیچ جزء میان افزاری استفاده می کنند.
- سطح 1 سابقamples برنامه ها نامیده می شوند. آنها موارد استفاده معمولی از هر جزء میان افزار را ارائه می دهند. به لطف پروژه های قالب موجود در فهرست های Templ ates و Templates_LL، می توان هر برنامه سفت افزاری برای یک برد معین را به سرعت ساخت.
پروژه های دارای قابلیت TrustZone®
- TrustZone® فعال شده استampنام های les حاوی پیشوند _TrustZone هستند. این قانون برای برنامه های کاربردی نیز اعمال می شود (به جز برای TFM و SBSFU که به طور بومی برای TrustZone® هستند).
- TrustZone®-enabled 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 emmplates
- در این پارتیشن files، SAU به طور پیش فرض غیرفعال است. در نتیجه، نگاشت حافظه IDAU برای اسناد امنیتی استفاده می شود. به شکل پارتیشن بندی امن/غیر ایمن با استفاده از فناوری TrustZone® در کتابچه راهنمای مرجع RM0495 مراجعه کنید.
- اگر کاربر SAU را فعال کند، یک پیکربندی پیشفرض مناطق SAU در پارتیشن از پیش تعریف شده است. files به شرح زیر است:
- ناحیه SAU 0: 0x08080000 – 0x081FFFFF (نیمه ایمن غیرایمن فلش مموری (512 کیلوبایت))
- منطقه SAU 1: 0x0BF88000 - 0x0BF97FFF (حافظه سیستم غیر ایمن)
- منطقه SAU 2: 0x0C07E000 - 0x0C07FFFF (امن، غیرایمن قابل تماس)
- منطقه SAU 3: 0x20010000 - 0x2001FFFF (SRAM2 ناامن (64 کیلوبایت))
- منطقه 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رفتار و محیط مورد نیاز برای انجام آن.
- ioc file که به کاربران این امکان را می دهد تا بیشتر سیستم عامل قبلی را باز کنندamples در STM32CubeMX.
شروع کار با STM32CubeWBA
اجرای اولین HAL سابقample
این بخش توضیح می دهد که اجرای اولین نسخه چقدر ساده استampدر STM32CubeWBA. به عنوان نمونه از تولید یک ضامن LED ساده که روی برد NUCLEO-WBA52CG اجرا می شود، استفاده می کند:
- بسته STM32CubeWBA MCU را دانلود کنید.
- آن را در دایرکتوری دلخواه خود از حالت فشرده خارج کنید.
- اطمینان حاصل کنید که ساختار بسته نشان داده شده در شکل 1 را تغییر ندهید. همچنین توصیه می شود بسته را در مکانی نزدیک به حجم ریشه خود کپی کنید (به معنی C:\ST یا G:\Tests)، زیرا برخی از IDE ها در هنگام مسیر با مشکل مواجه می شوند. طول بیش از حد طولانی است
اجرای اولین TrustZone® فعال سابقample
- قبل از بارگیری و اجرای TrustZone® فعال قبلیampله، خواندن قبلی الزامی استample readme file برای هر پیکربندی خاص، که تضمین میکند که امنیت همانطور که در بخش 4.2.1 پروژههای دارای قابلیت TrustZone® توضیح داده شده است، فعال است (TZEN=1 (بایت گزینه کاربر)).
- به \Projects\NUCLEO-WBA52CG\Ex برویدamples
- \GPIO و سپس \GPIO_IOToggle_TrustZone را باز کنید.
- پروژه را با زنجیره ابزار دلخواه خود باز کنید. یک پایان سریعview در مورد نحوه باز کردن، ساخت و اجرای یک سابقample با زنجیره ابزار پشتیبانی شده در زیر آورده شده است.
- تمام پروژه های امن و غیر ایمن را به ترتیب بازسازی کنید files و تصاویر ایمن و غیر ایمن را در حافظه هدف بارگذاری کنید.
- سابق را اجرا کنیدample: به طور منظم، برنامه امن LD2 را در هر ثانیه تغییر می دهد و برنامه غیرایمن LD3 را دو برابر سریعتر تغییر می دهد. برای جزئیات بیشتر به readme مراجعه کنید file از سابقampله
- برای باز کردن، ساختن و اجرای یک سابقampبا زنجیره ابزار پشتیبانی شده، مراحل زیر را دنبال کنید:
- EWARM:
- تحت سابقampپوشه le، زیرپوشه \EWARM را باز کنید.
- فضای کاری Project.eww را راه اندازی کنید
- پروژه امن xxxxx_S را بازسازی کنید files: [پروژه]> [بازسازی همه].
- پروژه غیر امن xxxxx_NS را به عنوان برنامه فعال تنظیم کنید (روی پروژه xxxxx_NS [تنظیم به عنوان فعال] راست کلیک کنید)
- پروژه غیر ایمن xxxxx_NS را بازسازی کنید files: [پروژه]> [بازسازی همه].
- باینری غیرایمن را با [پروژه]>[دانلود]>[دانلود برنامه فعال] فلش کنید.
- xxxxx_S را به عنوان برنامه فعال تنظیم کنید (روی پروژه xxxxx_S [Set as Active] کلیک راست کنید.
- باینری امن را با [Download and Debug] (Ctrl+D) فلش کنید.
- برنامه را اجرا کنید: [Debug]>[Go(F5)]
- MDK-ARM:
- زنجیره ابزار \MDK-ARM را باز کنید.
- فضای کاری Multiprojects را باز کنید file Project.uvmpw.
- پروژه xxxxx_s را به عنوان برنامه فعال انتخاب کنید ([Set as Active Project]).
- پروژه xxxxx_s را بسازید.
- پروژه xxxxx_ns را به عنوان پروژه فعال انتخاب کنید ([Set as Active Project]).
- پروژه xxxxx_ns را بسازید.
- باینری غیر ایمن ([F8]) را بارگیری کنید. این \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf را در حافظه فلش بارگیری می کند)
- پروژه Project_s را به عنوان پروژه فعال ([Set as Active Project]) انتخاب کنید.
- باینری امن ([F8]) را بارگیری کنید. این \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf را در حافظه فلش دانلود می کند.
- سابق را اجرا کنیدampله
- STM32CubeIDE:
- زنجیره ابزار STM32CubeIDE را باز کنید.
- فضای کاری Multiprojects را باز کنید file .پروژه
- پروژه xxxxx_Secure را بازسازی کنید.
- پروژه xxxxx_NonSecure را بازسازی کنید.
- برنامه [Debug as STM32 Cortex-M C/C++] را برای پروژه ایمن اجرا کنید.
- در پنجره [Edit configuration]، پانل [Startup] را انتخاب کنید و تصویر و نمادهای پروژه غیر ایمن را بارگذاری کنید.
مهم: پروژه غیر ایمن باید قبل از پروژه ایمن بارگیری شود. - روی [Ok] کلیک کنید.
- سابق را اجرا کنیدampدر دیدگاه اشکال زدایی.
- EWARM:
اجرای اولین TrustZone® غیرفعال شده قبلیample
- قبل از بارگیری و اجرای TrustZone® غیرفعال شده استampله، خواندن قبلی الزامی استample readme file برای هر پیکربندی خاص اگر ذکر خاصی وجود ندارد، مطمئن شوید که دستگاه برد دارای امنیت غیرفعال است (TZEN=0 (بایت گزینه کاربر)). به سوالات متداول برای انجام رگرسیون اختیاری به TZEN = 0 مراجعه کنید
- به \Projects\NUCLEO-WBA52CG\Ex برویدamples
- \GPIO و سپس پوشه \GPIO_EXTI را باز کنید.
- پروژه را با زنجیره ابزار دلخواه خود باز کنید. یک پایان سریعview در مورد نحوه باز کردن، ساخت و اجرای یک سابقample با زنجیره ابزار پشتیبانی شده در زیر آورده شده است.
- همه را بازسازی کنید files و تصویر خود را در حافظه هدف بارگذاری کنید.
- سابق را اجرا کنیدample: هر بار که دکمه فشاری [USER] فشار داده می شود، LED LD1 تغییر می کند. برای جزئیات بیشتر به readme مراجعه کنید file از سابقampله
- برای باز کردن، ساختن و اجرای یک سابقampبا زنجیره ابزار پشتیبانی شده، مراحل زیر را دنبال کنید:
- EWARM:
- تحت سابقampپوشه le، زیرپوشه \EWARM را باز کنید.
- فضای کاری Project.eww را راه اندازی کنید (نام فضای کاری ممکن است از یک قبلی تغییر کندampبه دیگری).
- همه را بازسازی کنید files: [پروژه]> [بازسازی همه].
- بارگذاری تصویر پروژه: [پروژه]>[اشکالزدایی].
- اجرای برنامه: [Debug]>[Go (F5)].
- MDK-ARM:
- تحت سابقampپوشه le، زیرپوشه \MDK-ARM را باز کنید.
- فضای کاری Project.uvproj را راه اندازی کنید (نام فضای کاری ممکن است از یک قبلی تغییر کندampبه دیگری).
- همه را بازسازی کنید files:[Project]>[Rebuild all target files].
- تصویر پروژه را بارگیری کنید: [اشکالزدایی]>[شروع/توقف جلسه اشکالزدایی].
- اجرای برنامه: [Debug]>[Run (F5)].
- STM32CubeIDE:
- زنجیره ابزار STM32CubeIDE را باز کنید.
- کلیک [File]>[Switch Workspace]>[Other] و به فهرست راهنمای فضای کاری STM32CubeIDE بروید.
- کلیک [File]>[Import]، [General]>[Existing Projects into Workspace] را انتخاب کنید و سپس روی [Next] کلیک کنید.
- به فهرست فضای کاری STM32CubeIDE بروید و پروژه را انتخاب کنید.
- بازسازی تمام پروژه files: پروژه را در پنجره [Project Explorer] انتخاب کنید سپس روی منوی [Project]>[Build project] کلیک کنید.
- برنامه را اجرا کنید: [Run]>[Debug (F11)]
- EWARM:
توسعه یک اپلیکیشن سفارشی
توجه: نرم افزار باید کش دستورالعمل (ICACHE) را فعال کند تا اجرای حالت انتظار 0 را از حافظه فلش دریافت کند و به حداکثر کارایی و مصرف انرژی بهتر برسد.
استفاده از STM32CubeMX برای توسعه یا به روز رسانی یک برنامه
- در بسته STM32CubeWBA MCU، تقریباً تمام پروژه های قبلیamples با ابزار STM32CubeMX برای مقداردهی اولیه سیستم، تجهیزات جانبی و میان افزار تولید می شوند.
- استفاده مستقیم از یک پروژه موجودampاز ابزار STM32CubeMX به 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، به راهنمای کاربر STM32CubeMX برای پیکربندی STM32 و تولید کد C اولیه (UM1718) مراجعه کنید.
- برای لیستی از پروژه های موجودampبرای STM32CubeWBA، به یادداشت برنامه STM32Cube سفتافزار قبلی مراجعه کنید.amples برای سری STM32WBA (AN5929).
برنامه های درایور
برنامه HAL
این بخش مراحل مورد نیاز برای ایجاد یک برنامه HAL سفارشی با استفاده از STM32CubeWBA را شرح می دهد:
- یک پروژه ایجاد کنید
- برای ایجاد یک پروژه جدید، از پروژه Template ارائه شده برای هر تابلو در زیر \Projects\ شروع کنید. \ الگوها یا از هر پروژه موجود در \Projects\ \ امتحانات یا \ پروژه ها \ برنامه های کاربردی (که در آن به نام برد مانند STM32CubeWBA اشاره دارد.
- پروژه Template یک تابع حلقه اصلی خالی را ارائه می دهد. با این حال، نقطه شروع خوبی برای درک تنظیمات پروژه STM32CubeWBA است. این قالب دارای ویژگی های زیر است:
- این شامل کد منبع HAL، درایورهای CMSIS و BSP است که حداقل مجموعه ای از اجزای مورد نیاز برای توسعه یک کد در یک برد مشخص است.
- این شامل مسیرهای گنجانده شده برای تمام اجزای سیستم عامل است.
- این دستگاه های پشتیبانی شده سری STM32WBA را تعریف می کند و به درایورهای CMSIS و HAL اجازه می دهد تا به درستی پیکربندی شوند.
- کاربر آماده برای استفاده را فراهم می کند files مطابق شکل زیر از قبل پیکربندی شده است:
HAL با پایه زمانی پیشفرض با Arm® core SysTick راهاندازی شد. SysTick ISR برای هدف HAL_Delay() پیاده سازی شد.
توجه: هنگام کپی کردن یک پروژه موجود در مکان دیگری، مطمئن شوید که تمام مسیرهای ارائه شده به روز شده باشند.
- میان افزار لازم را به پروژه کاربر اضافه کنید (اختیاری)
برای شناسایی منبع files به پروژه اضافه شود file لیست، به مستندات ارائه شده برای هر میان افزار مراجعه کنید. به برنامه های کاربردی زیر \Projects\STM32xxx_yyy\Applications\ مراجعه کنید. (جایی که به پشته میانافزار، مانند ThreadX) اشاره میکند تا بدانید کدام منبع files و شامل مسیرها باید اضافه شوند. - اجزای سیستم عامل را پیکربندی کنید
اجزای HAL و میانافزار مجموعهای از گزینههای پیکربندی زمان ساخت را با استفاده از ماکروهای تعریف شده #define در یک هدر ارائه میکنند. file. یک پیکربندی قالب file در داخل هر مؤلفه ارائه می شود که باید در پوشه پروژه (معمولاً پیکربندی) کپی شود file xxx_conf_template.h نام دارد، کلمه _template باید هنگام کپی کردن آن در پوشه پروژه حذف شود. پیکربندی file اطلاعات کافی برای درک تأثیر هر گزینه پیکربندی ارائه می دهد. اطلاعات دقیق تر در اسناد ارائه شده برای هر جزء موجود است. - کتابخانه HAL را راه اندازی کنید
پس از پرش به برنامه اصلی، کد برنامه باید HAL_Init() API را فراخوانی کند تا کتابخانه HAL را مقداردهی کند، که وظایف زیر را انجام می دهد:- پیکربندی پیش واکشی حافظه فلش و اولویت وقفه SysTick (از طریق ماکروهای تعریف شده در st m32wbaxx_hal_conf.h).
- پیکربندی SysTick برای ایجاد یک وقفه در هر میلی ثانیه در اولویت وقفه SysTick TICK_INT_PRIO که در stm32wbaxx_hal_conf.h تعریف شده است.
- تنظیم اولویت گروه NVIC روی 0.
- فراخوانی تابع فراخوانی HAL_MspInit() تعریف شده در کاربر stm32wbaxx_hal_msp.c file برای انجام اولیه سازی های سخت افزاری سطح پایین جهانی.
- ساعت سیستم را پیکربندی کنید
پیکربندی ساعت سیستم با فراخوانی دو API توضیح داده شده در زیر انجام می شود:- HAL_RCC_OscConfig(): این API اسیلاتورهای داخلی و خارجی را پیکربندی می کند. کاربر انتخاب می کند که یک یا همه نوسانگرها را پیکربندی کند.
- HAL_RCC_ClockConfig(): این API منبع ساعت سیستم، تأخیر حافظه فلش و پیش مقیاسکنندههای AHB و APB را پیکربندی میکند.
- دستگاه جانبی را راه اندازی کنید
- ابتدا تابع HAL_PPP_MspInit محیطی را بنویسید. به صورت زیر عمل کنید:
- ساعت جانبی را فعال کنید.
- GPIO های جانبی را پیکربندی کنید.
- کانال DMA را پیکربندی کنید و وقفه DMA را فعال کنید (در صورت نیاز).
- وقفه محیطی را فعال کنید (در صورت نیاز).
- stm32xxx_it.c را ویرایش کنید تا در صورت نیاز، کنترل کننده های وقفه مورد نیاز (محیطی و DMA) را فراخوانی کنید.
- اگر قرار است از یک وقفه محیطی یا DMA استفاده شود، توابع پاسخ به تماس کامل فرآیند را بنویسید.
- در کاربر main.c file، ساختار دسته محیطی را مقداردهی اولیه کنید سپس تابع HAL_PPP_Init() را برای مقداردهی اولیه دستگاه فراخوانی کنید.
- ابتدا تابع HAL_PPP_MspInit محیطی را بنویسید. به صورت زیر عمل کنید:
- یک برنامه کاربردی توسعه دهید
- در این سtage، سیستم آماده است و توسعه کد برنامه کاربر می تواند شروع شود.
- HAL APIهای بصری و آماده برای پیکربندی ابزار جانبی را فراهم می کند. از نظرسنجی، وقفه ها و یک مدل برنامه نویسی DMA پشتیبانی می کند تا هر گونه نیاز برنامه را برآورده کند. برای جزئیات بیشتر در مورد نحوه استفاده از هر دستگاه جانبی، به rich ex مراجعه کنیدampمجموعه ای که در بسته STM32CubeWBA MCU ارائه شده است.
احتیاط: در اجرای پیشفرض HAL، تایمر SysTick به عنوان یک پایگاه زمانی استفاده میشود: وقفههایی را در فواصل زمانی منظم ایجاد میکند. اگر HAL_Delay() از فرآیند ISR محیطی فراخوانی شود، مطمئن شوید که وقفه SysTick اولویت بالاتری (از لحاظ عددی کمتر) نسبت به وقفه محیطی دارد. در غیر این صورت، فرآیند ISR تماس گیرنده مسدود می شود. توابع مؤثر بر پیکربندی های پایگاه زمانی به عنوان __ضعیف اعلام می شوند تا در صورت پیاده سازی های دیگر در کاربر، لغو امکان پذیر شود. file (به عنوان مثال با استفاده از یک تایمر همه منظورهample، یا منبع زمانی دیگری). برای جزئیات بیشتر، به HAL_TimeBase سابق مراجعه کنیدampله
برنامه LL
این بخش مراحل مورد نیاز برای ایجاد یک برنامه LL سفارشی با استفاده از STM32CubeWBA را شرح می دهد.
- یک پروژه ایجاد کنید
- برای ایجاد یک پروژه جدید، یا از پروژه Templates_LL ارائه شده برای هر تابلو در زیر \Projects\ شروع کنید. \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.- یک LL سابق را انتخاب کنیدample: برای یافتن تابلویی که در آن LL examples مستقر شده اند، به لیست LL ex مراجعه کنیدamples STM32CubeProjectsList.html.
- پورت LL سابقampدر:
- پوشه Templates_LL را کپی/پیست کنید - برای حفظ منبع اولیه - یا مستقیماً پروژه Templates_LL موجود را به روز کنید.
- سپس انتقال اساساً شامل جایگزینی Templates_LL است files توسط Exampپروژه هدفمند les_LL.
- تمام قسمت های خاص تخته را نگه دارید. به دلایل شفافیت، قسمتهای خاص برد با علامتهای خاص مشخص میشوند tags:
- بنابراین، مراحل اصلی انتقال به شرح زیر است:
- stm32wbaxx_it.h را جایگزین کنید file
- stm32wbaxx_it.c را جایگزین کنید file
- main.h را جایگزین کنید file و آن را به روز کنید: LED و تعریف دکمه کاربر الگوی LL را در زیر BOARD SPECIFIC CONFIGURATION نگه دارید tags.
- main.c را جایگزین کنید file و آن را به روز کنید:
- پیکربندی ساعت تابع قالب SystemClock_Config() LL را در BOARD SPECIFIC CONFIGURATION نگه دارید tags.
- بسته به تعریف LED، هر رخداد LDx را با LDy دیگری که در main.h موجود است جایگزین کنید. file.
- با این تغییرات، سابقample در حال حاضر بر روی برد مورد نظر اجرا می شود
برنامه های امنیتی
این بسته با برنامه های امنیتی ارائه می شود.
برنامه های کاربردی SBSFU
- SBSFU یک راه حل Root of Trust شامل قابلیت های Secure Boot و Secure Firmware Update (بر اساس MCUboot) ارائه می دهد.
- راه حل قبل از اجرای برنامه استفاده می شود.
- راه حل ارائه می دهد سابقampیک سرویس ایمن (ضوابط GPIO)، که از برنامه غیرایمن جدا شده است. برنامه غیر ایمن در زمان اجرا همچنان می تواند از این راه حل استفاده کند.
برنامه های کاربردی TFM
TFM یک راه حل Root of Trust از جمله قابلیت های Secure Boot و Secure Firmware Update ارائه می دهد.
(بر اساس MCUboot). راه حل قبل از اجرای برنامه استفاده می شود. این راه حل خدمات امن TFM را ارائه می دهد که از برنامه های غیر ایمن جدا شده اند. برنامه غیر ایمن در زمان اجرا همچنان می تواند از این راه حل استفاده کند.
کاربردهای RF
کاربرد RF در این یادداشت کاربردی توضیح داده شده است: ساخت برنامه های بی سیم با میکروکنترلرهای سری STM32WBA (AN5928).
دریافت بهروزرسانیهای انتشار STM32CubeWBA
آخرین نسخهها و وصلههای بسته STM32CubeWBA MCU از سری STM32WBA در دسترس هستند. ممکن است از دکمه چک برای به روز رسانی در STM32CubeMX بازیابی شوند. برای جزئیات بیشتر، به بخش 3 دفترچه راهنمای کاربر STM32CubeMX برای پیکربندی STM32 و تولید کد C اولیه (UM1718) مراجعه کنید.
سوالات متداول
- چه زمانی باید از HAL به جای درایورهای LL استفاده کنم؟
- درایورهای HAL APIهای سطح بالا و عملکرد محور را با سطح بالایی از قابلیت حمل ارائه می دهند. پیچیدگی محصول یا محیطی برای کاربران نهایی پنهان است.
- درایورهای LL APIهای سطح ثبت لایه پایین را با بهینه سازی بهتر اما قابل حمل کمتر ارائه می دهند. آنها نیاز به دانش عمیق محصول یا مشخصات IP دارند.
- آیا می توانم از درایورهای HAL و LL با هم استفاده کنم؟ اگر می توانم، چه محدودیت هایی وجود دارد؟
- امکان استفاده از هر دو درایور HAL و LL وجود دارد. از HAL برای مرحله اولیه سازی IP استفاده کنید و سپس عملیات I/O را با درایورهای LL مدیریت کنید.
- تفاوت عمده بین HAL و LL این است که درایورهای HAL نیاز به ایجاد و استفاده از دستگیرهها برای مدیریت عملیات دارند در حالی که درایورهای LL مستقیماً روی ثباتهای جانبی کار میکنند. سابقamples_MIX سابقample نشان می دهد که چگونه HAL و LL را مخلوط کنیم.
- APIهای اولیه سازی LL چگونه فعال می شوند؟
- تعریف APIهای اولیه سازی LL و منابع مرتبط (ساختارها، حروف اللفظی و نمونه های اولیه) توسط سوئیچ کامپایل USE_FULL_LL_DRIVER مشروط شده است.
- برای اینکه بتوانید از APIهای اولیه سازی LL استفاده کنید، این سوئیچ را در پیش پردازنده کامپایلر زنجیره ابزار اضافه کنید.
- 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 – کلیه حقوق محفوظ است
اسناد / منابع
![]() |
شروع سری STM32WBA STMicroelectronics [pdf] دفترچه راهنمای کاربر سری STM32WBA شروع، شروع، شروع |