Seri STMicroelectronics STM32WBA Memulai
Informasi Produk
Spesifikasi:
- Nama Produk: Paket MCU STM32CubeWBA
- Pabrikan: STMikroelektronika
- Kesesuaian: Mikrokontroler seri STM32WBA
- Lisensi: Lisensi BSD sumber terbuka
Petunjuk Penggunaan Produk
Fitur Utama Paket MCU STM32CubeWBA:
Paket MCU STM32CubeWBA menyediakan semua komponen perangkat lunak tertanam yang diperlukan untuk mengembangkan aplikasi pada mikrokontroler seri STM32WBA. Ini sangat portabel dalam seri STM32 dan dilengkapi dengan API HAL dan LL, misamples, dan komponen middleware.
Arsitektur Lebihview:
Arsitektur Paket MCU STM32CubeWBA terdiri dari tiga level – Aplikasi, Perpustakaan dan komponen berbasis protokol, lapisan abstraksi perangkat keras, driver BSP, driver Inti, dan API lapisan rendah.
Tanya Jawab Umum
- Apa saja yang termasuk dalam Paket MCU STM32CubeWBA?
Paket ini mencakup API lapisan rendah (LL) dan lapisan abstraksi perangkat keras (HAL), misampfile, aplikasi, komponen middleware seperti FileX/LevelX, NetX Duo, perpustakaan mbed-crypto, dan banyak lagi. - Apakah Paket MCU STM32CubeWBA kompatibel dengan pembuat kode STM32CubeMX?
Ya, paket ini sepenuhnya kompatibel dengan pembuat kode STM32CubeMX untuk menghasilkan kode inisialisasi.
Perkenalan
- STM32Cube adalah inisiatif asli STMicroelectronics untuk meningkatkan produktivitas desainer secara signifikan dengan mengurangi upaya pengembangan, waktu, dan biaya. STM32Cube mencakup seluruh portofolio STM32.
STM32Cube termasuk:- Seperangkat alat pengembangan perangkat lunak yang mudah digunakan untuk mencakup pengembangan proyek dari konsepsi hingga realisasi, di antaranya adalah:
- STM32CubeMX, alat konfigurasi perangkat lunak grafis yang memungkinkan pembuatan kode inisialisasi C secara otomatis menggunakan wizard grafis
- STM32CubeIDE, alat pengembangan lengkap dengan konfigurasi periferal, pembuatan kode, kompilasi kode, dan fitur debug
- STM32CubeCLT, perangkat pengembangan baris perintah lengkap dengan kompilasi kode, pemrograman papan, dan fitur debug
- STM32CubeProgrammer (STM32CubeProg), alat pemrograman yang tersedia dalam versi grafis dan baris perintah
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), alat pemantauan canggih untuk menyempurnakan perilaku dan kinerja aplikasi STM32 secara real time
- Paket STM32Cube MCU dan MPU, platform perangkat lunak tertanam komprehensif yang khusus untuk setiap seri mikrokontroler dan mikroprosesor (seperti STM32CubeWBA untuk seri STM32WBA), yang meliputi:
- Lapisan abstraksi perangkat keras STM32Cube (HAL), memastikan portabilitas yang dimaksimalkan di seluruh portofolio STM32
- API lapisan rendah STM32Cube, memastikan kinerja dan jejak terbaik dengan kontrol pengguna tingkat tinggi atas perangkat keras
- Satu set komponen middleware yang konsisten seperti ThreadX, FileX / LevelX, NetX Duo, USBX, perpustakaan sentuh, mbed-crypto, TFM, MCUboot, OpenBL, dan STM32_WPAN (termasuk Bluetooth® Low Energy profiles dan layanan, Mesh, Zigbee®, OpenThread, Matter, dan lapisan MAC 802.15.4)
- Semua utilitas perangkat lunak yang disematkan dengan set lengkap perangkat tambahan dan aplikasi aplikatifampsedikit
- Paket Ekspansi STM32Cube, yang berisi komponen perangkat lunak tertanam yang melengkapi fungsionalitas Paket MCU dan MPU STM32Cube dengan:
- Ekstensi middleware dan lapisan aplikatif
- Exampfile yang berjalan pada beberapa papan pengembangan STMicroelectronics tertentu
- Seperangkat alat pengembangan perangkat lunak yang mudah digunakan untuk mencakup pengembangan proyek dari konsepsi hingga realisasi, di antaranya adalah:
- Panduan pengguna ini menjelaskan cara memulai Paket MCU STM32CubeWBA.
- Bagian 2 Fitur utama STM32CubeWBA menjelaskan fitur utama Paket MCU STM32CubeWBA.
- Bagian 3 Arsitektur STM32CubeWBA selesaiview menyediakan overview arsitektur STM32CubeWBA dan struktur Paket MCU.
Informasi umum
Paket MCU STM32CubeWBA berjalan pada mikrokontroler STM32 32-bit berdasarkan prosesor Arm® Cortex®-M33 dengan Arm® TrustZone® dan FPU.
Catatan: Arm dan TrustZone adalah merek dagang terdaftar dari Arm Limited (atau anak perusahaannya) di AS dan/atau di tempat lain.
Fitur utama STM32CubeWBA
- Paket MCU STM32CubeWBA berjalan pada mikrokontroler STM32 32-bit berdasarkan prosesor Arm® Cortex®-M33 dengan TrustZone® dan FPU.
- STM32CubeWBA mengumpulkan, dalam satu paket, semua komponen perangkat lunak tertanam generik yang diperlukan untuk mengembangkan aplikasi mikrokontroler seri STM32WBA. Sejalan dengan inisiatif STM32Cube, rangkaian komponen ini sangat portabel, tidak hanya pada mikrokontroler seri STM32WBA tetapi juga pada seri STM32 lainnya.
- STM32CubeWBA sepenuhnya kompatibel dengan generator kode STM32CubeMX, untuk menghasilkan kode inisialisasi. Paket ini mencakup API lapisan rendah (LL) dan lapisan abstraksi perangkat keras (HAL) yang mencakup perangkat keras mikrokontroler, bersama dengan serangkaian contoh yang luas.ampfile yang berjalan di papan STMicroelectronics. API HAL dan LL tersedia dalam lisensi BSD sumber terbuka untuk kenyamanan pengguna.
- Paket MCU STM32CubeWBA juga berisi komponen middleware komprehensif yang dibangun di sekitar middleware Microsoft® Azure® RTOS, dan tumpukan internal dan sumber terbuka lainnya, dengan contoh yang sesuaiampsedikit.
- Mereka hadir dengan persyaratan lisensi yang gratis dan mudah digunakan:
- Azure® RTOS yang terintegrasi dan berfitur lengkap: Azure® RTOS ThreadX
- Implementasi CMSIS-RTOS dengan Azure® RTOS ThreadX
- Tumpukan Host dan Perangkat USB hadir dengan banyak kelas: Azure® RTOS USBX
- Canggih file lapisan terjemahan sistem dan flash: FileX / TingkatX
- Tumpukan jaringan kelas industri: dioptimalkan untuk kinerja yang hadir dengan banyak protokol IoT: NetX Duo
- BukaBootloader
- Solusi integrasi Arm® Trusted Firmware-M (TF‑M).
- perpustakaan mbed-crypto
- Perpustakaan Jaringan ST
- Solusi perpustakaan penginderaan sentuh STMTouch
- Beberapa aplikasi dan demonstrasi yang mengimplementasikan semua komponen middleware ini juga disediakan dalam Paket MCU STM32CubeWBA.
- Tata letak komponen Paket STM32CubeWBA MCU diilustrasikan pada Gambar 1. Komponen Paket STM32CubeWBA MCU.
Arsitektur STM32CubeWBA berakhirview
Solusi paket STM32CubeWBA MCU dibangun di sekitar tiga level independen yang mudah berinteraksi seperti dijelaskan pada Gambar 2. Arsitektur paket STM32CubeWBA MCU.
Tingkat 0
Level ini dibagi menjadi tiga sublapisan:
- Paket dukungan papan (BSP).
- Lapisan abstraksi perangkat keras (HAL):
- driver periferal HAL
- Driver lapisan rendah
- Penggunaan periferal dasar, misampsedikit.
Paket dukungan papan (BSP)
Lapisan ini menawarkan sekumpulan API yang berhubungan dengan komponen perangkat keras di papan perangkat keras (seperti driver LCD, Audio,\microSD™, dan MEMS). Ini terdiri dari dua bagian:
- Pengemudi komponen:
Driver ini terkait dengan perangkat eksternal di papan, dan bukan dengan perangkat STM32. Driver komponen menyediakan API khusus untuk komponen eksternal driver BSP dan dapat portabel di board lain. - pengemudi BSP:
Driver BSP memungkinkan menghubungkan driver komponen ke papan tertentu, dan menyediakan serangkaian driver yang ramah pengguna
Lebah. Aturan penamaan API adalah BSP_FUNCT_Action().
Exampfile: BSP_LED_Init(), BSP_LED_Aktif()
BSP didasarkan pada arsitektur modular yang memungkinkan porting mudah pada perangkat keras apa pun hanya dengan menerapkan rutinitas tingkat rendah.
Lapisan abstraksi perangkat keras (HAL) dan lapisan rendah (LL)
STM32CubeWBA HAL dan LL saling melengkapi dan mencakup berbagai persyaratan aplikasi:
- Driver HAL menawarkan API yang sangat portabel dan berorientasi pada fungsi tingkat tinggi. Mereka menyembunyikan MCU dan kompleksitas periferal kepada pengguna akhir.
Driver HAL menyediakan API berorientasi fitur multi-instans generik, yang menyederhanakan implementasi aplikasi pengguna dengan menyediakan proses siap pakai. Misalnyaampmisalnya, untuk periferal komunikasi (I2S, UART, dan lainnya), ia menyediakan API yang memungkinkan inisialisasi dan konfigurasi periferal, mengelola transfer data berdasarkan proses polling, interupsi, atau DMA, dan menangani kesalahan komunikasi yang mungkin timbul selama komunikasi. API driver HAL dibagi menjadi dua kategori:- API Generik, yang menyediakan fungsi umum dan generik untuk semua mikrokontroler seri STM32.
- API Ekstensi, yang menyediakan fungsi spesifik dan disesuaikan untuk kelompok tertentu atau nomor komponen tertentu.
- API lapisan rendah menyediakan API tingkat rendah di tingkat register, dengan pengoptimalan yang lebih baik tetapi portabilitasnya lebih sedikit.
- Mereka memerlukan pengetahuan mendalam tentang MCU dan spesifikasi periferal.
- Driver LL dirancang untuk menawarkan lapisan berorientasi ahli yang cepat dan ringan yang lebih dekat dengan perangkat keras daripada HAL. Berbeda dengan HAL, LL API tidak disediakan untuk periferal yang akses optimalnya bukan merupakan fitur utama, atau untuk periferal yang memerlukan konfigurasi perangkat lunak berat atau tumpukan tingkat atas yang kompleks.
- Fitur driver LL:
- Seperangkat fungsi untuk menginisialisasi fitur utama periferal sesuai dengan parameter yang ditentukan dalam struktur data.
- Seperangkat fungsi untuk mengisi struktur data inisialisasi dengan nilai reset yang sesuai dengan setiap bidang.
- Berfungsi untuk deinisialisasi periferal (register periferal dikembalikan ke nilai defaultnya).
- Satu set fungsi inline untuk akses register langsung dan atom.
- Independensi penuh dari HAL dan kemampuan untuk digunakan dalam mode mandiri (tanpa driver HAL).
- Cakupan penuh fitur periferal yang didukung.
Penggunaan periferal dasar, misampsedikit
Lapisan ini membungkus exampfile yang dibangun di atas periferal STM32 hanya menggunakan sumber daya HAL dan BSP.
Tingkat 1
Level ini dibagi menjadi dua sublapisan:
- Komponen perangkat tengah
- Exampfile berdasarkan komponen middleware
Komponen perangkat tengah
- Middleware adalah sekumpulan perpustakaan yang mencakup Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Materi, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot, dan mbed-crypto.
- Interaksi horizontal antar komponen lapisan ini dilakukan dengan memanggil API unggulan.
- Interaksi vertikal dengan driver lapisan bawah dilakukan melalui callback spesifik dan makro statis yang diimplementasikan dalam antarmuka panggilan sistem perpustakaan.
- Fitur utama dari setiap komponen middleware adalah sebagai berikut:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Sistem operasi real-time (RTOS), dirancang untuk sistem tertanam dengan dua mode fungsional.
- Mode umum: Fungsi umum RTOS seperti manajemen dan sinkronisasi thread, manajemen kumpulan memori, pengiriman pesan, dan penanganan peristiwa.
- Mode modul: Mode pengguna tingkat lanjut yang memungkinkan bongkar muat modul ThreadX yang telah ditautkan dengan cepat melalui manajer modul.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Sistem operasi real-time (RTOS), dirancang untuk sistem tertanam dengan dua mode fungsional.
- Bluetooth® Low Energy (BLE): Menerapkan protokol Bluetooth® Low Energy untuk lapisan Link dan Stack.
- MCUboot (perangkat lunak sumber terbuka)
- Protokol Zigbee® untuk tumpukan dan cluster terkait.
- Tumpukan protokol Thread® dan lapisan tautan.
- Firmware tepercaya Arm®-M, TF‑M (perangkat lunak sumber terbuka): Implementasi referensi arsitektur keamanan platform (PSA) Arm® untuk TrustZone® dengan layanan aman terkait.
- mbed-crypto (perangkat lunak sumber terbuka): Middleware mbed-crypto menyediakan implementasi API kriptografi PSA.
- Pustaka penginderaan sentuh STM32: Solusi penginderaan sentuh kapasitif STMTouch yang kuat, mendukung sensor sentuh jarak, tombol sentuh, linier, dan putar. Hal ini didasarkan pada prinsip akuisisi transfer muatan permukaan yang telah terbukti.
- Microsoft® Azure® RTOS
Exampfile berdasarkan komponen middleware
Setiap komponen middleware dilengkapi dengan satu atau lebih examples (juga disebut aplikasi) yang menunjukkan cara menggunakannya. Integrasi misample yang menggunakan beberapa komponen middleware juga disediakan.
Paket firmware STM32CubeWBA selesaiview
Perangkat dan perangkat keras seri STM32WBA yang didukung
- STM32Cube menawarkan lapisan abstraksi perangkat keras (HAL) yang sangat portabel yang dibangun berdasarkan arsitektur generik. Hal ini memungkinkan prinsip lapisan build-up, seperti menggunakan lapisan middleware untuk mengimplementasikan fungsinya tanpa mengetahui secara mendalam MCU apa yang digunakan. Hal ini meningkatkan penggunaan kembali kode perpustakaan dan memastikan portabilitas yang mudah ke perangkat lain.
- Selain itu, berkat arsitektur berlapisnya, STM32CubeWBA menawarkan dukungan penuh untuk semua seri STM32WBA.
- Pengguna hanya perlu mendefinisikan makro yang tepat di stm32wbaxx.h.
- Tabel 1 menunjukkan makro yang akan ditentukan tergantung pada perangkat seri STM32WBA yang digunakan. Makro ini juga harus didefinisikan dalam praprosesor kompiler.
Tabel 1. Makro untuk seri STM32WBAMakro ditentukan di stm32wbaxx.h Perangkat seri STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA menampilkan serangkaian exampfile dan aplikasi di semua tingkatan sehingga memudahkan untuk memahami dan menggunakan komponen driver atau middleware HAL apa pun. Mantan iniampfile dijalankan pada papan STMicroelectronics yang tercantum pada Tabel 2.
Tabel 2. Papan untuk seri STM32WBAPapan Perangkat yang didukung papan STM32WBA NUKLEO-WBA52CG STM32WBA52CGU6 NUKLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - Paket STM32CubeWBA MCU dapat berjalan pada perangkat keras apa pun yang kompatibel. Pengguna cukup memperbarui driver BSP untuk mem-porting ex yang disediakanampfile di papan, jika yang terakhir memiliki fitur perangkat keras yang sama (seperti LED, layar LCD, dan tombol).
Paket firmware selesaiview
- Solusi paket STM32CubeWBA disediakan dalam satu paket zip dengan struktur yang ditunjukkan pada Gambar 3. Struktur paket firmware STM32CubeWBA.
- Untuk setiap papan, satu set example dilengkapi dengan proyek yang telah dikonfigurasi sebelumnya untuk toolchain EWARM, MDK-ARM, dan STM32CubeIDE.
- Gambar 4. STM32CubeWBA eksampselesaiview menunjukkan struktur proyek untuk board NUCLEO‑WBA52CG, NUCLEO-WBA55CG, dan STM32WBA55G-DK1.
- Sang mantanampFile diklasifikasikan tergantung pada level STM32Cube yang diterapkan, dan diberi nama sebagai berikut:
- Tingkat 0 misamples disebut Examples, Mantanamples_LL, dan Examples_MIX. Mereka masing-masing menggunakan driver HAL, driver LL, dan campuran driver HAL dan LL tanpa komponen middleware apa pun.
- Tingkat 1 misample disebut Aplikasi. Mereka menyediakan kasus penggunaan khas dari setiap komponen middleware. Aplikasi firmware apa pun untuk board tertentu dapat dibuat dengan cepat berkat proyek template yang tersedia di direktori Templ ates dan Templates_LL.
Proyek yang mendukung TrustZone®
- TrustZone® mengaktifkan Contohampnama les mengandung awalan _TrustZone. Aturan ini juga diterapkan untuk Aplikasi (kecuali untuk TFM dan SBSFU, yang asli untuk TrustZone®).
- ExampFile dan Aplikasi disediakan dengan struktur multiproyek yang terdiri dari subproyek aman dan tidak aman seperti yang disajikan pada Gambar 5. Struktur proyek multiproyek aman dan tidak aman.
- Proyek yang mendukung TrustZone® dikembangkan sesuai dengan templat perangkat CMSIS-5, diperluas hingga menyertakan header partisi sistem file partisi_ .h, yang terutama bertanggung jawab atas pengaturan unit atribut aman (SAU), FPU, dan penugasan interupsi aman/tidak aman dalam status eksekusi aman.
- Pengaturan ini dilakukan dalam fungsi CMSIS SystemInit() aman, yang dipanggil saat startup sebelum memasuki fungsi main() aplikasi aman. Lihat dokumentasi pedoman perangkat lunak Arm® TrustZone®-M.
- Paket firmware paket STM32CubeWBA menyediakan partisi memori default di partisi _ .H filetersedia di bawah: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- Di partisi ini files, SAU dinonaktifkan secara default. Akibatnya, pemetaan memori IDAU digunakan untuk atribusi keamanan. Lihat gambar Partisi aman/tidak aman menggunakan teknologi TrustZone® dalam manual referensi RM0495.
- Jika pengguna mengaktifkan SAU, konfigurasi wilayah SAU default telah ditentukan sebelumnya di partisi filesebagai berikut:
- Wilayah SAU 0: 0x08080000 – 0x081FFFFF (separuh memori flash aman tidak aman (512 Kbytes))
- Wilayah SAU 1: 0x0BF88000 – 0x0BF97FFF (memori sistem tidak aman)
- Wilayah SAU 2: 0x0C07E000 – 0x0C07FFFF (dapat dipanggil aman dan tidak aman)
- Wilayah SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 tidak aman (64 Kbytes))
- Wilayah SAU 4: 0x40000000 – 0x4FFFFFFF (memori yang dipetakan periferal tidak aman)
- Untuk mencocokkan partisi default, perangkat seri STM32WBAxx harus memiliki set byte opsi pengguna berikut:
- TZEN = 1 (perangkat yang mendukung TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 dari 128 halaman memori flash internal ditetapkan sebagai aman) Catatan: Memori flash internal sepenuhnya aman secara default di TZEN = 1. Byte opsi pengguna SECWM1_PSTRT/ SECWM1_PEND harus diatur sesuai dengan aplikasi konfigurasi memori (wilayah SAU, jika SAU diaktifkan). Tautan proyek aplikasi yang aman/tidak aman files juga harus selaras.
- semua example memiliki struktur yang sama:
- Folder \Inc berisi semua header files.
- Folder Src yang berisi kode sumber.
- Folder \EWARM, \MDK-ARM, dan \STM32CubeIDE berisi proyek yang telah dikonfigurasi sebelumnya untuk setiap rantai alat.
- readme.md dan readme.html menjelaskan mantanample perilaku dan lingkungan yang dibutuhkan untuk membuatnya berhasil.
- ioc file yang memungkinkan pengguna untuk membuka sebagian besar firmware exampfile dalam STM32CubeMX.
Memulai dengan STM32CubeWBA
Menjalankan mantan HAL pertamaample
Bagian ini menjelaskan betapa sederhananya menjalankan ex pertamaampfile dalam STM32CubeWBA. Ini menggunakan ilustrasi pembuatan sakelar LED sederhana yang berjalan pada papan NUCLEO-WBA52CG:
- Unduh paket MCU STM32CubeWBA.
- Buka zipnya ke direktori pilihan Anda.
- Pastikan untuk tidak mengubah struktur paket yang ditunjukkan pada Gambar 1. Disarankan juga untuk menyalin paket di lokasi yang dekat dengan volume root Anda (artinya C:\ST atau G:\Tests), karena beberapa IDE mengalami masalah saat jalur panjangnya terlalu panjang.
Menjalankan TrustZone® pertama yang diaktifkan, misample
- Sebelum memuat dan menjalankan TrustZone® yang diaktifkan, misample, wajib membaca exampayo baca aku file untuk konfigurasi tertentu, yang memastikan bahwa keamanan diaktifkan seperti yang dijelaskan dalam Bagian 4.2.1 proyek yang mendukung TrustZone® (TZEN=1 (byte opsi pengguna)).
- Telusuri ke \Projects\NUCLEO-WBA52CG\Exampsedikit.
- Buka folder \GPIO, lalu folder \GPIO_IOToggle_TrustZone.
- Buka proyek dengan rantai alat pilihan Anda. Cepat berakhirview tentang cara membuka, membangun, dan menjalankan mantanampfile dengan rantai alat yang didukung diberikan di bawah ini.
- Bangun kembali secara berurutan semua proyek aman dan tidak aman files dan memuat gambar aman dan tidak aman ke dalam memori target.
- Jalankan mantanample: secara teratur, aplikasi yang aman mengubah LD2 setiap detik, dan aplikasi yang tidak aman mengubah LD3 dua kali lebih cepat. Untuk lebih jelasnya, lihat readme file dari mantanampsaya.
- Untuk membuka, membangun, dan menjalankan mantanampfile dengan rantai alat yang didukung, ikuti langkah-langkah di bawah ini:
- HANGAT:
- Di bawah mantanample foldernya, buka subfolder \EWARM.
- Luncurkan ruang kerja Project.eww
- Bangun kembali proyek aman xxxxx_S files: [Proyek]>[Bangun kembali semua].
- Tetapkan proyek tidak aman xxxxx_NS sebagai aplikasi Aktif (klik kanan pada proyek xxxxx_NS [Tetapkan sebagai Aktif])
- Bangun kembali proyek tidak aman xxxxx_NS files: [Proyek]>[Bangun kembali semua].
- Flash biner tidak aman dengan [Project]>[Download]>[Download active application] .
- Atur xxxxx_S sebagai aplikasi Aktif (klik kanan pada proyek xxxxx_S [Set as Active].
- Flash biner aman dengan [Unduh dan Debug] (Ctrl+D).
- Jalankan programnya: [Debug]>[Go(F5)]
- MDK-ARM:
- Buka rantai alat \MDK-ARM.
- Buka ruang kerja Multiproyek file Proyek.uvmpw.
- Pilih proyek xxxxx_s sebagai aplikasi Aktif ([Tetapkan sebagai Proyek Aktif]).
- Bangun proyek xxxxx_s.
- Pilih proyek xxxxx_ns sebagai proyek Aktif ([Tetapkan sebagai Proyek Aktif]).
- Bangun proyek xxxxx_ns.
- Muat biner tidak aman ([F8]). Ini mengunduh \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf ke memori flash)
- Pilih proyek Project_s sebagai proyek Aktif ([Tetapkan sebagai Proyek Aktif]).
- Muat biner aman ([F8]). Ini mengunduh \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf ke memori flash).
- Jalankan mantanampsaya.
- STM32CubeIDE:
- Buka rantai alat STM32CubeIDE.
- Buka ruang kerja Multiproyek file .proyek.
- Bangun kembali proyek xxxxx_Secure.
- Bangun kembali proyek xxxxx_NonSecure.
- Luncurkan aplikasi [Debug as STM32 Cortex-M C/C++] untuk proyek aman.
- Di jendela [Edit konfigurasi], pilih panel [Startup], dan tambahkan memuat gambar dan simbol proyek tidak aman.
Penting: Proyek tidak aman harus dimuat sebelum proyek aman. - Klik [Oke].
- Jalankan mantanample pada perspektif debug.
- HANGAT:
Menjalankan TrustZone® pertama yang dinonaktifkan, misalnyaample
- Sebelum memuat dan menjalankan TrustZone® yang dinonaktifkan, misample, wajib membaca exampayo baca aku file untuk konfigurasi tertentu. Jika tidak ada penyebutan khusus, pastikan keamanan perangkat board dinonaktifkan (TZEN=0 (byte opsi pengguna)). Lihat FAQ untuk melakukan regresi opsional ke TZEN = 0
- Telusuri ke \Projects\NUCLEO-WBA52CG\Exampsedikit.
- Buka folder \GPIO, lalu folder \GPIO_EXTI.
- Buka proyek dengan rantai alat pilihan Anda. Cepat berakhirview tentang cara membuka, membangun, dan menjalankan mantanampfile dengan rantai alat yang didukung diberikan di bawah ini.
- Bangun kembali semua files dan muat gambar Anda ke memori target.
- Jalankan mantanample: Setiap kali tombol tekan [USER] ditekan, LED LD1 akan mati. Untuk lebih jelasnya, lihat readme file dari mantanampsaya.
- Untuk membuka, membangun, dan menjalankan mantanampfile dengan rantai alat yang didukung, ikuti langkah-langkah di bawah ini:
- HANGAT:
- Di bawah mantanample foldernya, buka subfolder \EWARM.
- Luncurkan ruang kerja Project.eww (nama ruang kerja dapat berubah dari satu contohample ke yang lain).
- Bangun kembali semua files: [Proyek]>[Bangun kembali semua].
- Muat gambar proyek: [Proyek]>[Debug].
- Jalankan program: [Debug]>[Mulai (F5)].
- MDK-ARM:
- Di bawah mantanample folder tersebut, buka subfolder \MDK-ARM.
- Luncurkan ruang kerja Project.uvproj (nama ruang kerja dapat berubah dari satu contohample ke yang lain).
- Bangun kembali semua files:[Proyek]>[Bangun kembali semua target fileS].
- Muat gambar proyek: [Debug]>[Mulai/Hentikan Sesi Debug].
- Jalankan program: [Debug]>[Jalankan (F5)].
- STM32CubeIDE:
- Buka rantai alat STM32CubeIDE.
- Klik [File]>[Ganti Ruang Kerja]>[Lainnya] dan telusuri direktori ruang kerja STM32CubeIDE.
- Klik [File]>[Impor] , pilih [Umum]>[Proyek yang Ada ke Ruang Kerja], lalu klik [Berikutnya].
- Telusuri ke direktori ruang kerja STM32CubeIDE dan pilih proyek.
- Bangun kembali semua proyek files: Pilih proyek di jendela [Project Explorer] lalu klik menu [Project]>[Build project] .
- Jalankan programnya: [Jalankan]>[Debug (F11)]
- HANGAT:
Mengembangkan aplikasi khusus
Catatan: Perangkat lunak harus mengaktifkan cache instruksi (ICACHE) untuk mendapatkan eksekusi status tunggu 0 dari memori flash, dan mencapai kinerja maksimum dan konsumsi daya yang lebih baik.
Menggunakan STM32CubeMX untuk mengembangkan atau memperbarui aplikasi
- Dalam paket MCU STM32CubeWBA, hampir semua proyek exampFile dihasilkan dengan alat STM32CubeMX untuk menginisialisasi sistem, periferal, dan middleware.
- Penggunaan langsung dari proyek yang ada, misampfile dari alat STM32CubeMX memerlukan STM32CubeMX 6.10.0 atau lebih tinggi:
- Setelah instalasi STM32CubeMX, buka dan jika perlu perbarui proyek yang diusulkan. Cara termudah untuk membuka proyek yang sudah ada adalah dengan mengklik dua kali pada *.ioc file sehingga STM32CubeMX secara otomatis membuka proyek dan sumbernya files.
- STM32CubeMX menghasilkan kode sumber inisialisasi proyek tersebut. Kode sumber aplikasi utama terdapat pada komentar “USER CODE BEGIN” dan “USER CODE END”. Jika pemilihan dan pengaturan IP diubah, STM32CubeMX memperbarui bagian inisialisasi kode tetapi mempertahankan kode sumber aplikasi utama.
- Untuk mengembangkan proyek khusus di STM32CubeMX, ikuti proses langkah demi langkah:
- Pilih mikrokontroler STM32 yang cocok dengan rangkaian periferal yang diperlukan.
- Konfigurasikan semua perangkat lunak tertanam yang diperlukan menggunakan pemecah konflik pinout, pembantu pengaturan pohon jam, kalkulator konsumsi daya, dan utilitas yang melakukan konfigurasi periferal MCU (seperti GPIO atau USART) dan tumpukan middleware (seperti USB).
- Hasilkan kode inisialisasi C berdasarkan konfigurasi yang dipilih. Kode ini siap digunakan dalam beberapa lingkungan pengembangan. Kode pengguna disimpan pada pembuatan kode berikutnya.
- Untuk informasi lebih lanjut tentang STM32CubeMX, lihat panduan pengguna STM32CubeMX untuk konfigurasi STM32 dan inisialisasi pembuatan kode C (UM1718).
- Untuk daftar proyek yang tersedia, misamples untuk STM32CubeWBA, lihat catatan aplikasi firmware STM32Cube exampfile untuk seri STM32WBA (AN5929).
Aplikasi pengemudi
aplikasi HAL
Bagian ini menjelaskan langkah-langkah yang diperlukan untuk membuat aplikasi HAL kustom menggunakan STM32CubeWBA:
- Buat proyek
- Untuk membuat proyek baru, mulai dari proyek Templat yang disediakan untuk setiap papan di bawah \Proyek\ \Templates atau dari proyek apa pun yang tersedia di bawah \Projects\ \Contoh Ujian atau \Proyek\ \Aplikasi (di mana mengacu pada nama papan, seperti STM32CubeWBA).
- Proyek Templat menyediakan fungsi loop utama yang kosong. Namun, ini adalah titik awal yang baik untuk memahami pengaturan proyek STM32CubeWBA. Templat memiliki ciri-ciri sebagai berikut:
- Ini berisi kode sumber HAL, CMSIS, dan driver BSP, yang merupakan kumpulan komponen minimum yang diperlukan untuk mengembangkan kode pada papan tertentu.
- Ini berisi jalur yang disertakan untuk semua komponen firmware.
- Ini mendefinisikan perangkat seri STM32WBA yang didukung, memungkinkan driver CMSIS dan HAL dikonfigurasi dengan benar.
- Ini menyediakan pengguna siap pakai files telah dikonfigurasi sebelumnya seperti yang ditunjukkan di bawah ini:
HAL diinisialisasi dengan basis waktu default dengan inti Arm® SysTick. SysTick ISR diimplementasikan untuk tujuan HAL_Delay().
Catatan: Saat menyalin proyek yang ada ke lokasi lain, pastikan semua jalur yang disertakan telah diperbarui.
- Tambahkan middleware yang diperlukan ke proyek pengguna (opsional)
Untuk mengidentifikasi sumbernya files untuk ditambahkan ke proyek file list, lihat dokumentasi yang disediakan untuk setiap middleware. Lihat aplikasi di bawah \Projects\STM32xxx_yyy\Applications\ (Di mana merujuk ke tumpukan middleware, seperti ThreadX) untuk mengetahui sumber mana files dan sertakan jalur harus ditambahkan. - Konfigurasikan komponen firmware
Komponen HAL dan middleware menawarkan serangkaian opsi konfigurasi build-time menggunakan makro #define yang dideklarasikan dalam header file. Konfigurasi templat file disediakan dalam setiap komponen, yang harus disalin ke folder proyek (biasanya file konfigurasi file bernama xxx_conf_template.h, kata _template perlu dihapus saat menyalinnya ke folder proyek). Konfigurasi file memberikan informasi yang cukup untuk memahami dampak setiap opsi konfigurasi. Informasi lebih rinci tersedia dalam dokumentasi yang disediakan untuk setiap komponen. - Mulai perpustakaan HAL
Setelah melompat ke program utama, kode aplikasi harus memanggil HAL_Init() API untuk menginisialisasi perpustakaan HAL, yang menjalankan tugas berikut:- Konfigurasi prefetch memori flash dan prioritas interupsi SysTick (melalui makro yang ditentukan di st m32wbaxx_hal_conf.h).
- Konfigurasi SysTick untuk menghasilkan interupsi setiap milidetik pada prioritas interupsi SysTick TICK_INT_PRIO yang ditentukan di stm32wbaxx_hal_conf.h.
- Menetapkan prioritas grup NVIC ke 0.
- Panggilan fungsi panggilan balik HAL_MspInit() yang ditentukan di pengguna stm32wbaxx_hal_msp.c file untuk melakukan inisialisasi perangkat keras tingkat rendah global.
- Konfigurasikan jam sistem
Konfigurasi jam sistem dilakukan dengan memanggil dua API yang dijelaskan di bawah ini:- HAL_RCC_OscConfig(): API ini mengonfigurasi osilator internal dan eksternal. Pengguna memilih untuk mengkonfigurasi satu atau semua osilator.
- HAL_RCC_ClockConfig(): API ini mengonfigurasi sumber jam sistem, latensi memori flash, dan prescaler AHB dan APB.
- Inisialisasi periferal
- Pertama tulis fungsi HAL_PPP_MspInit periferal. Lanjutkan sebagai berikut:
- Aktifkan jam periferal.
- Konfigurasikan GPIO periferal.
- Konfigurasikan saluran DMA dan aktifkan interupsi DMA (jika diperlukan).
- Aktifkan interupsi periferal (jika diperlukan).
- Edit stm32xxx_it.c untuk memanggil penangan interupsi yang diperlukan (periferal dan DMA), jika diperlukan.
- Proses tulis fungsi panggilan balik lengkap, jika interupsi periferal atau DMA direncanakan akan digunakan.
- Di pengguna main.c file, inisialisasi struktur pegangan periferal lalu panggil fungsi HAL_PPP_Init() untuk menginisialisasi periferal.
- Pertama tulis fungsi HAL_PPP_MspInit periferal. Lanjutkan sebagai berikut:
- Kembangkan aplikasi
- Pada saat initage, sistem sudah siap dan pengembangan kode aplikasi pengguna dapat dimulai.
- HAL menyediakan API yang intuitif dan siap digunakan untuk mengonfigurasi periferal. Ini mendukung polling, interupsi, dan model pemrograman DMA, untuk mengakomodasi segala kebutuhan aplikasi. Untuk rincian lebih lanjut tentang cara menggunakan setiap periferal, rujuk ke rich example set disediakan dalam paket STM32CubeWBA MCU.
Peringatan: Dalam implementasi HAL default, pengatur waktu SysTick digunakan sebagai basis waktu: ia menghasilkan interupsi pada interval waktu yang teratur. Jika HAL_Delay() dipanggil dari proses ISR periferal, pastikan interupsi SysTick memiliki prioritas lebih tinggi (secara numerik lebih rendah) daripada interupsi periferal. Jika tidak, proses ISR pemanggil diblokir. Fungsi yang mempengaruhi konfigurasi timebase dideklarasikan sebagai __weak untuk memungkinkan override jika terjadi implementasi lain pada pengguna file (menggunakan pengatur waktu untuk keperluan umum, misalnyaample, atau sumber waktu lain). Untuk lebih jelasnya, lihat HAL_TimeBase exampsaya.
aplikasi LL
Bagian ini menjelaskan langkah-langkah yang diperlukan untuk membuat aplikasi LL kustom menggunakan STM32CubeWBA.
- Buat proyek
- Untuk membuat proyek baru, mulai dari proyek Templates_LL yang disediakan untuk setiap papan di bawah \Projects\ \Templates_LL, atau dari proyek apa pun yang tersedia di bawah \Projects\ \Mantanamples_LL ( mengacu pada nama papan, seperti NUCLEO-WBA32CG).
- Proyek templat menyediakan fungsi loop utama yang kosong, yang merupakan titik awal yang baik untuk memahami pengaturan proyek untuk STM32CubeWBA. Karakteristik utama template adalah sebagai berikut:
- Ini berisi kode sumber driver LL dan CMSIS, yang merupakan kumpulan komponen minimum yang diperlukan untuk mengembangkan kode pada papan tertentu.
- Ini berisi jalur yang disertakan untuk semua komponen firmware yang diperlukan.
- Ini memilih perangkat seri STM32WBA yang didukung dan memungkinkan konfigurasi driver CMSIS dan LL yang benar.
- Ini menyediakan pengguna siap pakai files yang telah dikonfigurasikan sebelumnya sebagai berikut:
◦ main.h: lapisan abstraksi definisi LED dan USER_BUTTON.
◦ main.c: Konfigurasi jam sistem untuk frekuensi maksimum.
- Port proyek yang ada ke papan lain
Untuk mendukung proyek yang ada di papan target lain, mulai dari proyek Templates_LL yang disediakan untuk setiap papan dan tersedia di bawah \Proyek\ \Templat_LL.- Pilih mantan LLample: Untuk menemukan papan tempat LL exampfile dikerahkan, lihat daftar LL examples STM32CubeProjectsList.html.
- Port LL eksampsaya:
- Copy/paste folder Templates_LL – untuk menyimpan sumber awal – atau langsung perbarui proyek Temp lates_LL yang ada.
- Kemudian porting pada dasarnya terdiri dari penggantian Templates_LL files oleh Mantanampproyek yang ditargetkan les_LL.
- Simpan semua bagian khusus papan. Untuk alasan kejelasan, bagian-bagian tertentu papan ditandai dengan spesifik tags:
- Jadi, langkah-langkah porting utama adalah sebagai berikut:
- Ganti stm32wbaxx_it.h file
- Ganti stm32wbaxx_it.c file
- Ganti main.h file dan perbarui: Simpan definisi LED dan tombol pengguna dari template LL di bawah KONFIGURASI KHUSUS PAPAN tags.
- Ganti main.c file dan perbarui:
- Simpan konfigurasi jam fungsi templat SystemClock_Config() LL di bawah KONFIGURASI KHUSUS PAPAN tags.
- Tergantung pada definisi LED, ganti setiap kemunculan LDx dengan LDy lain yang tersedia di main.h file.
- Dengan modifikasi tersebut, example sekarang berjalan di papan yang ditargetkan
Aplikasi keamanan
Paket ini dikirimkan dengan aplikasi keamanan.
Aplikasi SBSFU
- SBSFU menyediakan solusi Root of Trust, termasuk fungsi Secure Boot dan Secure Firmware Update (berdasarkan MCUboot).
- Solusinya digunakan sebelum menjalankan aplikasi.
- Solusinya memberikan contohampfile layanan aman (pengalih GPIO), yang diisolasi dari aplikasi tidak aman. Aplikasi yang tidak aman saat runtime masih dapat menggunakan solusi ini.
Aplikasi TFM
TFM menyediakan solusi Root of Trust termasuk fungsi Secure Boot dan Secure Firmware Update
(berdasarkan MCUboot). Solusinya digunakan sebelum menjalankan aplikasi. Solusinya menyediakan layanan aman TFM yang diisolasi dari aplikasi tidak aman. Aplikasi yang tidak aman saat runtime masih dapat menggunakan solusi ini.
Aplikasi RF
Aplikasi RF dijelaskan dalam catatan aplikasi ini: Membangun aplikasi nirkabel dengan mikrokontroler seri STM32WBA (AN5928).
Mendapatkan pembaruan rilis STM32CubeWBA
Rilis dan patch paket MCU STM32CubeWBA terbaru tersedia dari Seri STM32WBA. Mereka dapat diambil dari tombol CHECK FOR UPDATE di STM32CubeMX. Untuk lebih jelasnya, lihat Bagian 3 dari panduan pengguna STM32CubeMX untuk konfigurasi STM32 dan inisialisasi pembuatan kode C (UM1718).
Tanya Jawab Umum
- Kapan saya harus menggunakan driver HAL daripada driver LL?
- Driver HAL menawarkan API tingkat tinggi dan berorientasi fungsi, dengan tingkat portabilitas yang tinggi. Kompleksitas produk atau periferal disembunyikan bagi pengguna akhir.
- Driver LL menawarkan API tingkat register lapisan rendah, dengan pengoptimalan yang lebih baik tetapi kurang portabel. Mereka memerlukan pengetahuan mendalam tentang spesifikasi produk atau IP.
- Bisakah saya menggunakan driver HAL dan LL secara bersamaan? Jika bisa, apa saja kendalanya?
- Dimungkinkan untuk menggunakan driver HAL dan LL. Gunakan HAL untuk fase inisialisasi IP dan kemudian kelola operasi I/O dengan driver LL.
- Perbedaan utama antara HAL dan LL adalah driver HAL perlu membuat dan menggunakan pegangan untuk manajemen operasi sementara driver LL beroperasi langsung pada register periferal. Sang mantanamples_MIX misample mengilustrasikan cara mencampur HAL dan LL.
- Bagaimana cara mengaktifkan API inisialisasi LL?
- Definisi API inisialisasi LL dan sumber daya terkait (Struktur, literal, dan prototipe) dikondisikan oleh sakelar kompilasi USE_FULL_LL_DRIVER.
- Untuk dapat menggunakan API inisialisasi LL, tambahkan sakelar ini di praprosesor compiler rantai alat.
- Bagaimana STM32CubeMX menghasilkan kode berdasarkan perangkat lunak yang tertanam?
STM32CubeMX memiliki pengetahuan bawaan tentang mikrokontroler STM32, termasuk periferal dan perangkat lunaknya yang memungkinkan penyediaan representasi grafis kepada pengguna dan menghasilkan *.h atau *.c files berdasarkan konfigurasi pengguna.
PEMBERITAHUAN PENTING – BACA DENGAN SEKSAMA
- STMicroelectronics NV dan anak perusahaannya (“ST”) berhak melakukan perubahan, koreksi, penyempurnaan, modifikasi, dan perbaikan pada produk ST dan/atau dokumen ini kapan saja tanpa pemberitahuan. Pembeli harus memperoleh informasi relevan terkini tentang produk ST sebelum melakukan pemesanan. Produk ST dijual sesuai dengan syarat dan ketentuan penjualan ST yang berlaku pada saat konfirmasi pemesanan.
- Pembeli bertanggung jawab penuh atas pilihan, pemilihan, dan penggunaan produk ST dan ST tidak bertanggung jawab atas bantuan aplikasi atau desain produk pembeli.
- Tidak ada lisensi, tersurat maupun tersirat, terhadap hak kekayaan intelektual apa pun yang diberikan oleh ST di sini.
- Penjualan kembali produk ST dengan ketentuan yang berbeda dari informasi yang ditetapkan di sini akan membatalkan garansi apa pun yang diberikan oleh ST untuk produk tersebut.
- ST dan logo ST adalah merek dagang ST. Untuk informasi tambahan tentang merek dagang ST, lihat www.st.com/trademarks. Semua nama produk atau layanan lainnya adalah milik dari pemiliknya masing-masing.
- Informasi dalam dokumen ini menggantikan dan mengganti informasi yang sebelumnya diberikan dalam versi dokumen ini sebelumnya.
- © 2023 STMicroelectronics – Semua hak dilindungi undang-undang
Dokumen / Sumber Daya
![]() |
Seri STMicroelectronics STM32WBA Memulai [Bahasa Indonesia:] Panduan Pengguna Seri STM32WBA Memulai, Memulai, Memulai |