Siri STMicroelectronics STM32WBA Bermula
Maklumat Produk
Spesifikasi:
- Nama Produk: Pakej MCU STM32CubeWBA
- Pengeluar: STMikroelektronik
- Keserasian: Pengawal mikro siri STM32WBA
- Pelesenan: Lesen BSD sumber terbuka
Arahan Penggunaan Produk
Ciri-ciri Utama Pakej MCU STM32CubeWBA:
Pakej MCU STM32CubeWBA menyediakan semua komponen perisian terbenam yang diperlukan untuk membangunkan aplikasi pada mikropengawal siri STM32WBA. Ia sangat mudah alih dalam siri STM32 dan dilengkapi dengan API HAL dan LL, examples, dan komponen middleware.
Seni Bina Berakhirview:
Seni bina Pakej MCU STM32CubeWBA terdiri daripada tiga peringkat - Aplikasi, Perpustakaan dan komponen berasaskan protokol, lapisan abstraksi perkakasan, pemacu BSP, pemacu Teras dan API Lapisan Rendah.
Soalan Lazim
- Apakah yang termasuk dalam Pakej MCU STM32CubeWBA?
Pakej ini termasuk API lapisan rendah (LL) dan lapisan abstraksi perkakasan (HAL), cthamples, aplikasi, komponen middleware seperti FileX/LevelX, NetX Duo, perpustakaan mbed-crypto dan banyak lagi. - Adakah Pakej MCU STM32CubeWBA serasi dengan penjana kod STM32CubeMX?
Ya, pakej ini serasi sepenuhnya dengan penjana kod STM32CubeMX untuk menjana kod permulaan.
pengenalan
- STM32Cube ialah inisiatif asal STMicroelectronics untuk meningkatkan produktiviti pereka dengan ketara dengan mengurangkan usaha pembangunan, masa dan kos. STM32Cube merangkumi keseluruhan portfolio STM32.
STM32Cube termasuk:- Satu set alat pembangunan perisian yang mesra pengguna untuk merangkumi pembangunan projek dari konsep hingga realisasi, antaranya ialah:
- STM32CubeMX, alat konfigurasi perisian grafik yang membenarkan penjanaan automatik kod permulaan C menggunakan wizard grafik
- STM32CubeIDE, alat pembangunan semua-dalam-satu dengan konfigurasi persisian, penjanaan kod, penyusunan kod dan ciri nyahpepijat
- STM32CubeCLT, set alat pembangunan baris perintah semua-dalam-satu dengan penyusunan kod, pengaturcaraan papan dan ciri nyahpepijat
- STM32CubeProgrammer (STM32CubeProg), alat pengaturcaraan yang tersedia dalam versi grafik dan baris arahan
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), alat pemantauan yang berkuasa untuk memperhalusi tingkah laku dan prestasi aplikasi STM32 dalam masa nyata
- Pakej STM32Cube MCU dan MPU, platform perisian terbenam komprehensif khusus untuk setiap siri mikropengawal dan mikropemproses (seperti STM32CubeWBA untuk siri STM32WBA), yang termasuk:
- Lapisan abstraksi perkakasan STM32Cube (HAL), memastikan kemudahalihan maksimum merentas portfolio STM32
- API lapisan rendah STM32Cube, memastikan prestasi dan jejak terbaik dengan tahap kawalan pengguna yang tinggi ke atas perkakasan
- Satu set komponen middleware yang konsisten seperti ThreadX, FileX / LevelX, NetX Duo, USBX, pustaka sentuh, mbed-crypto, TFM, MCUboot, OpenBL dan STM32_WPAN (termasuk Bluetooth® Low Energy profiles dan perkhidmatan, Mesh, Zigbee®, OpenThread, Matter dan lapisan MAC 802.15.4)
- Semua utiliti perisian terbenam dengan set lengkap periferal dan aplikatif examples
- Pakej Pengembangan STM32Cube, yang mengandungi komponen perisian terbenam yang melengkapkan fungsi Pakej MCU dan MPU STM32Cube dengan:
- Sambungan perisian tengah dan lapisan aplikatif
- Examples berjalan pada beberapa papan pembangunan STMicroelectronics tertentu
- Satu set alat pembangunan perisian yang mesra pengguna untuk merangkumi pembangunan projek dari konsep hingga realisasi, antaranya ialah:
- Manual pengguna ini menerangkan cara untuk bermula dengan Pakej MCU STM32CubeWBA.
- Bahagian 2 Ciri utama STM32CubeWBA menerangkan ciri utama Pakej MCU STM32CubeWBA.
- Bahagian 3 STM32CubeWBA seni bina tamatview menyediakan lebihview daripada seni bina STM32CubeWBA dan struktur Pakej MCU.
Maklumat am
Pakej MCU STM32CubeWBA berjalan pada mikropengawal 32-bit STM32 berdasarkan pemproses Arm® Cortex®-M33 dengan Arm® TrustZone® dan FPU.
Nota: Arm dan TrustZone ialah tanda dagangan berdaftar Arm Limited (atau anak syarikatnya) di AS dan/atau di tempat lain.
Ciri utama STM32CubeWBA
- Pakej MCU STM32CubeWBA berjalan pada mikropengawal STM32 32-bit berdasarkan pemproses Arm® Cortex®-M33 dengan TrustZone® dan FPU.
- STM32CubeWBA mengumpulkan, dalam satu pakej, semua komponen perisian terbenam generik yang diperlukan untuk membangunkan aplikasi bagi mikropengawal siri STM32WBA. Selaras dengan inisiatif STM32Cube, set komponen ini sangat mudah alih, bukan sahaja dalam mikropengawal siri STM32WBA tetapi juga untuk siri STM32 yang lain.
- STM32CubeWBA serasi sepenuhnya dengan penjana kod STM32CubeMX, untuk menjana kod permulaan. Pakej ini termasuk API lapisan rendah (LL) dan lapisan abstraksi perkakasan (HAL) yang meliputi perkakasan mikropengawal, bersama-sama dengan set ekstensif bekasamples berjalan pada papan STMicroelectronics. API HAL dan LL tersedia dalam lesen BSD sumber terbuka untuk kemudahan pengguna.
- Pakej MCU STM32CubeWBA juga mengandungi komponen perisian tengah komprehensif yang dibina di sekitar perisian tengah Microsoft® Azure® RTOS, dan tindanan dalaman dan sumber terbuka lain, dengan bekas yang sepadanamples.
- Mereka datang dengan syarat lesen percuma dan mesra pengguna:
- Bersepadu dan berciri penuh Azure® RTOS: Azure® RTOS ThreadX
- Pelaksanaan CMSIS-RTOS dengan Azure® RTOS ThreadX
- Hos USB dan Tindanan Peranti datang dengan banyak kelas: Azure® RTOS USBX
- Maju file sistem dan lapisan terjemahan kilat: FileX / TahapX
- Timbunan rangkaian gred industri: dioptimumkan untuk prestasi yang datang dengan banyak protokol IoT: NetX Duo
- OpenBootloader
- Penyelesaian penyepaduan Arm® Trusted Firmware-M (TF‑M).
- perpustakaan mbed-crypto
- Perpustakaan ST Netwok
- Penyelesaian perpustakaan pengesan sentuhan STMTouch
- Beberapa aplikasi dan demonstrasi yang melaksanakan semua komponen middleware ini juga disediakan dalam Pakej MCU STM32CubeWBA.
- Susun atur komponen Pakej STM32CubeWBA MCU digambarkan dalam Rajah 1. Komponen Pakej STM32CubeWBA MCU .
Seni bina STM32CubeWBA tamatview
Penyelesaian pakej STM32CubeWBA MCU dibina di sekitar tiga tahap bebas yang mudah berinteraksi seperti yang diterangkan dalam Rajah 2. Seni bina pakej STM32CubeWBA MCU.
Tahap 0
Tahap ini dibahagikan kepada tiga sublapisan:
- Pakej sokongan lembaga (BSP).
- Lapisan abstraksi perkakasan (HAL):
- Pemacu persisian HAL
- Pemacu lapisan rendah
- Penggunaan persisian asas cthamples.
Pakej sokongan lembaga (BSP)
Lapisan ini menawarkan satu set API relatif kepada komponen perkakasan dalam papan perkakasan (seperti pemacu LCD, Audio,\ microSD™ dan MEMS). Ia terdiri daripada dua bahagian:
- Pemacu komponen:
Pemacu ini berkaitan dengan peranti luaran pada papan, dan bukan dengan peranti STM32. Pemacu komponen menyediakan API khusus kepada komponen luaran pemacu BSP dan boleh mudah alih pada mana-mana papan lain. - Pemandu BSP:
Pemacu BSP membenarkan memautkan pemacu komponen ke papan tertentu, dan menyediakan satu set yang mesra pengguna
API. Peraturan penamaan API ialah BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP adalah berdasarkan seni bina modular yang membolehkan pemindahan mudah pada mana-mana perkakasan dengan hanya melaksanakan rutin peringkat rendah.
Lapisan abstraksi perkakasan (HAL) dan lapisan rendah (LL)
STM32CubeWBA HAL dan LL adalah pelengkap dan meliputi pelbagai keperluan aplikasi:
- Pemacu HAL menawarkan API mudah alih berorientasikan fungsi tahap tinggi. Mereka menyembunyikan MCU dan kerumitan persisian kepada pengguna akhir.
Pemacu HAL menyediakan API berorientasikan ciri berbilang contoh generik, yang memudahkan pelaksanaan aplikasi pengguna dengan menyediakan proses sedia untuk digunakan. Untuk exampUntuk peranti komunikasi (I2S, UART, dan lain-lain), ia menyediakan API yang membolehkan memulakan dan mengkonfigurasi persisian, mengurus pemindahan data berdasarkan tinjauan pendapat, gangguan atau proses DMA dan mengendalikan ralat komunikasi yang mungkin timbul semasa komunikasi. API pemacu HAL dibahagikan kepada dua kategori:- API Generik, yang menyediakan fungsi biasa dan generik kepada semua mikropengawal siri STM32.
- API Sambungan, yang menyediakan fungsi khusus dan tersuai untuk keluarga tertentu atau nombor bahagian tertentu.
- API lapisan rendah menyediakan API peringkat rendah pada peringkat daftar, dengan pengoptimuman yang lebih baik tetapi kurang mudah alih.
- Mereka memerlukan pengetahuan mendalam tentang MCU dan spesifikasi persisian.
- Pemacu LL direka untuk menawarkan lapisan berorientasikan pakar ringan yang pantas yang lebih dekat dengan perkakasan daripada HAL. Bertentangan dengan HAL, API LL tidak disediakan untuk peranti yang akses yang dioptimumkan bukanlah ciri utama, atau untuk mereka yang memerlukan konfigurasi perisian berat atau timbunan peringkat atas yang kompleks.
- Ciri pemacu LL:
- Satu set fungsi untuk memulakan ciri utama persisian mengikut parameter yang dinyatakan dalam struktur data.
- Satu set fungsi untuk mengisi struktur data permulaan dengan nilai set semula yang sepadan dengan setiap medan.
- Fungsi untuk penyahinisian persisian (daftar persisian dipulihkan kepada nilai lalainya).
- Satu set fungsi sebaris untuk akses daftar langsung dan atom.
- Kebebasan sepenuhnya daripada HAL dan keupayaan untuk digunakan dalam mod kendiri (tanpa pemacu HAL).
- Liputan penuh ciri persisian yang disokong.
Penggunaan persisian asas cthamples
Lapisan ini merangkumi bekasampdibina di atas peranti STM32 hanya menggunakan sumber HAL dan BSP.
Tahap 1
Tahap ini dibahagikan kepada dua sublapisan:
- Komponen middleware
- Examples berdasarkan komponen middleware
Komponen middleware
- Middleware ialah satu set perpustakaan yang meliputi Bluetooth® Tenaga Rendah (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot dan mbed-crypto.
- Interaksi mendatar antara komponen lapisan ini dilakukan dengan memanggil API yang ditampilkan.
- Interaksi menegak dengan pemacu lapisan rendah dilakukan melalui panggilan balik khusus dan makro statik yang dilaksanakan dalam antara muka panggilan sistem perpustakaan.
- Ciri-ciri utama setiap komponen middleware adalah seperti berikut:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: Sistem pengendalian masa nyata (RTOS), direka untuk sistem terbenam dengan dua mod berfungsi.
- Mod biasa: Kefungsian RTOS biasa seperti pengurusan dan penyegerakan benang, pengurusan kumpulan memori, pemesejan dan pengendalian acara.
- Mod modul: Mod pengguna lanjutan yang membenarkan pemuatan dan pemunggahan modul ThreadX terpaut dengan segera melalui pengurus modul.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: Sistem pengendalian masa nyata (RTOS), direka untuk sistem terbenam dengan dua mod berfungsi.
- Bluetooth® Tenaga Rendah (BLE): Melaksanakan protokol Bluetooth® Tenaga Rendah untuk lapisan Pautan dan Tindanan.
- MCUboot (perisian sumber terbuka)
- Protokol Zigbee® untuk tindanan dan kelompok yang berkaitan.
- Timbunan protokol Thread® dan lapisan pautan.
- Firmware-M dipercayai Arm®, TF‑M (perisian sumber terbuka): Rujukan pelaksanaan seni bina keselamatan platform Arm® (PSA) untuk TrustZone® dengan perkhidmatan selamat yang berkaitan.
- mbed-crypto (perisian sumber terbuka): Perisian tengah mbed-crypto menyediakan pelaksanaan API kriptografi PSA.
- Pustaka penderiaan sentuh STM32: Penyelesaian penderiaan sentuhan kapasitif STMTouch yang teguh, menyokong kedekatan, kekunci sentuh, penderia sentuhan linear dan berputar. Ia berdasarkan prinsip pemerolehan pemindahan caj permukaan yang terbukti.
- Microsoft® Azure® RTOS
Examples berdasarkan komponen middleware
Setiap komponen middleware disertakan dengan satu atau lebih examples (juga dipanggil aplikasi) menunjukkan cara menggunakannya. Integrasi cthamples yang menggunakan beberapa komponen middleware juga disediakan.
Pakej perisian tegar STM32CubeWBA tamatview
Peranti dan perkakasan siri STM32WBA yang disokong
- STM32Cube menawarkan lapisan abstraksi perkakasan (HAL) yang sangat mudah alih yang dibina di sekeliling seni bina generik. Ia membenarkan prinsip lapisan binaan, seperti menggunakan lapisan middleware untuk melaksanakan fungsi mereka tanpa mengetahui, secara mendalam, jenis MCU yang digunakan. Ini meningkatkan kebolehgunaan semula kod perpustakaan dan memastikan mudah alih ke peranti lain.
- Di samping itu, terima kasih kepada seni bina berlapisnya, STM32CubeWBA menawarkan sokongan penuh untuk semua siri STM32WBA.
- Pengguna hanya perlu menentukan makro yang betul dalam stm32wbaxx.h.
- Jadual 1 menunjukkan makro untuk ditakrifkan bergantung pada peranti siri STM32WBA yang digunakan. Makro ini juga mesti ditakrifkan dalam prapemproses pengkompil.
Jadual 1. Makro untuk siri STM32WBAMakro ditakrifkan dalam stm32wbaxx.h Peranti siri STM32WBA stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA menampilkan set bekas yang kayaamples dan aplikasi di semua peringkat menjadikannya mudah untuk memahami dan menggunakan mana-mana pemacu HAL atau komponen middleware. Bekas iniamples dijalankan pada papan STMicroelectronics yang disenaraikan dalam Jadual 2.
Jadual 2. Papan untuk siri STM32WBAPapan Papan peranti yang disokong STM32WBA NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - Pakej STM32CubeWBA MCU boleh dijalankan pada mana-mana perkakasan yang serasi. Pengguna hanya mengemas kini pemacu BSP untuk mengalihkan ex yang disediakanamples pada papan, jika yang kedua mempunyai ciri perkakasan yang sama (seperti LED, paparan LCD dan butang).
Pakej perisian tegar tamatview
- Penyelesaian pakej STM32CubeWBA disediakan dalam satu pakej zip tunggal yang mempunyai struktur yang ditunjukkan dalam Rajah 3. Struktur pakej perisian tegar STM32CubeWBA.
- Untuk setiap papan, satu set bekasamples disediakan dengan projek prakonfigurasi untuk rantai alat EWARM, MDK-ARM dan STM32CubeIDE.
- Rajah 4. STM32CubeWBA exampkurang lebihview menunjukkan struktur projek untuk papan NUCLEO‑WBA52CG, NUCLEO-WBA55CG dan STM32WBA55G-DK1.
- bekas ituamples dikelaskan bergantung pada tahap STM32Cube yang mereka gunakan, dan ia dinamakan seperti berikut:
- Tahap 0 cthamples dipanggil Examples, Cthamples_LL, dan Cthamples_MIX. Mereka masing-masing menggunakan pemacu HAL, pemacu LL, dan gabungan pemacu HAL dan LL tanpa sebarang komponen perisian tengah.
- Tahap 1 cthamples dipanggil Aplikasi. Mereka menyediakan kes penggunaan biasa bagi setiap komponen middleware. Sebarang aplikasi perisian tegar untuk papan tertentu boleh dibina dengan cepat terima kasih kepada projek templat yang tersedia dalam direktori Templ ates dan Templates_LL.
Projek yang didayakan TrustZone®
- TrustZone® didayakan Examples names mengandungi awalan _TrustZone. Peraturan ini digunakan juga untuk Applicatio ns (kecuali untuk TFM dan SBSFU, yang asli untuk TrustZone®).
- TrustZone®-didayakan Examples dan Aplikasi disediakan dengan struktur berbilang projek yang terdiri daripada subprojek selamat dan tidak selamat seperti yang dibentangkan dalam Rajah 5. Struktur projek selamat dan tidak selamat berbilang projek.
- Projek yang didayakan TrustZone® dibangunkan mengikut templat peranti CMSIS-5, dilanjutkan untuk memasukkan pengepala pembahagian sistem file partition_ .h, yang bertanggungjawab terutamanya untuk persediaan unit atribut selamat (SAU), FPU dan tugasan gangguan selamat/tidak selamat dalam keadaan pelaksanaan selamat.
- Persediaan ini dilakukan dalam fungsi CMSIS SystemInit() selamat, yang dipanggil semasa permulaan sebelum memasuki fungsi main() aplikasi selamat. Rujuk kepada dokumentasi garis panduan perisian Arm® TrustZone®-M.
- Pakej perisian tegar pakej STM32CubeWBA menyediakan pembahagian memori lalai dalam partition _ .h files tersedia di bawah: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
- Dalam partition ini files, SAU dilumpuhkan secara lalai. Akibatnya, pemetaan memori IDAU digunakan untuk atribusi keselamatan. Rujuk gambar Pembahagian selamat/tidak selamat menggunakan teknologi TrustZone® dalam manual rujukan RM0495.
- Jika pengguna mendayakan SAU, konfigurasi kawasan SAU lalai dipratakrifkan dalam partition files seperti berikut:
- Rantau SAU 0: 0x08080000 – 0x081FFFFF (separuh ingatan denyar selamat tidak selamat (512 Kbait))
- Rantau SAU 1: 0x0BF88000 – 0x0BF97FFF (memori sistem tidak selamat)
- Rantau SAU 2: 0x0C07E000 – 0x0C07FFFF (selamat, tidak selamat boleh dipanggil)
- Rantau SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 tidak selamat (64 Kbait))
- Rantau SAU 4: 0x40000000 – 0x4FFFFFFF (memori dipetakan persisian tidak selamat)
- Untuk memadankan pembahagian lalai, peranti siri STM32WBAxx mesti mempunyai set bait pilihan pengguna berikut:
- TZEN = 1 (peranti yang didayakan TrustZone®)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 daripada 128 halaman memori denyar dalaman ditetapkan sebagai selamat) Nota: Memori denyar dalaman selamat sepenuhnya secara lalai dalam TZEN = 1. Bait pilihan pengguna SECWM1_PSTRT/ SECWM1_PEND mesti ditetapkan mengikut aplikasi konfigurasi memori (wilayah SAU, jika SAU didayakan). Penyambung projek aplikasi selamat/tidak selamat files juga mesti diselaraskan.
- Semua bekasamples mempunyai struktur yang sama:
- Folder \Inc mengandungi semua pengepala files.
- Folder Src yang mengandungi kod sumber.
- Folder \EWARM, \MDK-ARM dan \STM32CubeIDE yang mengandungi projek prakonfigurasi untuk setiap rantai alat.
- readme.md dan readme.html menerangkan bekasamptingkah laku dan persekitaran yang diperlukan untuk menjadikannya berfungsi.
- ioc file yang membolehkan pengguna membuka kebanyakan perisian tegar examples dalam STM32CubeMX.
Bermula dengan STM32CubeWBA
Menjalankan bekas HAL pertamaample
Bahagian ini menerangkan betapa mudahnya untuk menjalankan ex pertamaample dalam STM32CubeWBA. Ia menggunakan sebagai ilustrasi penjanaan togol LED ringkas yang berjalan pada papan NUCLEO-WBA52CG:
- Muat turun pakej MCU STM32CubeWBA.
- Nyahzip ke dalam direktori pilihan anda.
- Pastikan anda tidak mengubah suai struktur pakej yang ditunjukkan dalam Rajah 1. Ia juga disyorkan untuk menyalin pakej di lokasi yang berhampiran dengan volum akar anda (bermaksud C:\ST atau G:\Tests), kerana sesetengah IDE menghadapi masalah apabila laluan panjang terlalu panjang.
Menjalankan TrustZone® pertama yang didayakanample
- Sebelum memuatkan dan menjalankan TrustZone® yang didayakan example, wajib baca example readme file untuk sebarang konfigurasi khusus, yang memastikan keselamatan didayakan seperti yang diterangkan dalam Bahagian 4.2.1 projek didayakan TrustZone® (TZEN=1 (bait pilihan pengguna)).
- Semak imbas ke \Projects\NUCLEO-WBA52CG\Examples.
- Buka folder \GPIO, kemudian \GPIO_IOToggle_TrustZone.
- Buka projek dengan rantai alat pilihan anda. Cepat selesaiview tentang cara membuka, membina dan menjalankan bekasample dengan rantai alat yang disokong diberikan di bawah.
- Bina semula mengikut urutan semua projek selamat dan tidak selamat files dan muatkan imej selamat dan tidak selamat ke dalam memori sasaran.
- Jalankan bekasample: secara kerap, aplikasi selamat menogol LD2 setiap saat, dan aplikasi tidak selamat menogol LD3 dua kali lebih pantas. Untuk butiran lanjut, rujuk readme file daripada bekasample.
- Untuk membuka, membina dan menjalankan bekasampdengan rantai alat yang disokong, ikuti langkah di bawah:
- EWARM:
- Di bawah bekasample folder, buka \EWARM subfolder.
- Lancarkan ruang kerja Project.eww
- Bina semula projek selamat xxxxxx_S files: [Projek]>[Bina semula semua].
- Tetapkan projek tidak selamat xxxxx_NS sebagai aplikasi Aktif (klik kanan pada projek xxxxx_NS [Set as Active])
- Bina semula projek tidak selamat xxxxx_NS files: [Projek]>[Bina semula semua].
- Flash binari tidak selamat dengan [Projek]>[Muat turun]>[Muat turun aplikasi aktif] .
- Tetapkan xxxxx_S sebagai aplikasi Aktif (klik kanan pada projek xxxxx_S [Set as Active].
- Flash binari selamat dengan [Muat Turun dan Nyahpepijat] (Ctrl+D).
- Jalankan program: [Debug]>[Go(F5)]
- MDK-ARM:
- Buka rantai alat \MDK-ARM.
- Buka ruang kerja Multiprojects file Project.uvmpw.
- Pilih projek xxxxx_s sebagai aplikasi Aktif ([Tetapkan sebagai Projek Aktif]).
- Bina projek xxxxx_s.
- Pilih projek xxxxxx_ns sebagai projek Aktif ([Tetapkan sebagai Projek Aktif]).
- Bina projek xxxxxx_ns.
- Muatkan binari tidak selamat ([F8]). Ini memuat turun \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf ke memori kilat)
- Pilih projek Project_s sebagai projek Aktif ([Tetapkan sebagai Projek Aktif]).
- Muatkan binari selamat ([F8]). Ini memuat turun \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf ke memori kilat).
- Jalankan bekasample.
- STM32CubeIDE:
- Buka rantai alat STM32CubeIDE.
- Buka ruang kerja Multiprojects file .projek.
- Bina semula projek xxxxx_Secure.
- Bina semula projek xxxxx_NonSecure.
- Lancarkan aplikasi [Debug as STM32 Cortex-M C/C++] untuk projek selamat.
- Dalam tetingkap [Edit konfigurasi], pilih panel [Startup], dan tambah memuatkan imej dan simbol projek tidak selamat.
Penting: Projek tidak selamat mesti dimuatkan sebelum projek selamat. - Klik [Ok].
- Jalankan bekasamptentang perspektif nyahpepijat.
- EWARM:
Menjalankan TrustZone® yang pertama dilumpuhkan bekasample
- Sebelum memuatkan dan menjalankan TrustZone® yang dilumpuhkan example, wajib baca example readme file untuk sebarang konfigurasi tertentu. Jika tiada sebutan khusus, pastikan peranti papan telah dilumpuhkan keselamatan (TZEN=0 (bait pilihan pengguna)). Lihat Soalan Lazim untuk melakukan regresi pilihan kepada TZEN = 0
- Semak imbas ke \Projects\NUCLEO-WBA52CG\Examples.
- Buka folder \GPIO, kemudian \GPIO_EXTI.
- Buka projek dengan rantai alat pilihan anda. Cepat selesaiview tentang cara membuka, membina dan menjalankan bekasample dengan rantai alat yang disokong diberikan di bawah.
- Bina semula semua files dan muatkan imej anda ke dalam memori sasaran.
- Jalankan bekasample: Setiap kali butang tekan [USER] ditekan, LED LD1 bertukar-tukar. Untuk butiran lanjut, rujuk readme file daripada bekasample.
- Untuk membuka, membina dan menjalankan bekasampdengan rantai alat yang disokong, ikuti langkah di bawah:
- EWARM:
- Di bawah bekasample folder, buka \EWARM subfolder.
- Lancarkan ruang kerja Project.eww (nama ruang kerja mungkin berubah daripada satu example kepada yang lain).
- Bina semula semua files: [Projek]>[Bina semula semua].
- Muatkan imej projek: [Projek]>[Nyahpepijat].
- Jalankan program: [Debug]>[Go (F5)].
- MDK-ARM:
- Di bawah bekasample folder, buka subfolder \MDK-ARM.
- Lancarkan ruang kerja Project.uvproj (nama ruang kerja mungkin berubah daripada satu example kepada yang lain).
- Bina semula semua files:[Projek]>[Bina semula semua sasaran files].
- Muatkan imej projek: [Debug]>[Start/Stop Debug Session].
- Jalankan program: [Debug]>[Run (F5)].
- STM32CubeIDE:
- Buka rantai alat STM32CubeIDE.
- Klik [File]>[Tukar Ruang Kerja]>[Lain] dan semak imbas ke direktori ruang kerja STM32CubeIDE.
- Klik [File]>[Import] , pilih [Umum]>[Projek Sedia Ada ke Ruang Kerja], dan kemudian klik [Seterusnya].
- Semak imbas ke direktori ruang kerja STM32CubeIDE dan pilih projek.
- Bina semula semua projek files: Pilih projek dalam tetingkap [Project Explorer] kemudian klik menu [Project]>[Build project].
- Jalankan program: [Run]>[Debug (F11)]
- EWARM:
Membangunkan aplikasi tersuai
Nota: Perisian mesti mendayakan cache arahan (ICACHE) untuk mendapatkan pelaksanaan keadaan tunggu 0 daripada memori kilat, dan mencapai prestasi maksimum serta penggunaan kuasa yang lebih baik.
Menggunakan STM32CubeMX untuk membangunkan atau mengemas kini aplikasi
- Dalam pakej MCU STM32CubeWBA, hampir semua projek examples dijana dengan alat STM32CubeMX untuk memulakan sistem, persisian dan perisian tengah.
- Penggunaan langsung projek sedia ada exampdaripada alat STM32CubeMX memerlukan STM32CubeMX 6.10.0 atau lebih tinggi:
- Selepas pemasangan STM32CubeMX, buka dan jika perlu kemas kini projek yang dicadangkan. Cara paling mudah untuk membuka projek sedia ada adalah dengan mengklik dua kali pada *.ioc file supaya STM32CubeMX secara automatik membuka projek dan sumbernya files.
- STM32CubeMX menjana kod sumber permulaan bagi projek tersebut. Kod sumber aplikasi utama terkandung dalam ulasan "KOD PENGGUNA BERMULA" dan "KOD PENGGUNA TAMAT". Sekiranya pemilihan dan tetapan IP diubah suai, STM32CubeMX mengemas kini bahagian permulaan kod tetapi mengekalkan kod sumber aplikasi utama.
- Untuk membangunkan projek tersuai dalam STM32CubeMX, ikuti proses langkah demi langkah:
- Pilih mikropengawal STM32 yang sepadan dengan set persisian yang diperlukan.
- Konfigurasikan semua perisian terbenam yang diperlukan menggunakan penyelesai konflik pinout, pembantu tetapan pokok jam, kalkulator penggunaan kuasa dan utiliti yang melaksanakan konfigurasi persisian MCU (seperti GPIO atau USART) dan tindanan perisian tengah (seperti USB).
- Hasilkan kod permulaan C berdasarkan konfigurasi yang dipilih. Kod ini sedia untuk digunakan dalam beberapa persekitaran pembangunan. Kod pengguna disimpan pada penjanaan kod seterusnya.
- Untuk maklumat lanjut tentang STM32CubeMX, rujuk manual pengguna STM32CubeMX untuk konfigurasi STM32 dan penjanaan kod C permulaan (UM1718).
- Untuk senarai projek yang tersedia examples untuk STM32CubeWBA, rujuk nota aplikasi perisian tegar STM32Cube examples untuk siri STM32WBA (AN5929).
Aplikasi pemandu
permohonan HAL
Bahagian ini menerangkan langkah-langkah yang diperlukan untuk mencipta aplikasi HAL tersuai menggunakan STM32CubeWBA:
- Buat projek
- Untuk mencipta projek baharu, mulakan sama ada daripada projek Templat yang disediakan untuk setiap papan di bawah \Projek\ \Templat atau daripada mana-mana projek yang tersedia di bawah \Projek\ \Peperiksaan atau \Projek\ \Aplikasi (di mana merujuk kepada nama papan, seperti STM32CubeWBA).
- Projek Templat menyediakan fungsi gelung utama kosong. Walau bagaimanapun, ia adalah titik permulaan yang baik untuk memahami tetapan projek STM32CubeWBA. Templat mempunyai ciri-ciri berikut:
- Ia mengandungi kod sumber HAL, CMSIS dan pemacu BSP, yang merupakan set minimum komponen yang diperlukan untuk membangunkan kod pada papan tertentu.
- Ia mengandungi laluan yang disertakan untuk semua komponen perisian tegar.
- Ia mentakrifkan peranti siri STM32WBA yang disokong, membenarkan pemacu CMSIS dan HAL dikonfigurasikan dengan betul.
- Ia menyediakan pengguna sedia untuk digunakan files prakonfigurasi seperti yang ditunjukkan di bawah:
HAL dimulakan dengan asas masa lalai dengan teras Arm® SysTick. SysTick ISR dilaksanakan untuk tujuan HAL_Delay().
Nota: Apabila menyalin projek sedia ada ke lokasi lain, pastikan semua laluan yang disertakan dikemas kini.
- Tambahkan perisian tengah yang diperlukan pada projek pengguna (pilihan)
Untuk mengenal pasti sumber files untuk ditambahkan pada projek file senarai, rujuk dokumentasi yang disediakan untuk setiap perisian tengah. Rujuk aplikasi di bawah \Projects\STM32xxx_yyy\Applications\ (di mana merujuk kepada timbunan middleware, seperti ThreadX) untuk mengetahui sumber mana files dan termasuk laluan mesti ditambah. - Konfigurasikan komponen perisian tegar
Komponen HAL dan middleware menawarkan satu set pilihan konfigurasi masa binaan menggunakan makro #define yang diisytiharkan dalam pengepala file. Konfigurasi templat file disediakan dalam setiap komponen, yang perlu disalin ke folder projek (biasanya konfigurasi file dinamakan xxx_conf_template.h, perkataan _template perlu dialih keluar apabila menyalinnya ke folder projek). Konfigurasi file menyediakan maklumat yang mencukupi untuk memahami kesan setiap pilihan konfigurasi. Maklumat yang lebih terperinci tersedia dalam dokumentasi yang disediakan untuk setiap komponen. - Mulakan perpustakaan HAL
Selepas melompat ke program utama, kod aplikasi mesti memanggil HAL_Init() API untuk memulakan perpustakaan HAL, yang menjalankan tugas berikut:- Konfigurasi prefetch memori denyar dan keutamaan gangguan SysTick (melalui makro yang ditakrifkan dalam st m32wbaxx_hal_conf.h).
- Konfigurasi SysTick untuk menjana gangguan setiap milisaat pada keutamaan gangguan SysTick TICK_INT_PRIO yang ditakrifkan dalam stm32wbaxx_hal_conf.h.
- Menetapkan keutamaan kumpulan NVIC kepada 0.
- Panggilan fungsi panggil balik HAL_MspInit() ditakrifkan dalam pengguna stm32wbaxx_hal_msp.c file untuk melaksanakan pemulaan perkakasan peringkat rendah global.
- Konfigurasikan jam sistem
Konfigurasi jam sistem dilakukan dengan memanggil dua API yang diterangkan di bawah:- HAL_RCC_OscConfig(): API ini mengkonfigurasi pengayun dalaman dan luaran. Pengguna memilih untuk mengkonfigurasi satu atau semua pengayun.
- HAL_RCC_ClockConfig(): API ini mengkonfigurasi sumber jam sistem, kependaman memori denyar dan praskala AHB dan APB.
- Mulakan periferal
- Mula-mula tulis fungsi HAL_PPP_MspInit persisian. Teruskan seperti berikut:
- Dayakan jam persisian.
- Konfigurasikan GPIO persisian.
- Konfigurasikan saluran DMA dan dayakan gangguan DMA (jika perlu).
- Dayakan gangguan persisian (jika perlu).
- Edit stm32xxx_it.c untuk memanggil pengendali gangguan yang diperlukan (periferal dan DMA), jika perlu.
- Tulis fungsi panggil balik lengkap proses, jika gangguan persisian atau DMA dirancang untuk digunakan.
- Dalam pengguna utama.c file, mulakan struktur pemegang persisian kemudian panggil fungsi HAL_PPP_Init() untuk memulakan persisian.
- Mula-mula tulis fungsi HAL_PPP_MspInit persisian. Teruskan seperti berikut:
- Membangunkan aplikasi
- Pada s initage, sistem sudah sedia dan pembangunan kod aplikasi pengguna boleh dimulakan.
- HAL menyediakan API intuitif dan sedia untuk digunakan untuk mengkonfigurasi peranti. Ia menyokong tinjauan pendapat, gangguan dan model pengaturcaraan DMA, untuk menampung sebarang keperluan aplikasi. Untuk butiran lanjut tentang cara menggunakan setiap peranti, rujuk bekas kayaampSet yang disediakan dalam pakej MCU STM32CubeWBA.
Awas: Dalam pelaksanaan HAL lalai, pemasa SysTick digunakan sebagai pangkalan masa: ia menghasilkan gangguan pada selang masa tetap. Jika HAL_Delay() dipanggil daripada proses ISR persisian, pastikan sampukan SysTick mempunyai keutamaan yang lebih tinggi (secara angka lebih rendah) daripada sampukan persisian. Jika tidak, proses ISR pemanggil disekat. Fungsi yang mempengaruhi konfigurasi pangkalan masa diisytiharkan sebagai __lemah untuk membolehkan penggantian berlaku sekiranya pelaksanaan lain dalam pengguna file (menggunakan pemasa tujuan umum, contohnyaample, atau sumber masa lain). Untuk butiran lanjut, rujuk HAL_TimeBase example.
permohonan LL
Bahagian ini menerangkan langkah-langkah yang diperlukan untuk mencipta aplikasi LL tersuai menggunakan STM32CubeWBA.
- Buat projek
- Untuk mencipta projek baharu, sama ada bermula daripada projek Templates_LL yang disediakan untuk setiap papan di bawah \Projek\ \Templates_LL, atau daripada mana-mana projek yang tersedia di bawah \Projects\ \Cthamples_LL ( merujuk kepada nama papan, seperti NUCLEO-WBA32CG).
- Projek templat menyediakan fungsi gelung utama kosong, yang merupakan titik permulaan yang baik untuk memahami tetapan projek untuk STM32CubeWBA. Ciri-ciri utama templat adalah seperti berikut:
- Ia mengandungi kod sumber pemacu LL dan CMSIS, yang merupakan set minimum komponen yang diperlukan untuk membangunkan kod pada papan tertentu.
- Ia mengandungi laluan yang disertakan untuk semua komponen perisian tegar yang diperlukan.
- Ia memilih peranti siri STM32WBA yang disokong dan membenarkan konfigurasi yang betul bagi pemacu CMSIS dan LL.
- Ia menyediakan pengguna sedia untuk digunakan files yang diprakonfigurasikan seperti berikut:
◦ main.h: lapisan abstraksi definisi LED dan USER_BUTTON.
◦ main.c: Konfigurasi jam sistem untuk kekerapan maksimum.
- Port projek sedia ada ke papan lain
Untuk menyokong projek sedia ada pada papan sasaran lain, mulakan daripada projek Templates_LL yang disediakan untuk setiap papan dan tersedia di bawah \Projek\ \Templat_LL.- Pilih bekas LLample: Untuk mencari papan di mana LL examples digunakan, rujuk senarai LL examples STM32CubeProjectsList.html.
- Port LL example:
- Salin/tampal folder Templates_LL – untuk mengekalkan sumber awal – atau kemas kini terus projek Temp lates_LL sedia ada.
- Kemudian porting terdiri terutamanya dalam menggantikan Templates_LL files oleh Exampprojek sasaran les_LL.
- Simpan semua bahagian khusus papan. Atas sebab kejelasan, bahagian tertentu papan dibenderakan dengan khusus tags:
- Oleh itu, langkah-langkah pengalihan utama adalah seperti berikut:
- Gantikan stm32wbaxx_it.h file
- Gantikan stm32wbaxx_it.c file
- Gantikan yang utama.h file dan kemas kininya: Simpan definisi LED dan butang pengguna bagi templat LL di bawah KONFIGURASI KHUSUS PAPAN tags.
- Gantikan yang utama.c file dan kemas kini:
- Kekalkan konfigurasi jam fungsi templat SystemClock_Config() LL di bawah KONFIGURASI KHUSUS PAPAN tags.
- Bergantung pada definisi LED, gantikan setiap kejadian LDx dengan LDy lain yang tersedia dalam main.h file.
- Dengan pengubahsuaian ini, bekasample kini berjalan pada papan yang disasarkan
Aplikasi keselamatan
Pakej ini dihantar dengan aplikasi keselamatan.
aplikasi SBSFU
- SBSFU menyediakan penyelesaian Root of Trust, termasuk fungsi Secure Boot dan Secure Firmware Update (berdasarkan MCUboot).
- Penyelesaian digunakan sebelum melaksanakan aplikasi.
- Penyelesaiannya menyediakan bekasampperkhidmatan selamat (togol GPIO), yang diasingkan daripada aplikasi tidak selamat. Aplikasi tidak selamat pada masa jalan masih boleh menggunakan penyelesaian ini.
aplikasi TFM
TFM menyediakan penyelesaian Root of Trust termasuk fungsi Secure Boot dan Secure Firmware Update
(berdasarkan MCUboot). Penyelesaian digunakan sebelum melaksanakan aplikasi. Penyelesaian itu menyediakan perkhidmatan selamat TFM yang diasingkan daripada aplikasi tidak selamat. Aplikasi tidak selamat pada masa jalan masih boleh menggunakan penyelesaian ini.
aplikasi RF
Aplikasi RF diterangkan dalam nota aplikasi ini: Membina aplikasi wayarles dengan mikropengawal siri STM32WBA (AN5928).
Mendapat kemas kini keluaran STM32CubeWBA
Keluaran dan tampalan pakej MCU STM32CubeWBA terkini tersedia daripada Siri STM32WBA. Ia boleh diambil dari butang SEMAK UNTUK KEMASKINI dalam STM32CubeMX. Untuk butiran lanjut, rujuk Bahagian 3 manual pengguna STM32CubeMX untuk konfigurasi STM32 dan penjanaan kod C permulaan (UM1718).
Soalan Lazim
- Bilakah saya harus menggunakan HAL dan bukannya pemacu LL?
- Pemacu HAL menawarkan API peringkat tinggi dan berorientasikan fungsi, dengan tahap mudah alih yang tinggi. Kerumitan produk atau persisian tersembunyi untuk pengguna akhir.
- Pemacu LL menawarkan API peringkat daftar lapisan rendah, dengan pengoptimuman yang lebih baik tetapi kurang mudah alih. Mereka memerlukan pengetahuan yang mendalam tentang produk atau spesifikasi IP.
- Bolehkah saya menggunakan pemacu HAL dan LL bersama-sama? Jika saya boleh, apakah kekangannya?
- Ia adalah mungkin untuk menggunakan kedua-dua pemacu HAL dan LL. Gunakan HAL untuk fasa permulaan IP dan kemudian uruskan operasi I/O dengan pemacu LL.
- Perbezaan utama antara HAL dan LL ialah pemandu HAL perlu mencipta dan menggunakan pemegang untuk pengurusan operasi manakala pemandu LL beroperasi secara langsung pada daftar persisian. Examples_MIX example menggambarkan cara mencampurkan HAL dan LL.
- Bagaimanakah API permulaan LL didayakan?
- Takrifan API pemula LL dan sumber yang berkaitan (Struktur, literal dan prototaip) dikondisikan oleh suis kompilasi USE_FULL_LL_DRIVER.
- Untuk dapat menggunakan API permulaan LL, tambahkan suis ini dalam prapemproses pengkompil rantai alat.
- Bagaimanakah STM32CubeMX boleh menjana kod berdasarkan perisian terbenam?
STM32CubeMX mempunyai pengetahuan terbina dalam mikropengawal STM32, termasuk peranti dan perisiannya yang membolehkan menyediakan perwakilan grafik kepada pengguna dan menjana *.h atau *.c files berdasarkan konfigurasi pengguna.
NOTIS PENTING – BACA DENGAN TELITI
- STMicroelectronics NV dan anak syarikatnya (“ST”) berhak untuk membuat perubahan, pembetulan, penambahbaikan, pengubahsuaian dan penambahbaikan pada produk ST dan/atau pada dokumen ini pada bila-bila masa tanpa notis. Pembeli hendaklah mendapatkan maklumat terkini berkaitan produk ST sebelum membuat pesanan. Produk ST dijual menurut terma dan syarat jualan ST yang ada pada masa penerimaan pesanan.
- Pembeli bertanggungjawab sepenuhnya untuk pilihan, pemilihan dan penggunaan produk ST dan ST tidak bertanggungjawab untuk bantuan permohonan atau reka bentuk produk pembeli.
- Tiada lesen, nyata atau tersirat, kepada mana-mana hak harta intelek diberikan oleh ST di sini.
- Jualan semula produk ST dengan peruntukan yang berbeza daripada maklumat yang dinyatakan di sini akan membatalkan sebarang waranti yang diberikan oleh ST untuk produk tersebut.
- ST dan logo ST ialah tanda dagangan ST. Untuk maklumat tambahan tentang tanda dagangan ST, rujuk www.st.com/trademarks. Semua nama produk atau perkhidmatan lain adalah hak milik pemilik masing-masing.
- Maklumat dalam dokumen ini menggantikan dan menggantikan maklumat yang dibekalkan sebelum ini dalam mana-mana versi terdahulu dokumen ini.
- © 2023 STMicroelectronics – Hak cipta terpelihara
Dokumen / Sumber
![]() |
Siri STMicroelectronics STM32WBA Bermula [pdf] Manual Pengguna Siri STM32WBA Bermula, Bermula, Bermula |