Tutorial Memulai STM32CubeIDE

Untuk meningkatkan kemudahan penggunaan keluarga mikrokontroler STM32 yang kaya fitur dan hemat daya, pada tahun 2019 ST telah menambahkan alat pengembangan STM32 yang gratis dan multifungsi ke dalam ekosistem perangkat lunak STM32Cube: STM32CubeIDE.

Agar dapat berfungsi sebaik alat lingkungan pengembangan terintegrasi (IDE) komersial, STM32CubeIDE memanfaatkan sepenuhnya teknologi Atollic®, vendor alat pengembangan tertanam yang diakuisisi oleh STMicroelectronics pada tahun 2017. Dengan menggunakan ketentuan lisensi terbuka standar industri, perangkat lunak IDE ini menambahkan fitur-fitur khusus STM32 untuk menyederhanakan dan mempercepat desain tertanam berbasis STM32, termasuk alat konfigurasi mikrokontroler dan manajemen proyek STM32CubeMX yang kuat.

Dengan mengintegrasikan STM32CubeMX ke dalam STM32CubeIDE, ST telah menciptakan lingkungan pengembangan yang lebih kuat. Ekosistem STM32Cube yang lengkap juga mencakup STM32CubeProgrammer (alat pembakar kode) dan keluarga STM32CubeMonitor (monitor eksekusi kode), serta berbagai paket firmware MCU mandiri.

Apa itu STM32CubeIDE?

STM32CubeIDE adalah alat pengembangan perangkat lunak resmi dan gratis dari ST, yang didasarkan pada kerangka kerja Eclipse®/CDT, rangkaian alat kompilasi GCC, dan alat debugging GDB, serta mendukung penambahan plugin fungsional pihak ketiga. Selain itu, STM32CubeIDE juga mengintegrasikan beberapa fitur dari STM32CubeMX dan STM32CubeProgrammer.

Dengan STM32CubeIDE, pengembang dapat melakukan segala hal mulai dari pemilihan chip, konfigurasi proyek, pembangkitan kode, hingga pengeditan kode, kompilasi, debugging, dan pembakaran.

STM32Cube software ecosystem
STM32Cube software ecosystem

Fitur STM32CubeIDE

1. Integrasikan STM32CubeMX:

  • Pemilihan mikrokontroler STM32
  • Penetapan pin, konfigurasi clock, IP, dan middleware
  • Pembuatan proyek dan pembangkitan kode inisialisasi

2. Berbasis Eclipse/CDT, mendukung plugin Eclipse, menggunakan rantai alat ARM dan debugger GDB dalam GNU C/C++.

3. Fungsi debugging lanjutan lainnya:

  • Tampilan inti CPU, register IP, dan memori
  • Tampilan pemantauan variabel secara langsung
  • Analisis Sistem dan Pelacakan Langsung (SWV)
  • Alat analisis kesalahan CPU

4. Mendukung probe debug ST-LINK dan J-Link

5. Mendukung impor proyek dari TrueSTUDIO dan AC6 (SW4STM32)

6. Mendukung sistem operasi: Windows, Linux, dan macOS

Unduh STM32CubeIDE

Ruang Kerja STM32CubeIDE

STM32CubeIDE adalah kerangka kerja berbasis Eclipse yang mewarisi beberapa fitur Eclipse yang mungkin belum familiar bagi pengguna, seperti tampilan perspektif, ruang kerja, dan sebagainya.

Ruang Kerja: STM32CubeIDE mengelola proyek melalui ruang kerja. Saat membuka STM32Cube, aplikasi ini membuat ruang kerja default baru. Proyek baru atau yang diimpor akan menjadi bagian dari ruang kerja ini. Proyek-proyek di bawah ruang kerja yang sama memiliki konfigurasi tingkat IDE yang sama (yang diatur di Window→Preferences), seperti pengaturan tampilan dan gaya pengeditan. Dari sudut pandang sistem berkas, ruang kerja adalah folder yang berisi beberapa folder proyek dan folder bernama ".metadata", yang berisi informasi tentang semua proyek di ruang kerja tersebut. Folder ".metadata" berisi informasi tentang semua proyek di ruang kerja. Pengguna dapat beralih antar ruang kerja melalui menu File→Switch Workspace.

Perspektif: Perspektif adalah serangkaian jendela yang terkait dengan jenis fungsi tertentu. Yang umum digunakan adalah Perspektif Edit C/C++, Perspektif Debug, dan Perspektif Konfigurasi CubeMX.

STM32CubeIDE Perspective
STM32CubeIDE Perspective

Perspektif Pengeditan C/C++ mencakup Pengelola Proyek, Jendela Pengeditan, Jendela Garis Besar, dan sebagainya. Pengelola Proyek memungkinkan Anda untuk melihat dan mengelola semua proyek di ruang kerja saat ini. Klik ganda untuk membuka berkas dalam proyek, dan isi berkas tersebut akan ditampilkan di Jendela Pengeditan, tempat Anda dapat mengeditnya. Jendela Garis Besar di sebelah kanan menampilkan daftar semua fungsi, variabel, dan makro yang didefinisikan dalam berkas yang sedang dibuka.

Menu Tampilan Jendela memungkinkan Anda membuka dan menutup jendela yang perlu ditampilkan dalam perspektif pengeditan C/C++.

Anda dapat beralih di antara tampilan perspektif yang berbeda dengan menggunakan ikon di kanan atas; misalnya, dengan mengklik ikon crawler, Anda dapat beralih ke tampilan perspektif debug. Mengklik tombol Debug di bilah alat di bawah tampilan Perspektif Pengeditan C/C++ juga akan secara otomatis beralih ke tampilan Perspektif Debug setelah memulai proses debugging.

Bagaimana Cara Menggunakan STM32CubeIDE?

1. Manajemen Proyek

Buat Proyek Baru

Dengan menggunakan STM32CubeIDE, pengguna dapat memulai proyek baru dengan berbagai cara. Layar selamat datang STM32CubeIDE menampilkan titik masuk pintas untuk membuat/mengimpor proyek, yang sesuai dengan empat skenario di bawah ini. Fungsi-fungsi tersebut juga dapat diakses melalui opsi New dan Import di menu File.

  1. Membuat proyek STM32 baru dari awal
  2. Sudah ada file konfigurasi STM32CubeMX (*.ioc), dan Anda ingin membuat proyek STM32 baru berdasarkan file ioc ini.
  3. Saya sudah memiliki proyek SW4STM32 atau TrueSTUDIO dan ingin mengonversinya menjadi proyek STM32CubeIDE.
  4. Buat proyek baru berdasarkan rutinitas dalam pustaka STM32Cube
STM32CubeIDE New Project
STM32CubeIDE New Project

Struktur Proyek STM32CubeIDE

STM32CubeIDE memiliki dua struktur proyek, seperti yang ditunjukkan pada gambar berikut.

STM32CubeIDE project structure diagram
STM32CubeIDE project structure diagram

MCU single-core memiliki struktur datar.

Untuk MCU arsitektur dual-core atau MCU keamanan, seperti seri STM32H7, STM32L5, dan STM32MP1, proyek STM32CubeIDE memiliki struktur hierarkis. Ambil contoh STM32H7, setelah membuat atau mengimpor proyek STM32H7, Anda akan melihat struktur proyek tiga lapis di bilah Project Explorer: lapisan teratas adalah proyek "root", kemudian ada dua proyek "anak" yang masing-masing sesuai dengan inti CM7 dan CM4. Lapisan teratas adalah proyek "root", kemudian terdapat dua proyek "sub" yang masing-masing sesuai dengan kernel CM7 dan CM4, dan berkas-berkas proyek berada di bawah proyek "sub" tersebut. Kedua proyek "sub" CM7 dan CM4 inilah yang merupakan proyek yang sebenarnya dapat dikompilasi dan didebug, sedangkan proyek "root" hanyalah "wadah" yang menampung proyek "sub" CM7 dan CM4. AN5361, AN5394, AN5360, dan AN5564 menjelaskan cara membuat, mengimpor, mengkompilasi, dan mendebug proyek STM32H7 dual-core, STM32L5, STM32MP1, dan STM32WL masing-masing di STM32CubeIDE.

Pengelolaan Perpustakaan Firmware

STM32CubeIDE mengintegrasikan beberapa fitur STM32CubeMX, sehingga Anda dapat membuat proyek baru dengan langsung memilih model chip/papan pengembangan atau dengan memilih rutin. Kode driver dan rutin yang diperlukan untuk membuat proyek dengan STM32CubeIDE berasal dari pustaka firmware masing-masing keluarga STM32.

Di Help→Manage Embedded Software Packages, semua pustaka firmware STM32 dan plugin lainnya dapat dikelola (menginstal/menghapus pustaka firmware).

Tombol Install Now memungkinkan STM32CubeIDE mengunduh dan menginstal secara otomatis dari jaringan, sedangkan tombol From Local memungkinkan Anda menginstal pustaka firmware yang telah diunduh sebelumnya.

Tombol "Remove Now" memungkinkan Anda menghapus perpustakaan firmware yang dipilih.

STM32CubeIDE firmware library
STM32CubeIDE firmware library

Di bawah tab STM32Cube Firmware Updater pada jendela Preferensi, Anda dapat mengatur jalur ke lokasi instalasi pustaka firmware serta cara memperbaruinya.

STM32CubeIDE Firmware Preferences Setting
STM32CubeIDE Firmware Preferences Setting

Konfigurasi Jaringan

Secara default, STM32CubeIDE akan mencoba terhubung ke jaringan saat membuka dan membuat proyek baru. Anda juga dapat memilih "Off Line Mode" untuk mencegah STM32CubeIDE terhubung ke jaringan. Namun, Anda perlu menginstal pustaka firmware yang telah diunduh sebelumnya melalui tombol "From Local" di jendela Embedded Software Packages Manager pada gambar sebelumnya; jika tidak, kode tidak akan dihasilkan secara otomatis untuk proyek STM32 yang baru.

Klik tombol "Check Connection" untuk memeriksa status koneksi jaringan saat ini. Jika muncul tanda silang merah di akhir pemeriksaan, itu berarti ada masalah dengan konfigurasi jaringan dan kita perlu pergi ke halaman "Network Connection" untuk mengaturnya.

Selain deteksi status jaringan aktif sebelumnya, jika pengunduhan firmware gagal, harap periksa juga apakah konfigurasi jaringan STM32CubeIDE sudah benar.

Langkah-langkah konfigurasi ditunjukkan pada gambar berikut:
1. Buka menu Window Preferences dan pilih tab General
Network Connections 2. Pilih metode Manual
3. Pilih HTTP dan klik dua kali untuk membuka jendela edit guna mengatur parameter koneksi jaringan.

STM32CubeIDE Network Configuration
STM32CubeIDE Network Configuration

Buka/Tutup/Hapus/Beralih/Ekspor proyek STM32CubeIDE

Di jendela Project Explorer, Anda dapat melihat semua proyek yang ada di ruang kerja saat ini. Pengguna dapat membuka, menutup, menghapus, mengimpor, mengekspor, atau mengganti nama proyek mana pun di jendela ini.

2. Kompilasi Kode

Pengaturan dan Kompilasi Properti

Pilih sebuah proyek di Project Explorer, klik kanan proyek tersebut, lalu buka menu properti, di mana Anda dapat mengonfigurasi pengaturan kompilasi.

Setelah konfigurasi selesai, proyek siap untuk dikompilasi. Anda dapat memulai kompilasi dengan tiga cara
:- Metode 1: Pilih proyek, klik kanan, lalu pilih "Build Project".
– Metode 2: Pilih proyek, buka menu Project, lalu pilih "Build Project".
– Metode 3: Pilih proyek dan klik ikon Build di bilah alat

STM32CubeIDE project property configuration
STM32CubeIDE project property configuration

Meningkatkan Kecepatan Kompilasi

Dengan mengaktifkan pembentukan paralel, Anda dapat meningkatkan kecepatan kompilasi STM32Cube IDE.
Pilih proyek, klik kanan pada proyek tersebut, lalu buka menu properti, pilih "C/C++ Build", dan di bawah tab Behavior, centang opsi "Enable parallel build".

STM32CubeIDE CC++ Build parallel compile
STM32CubeIDE CC++ Build parallel compile

Alat Bantu untuk Kompilasi

Setelah proyek dikompilasi, jendela "Build Analyzer" menampilkan penggunaan semua wilayah dan bagian memori yang didefinisikan dalam berkas tautan, termasuk alamat pemuatan, alamat eksekusi, jumlah byte yang terpakai, jumlah byte yang tersisa, dan sebagainya.

Jendela "Static Stack Analyzer" menampilkan penggunaan tumpukan statis.

STM32CubeIDE juga menyediakan fitur Headless Build, yang memungkinkan Anda mengompilasi dari baris perintah tanpa membuka antarmuka pengguna grafis (GUI) CubeIDE.

3. Debugging dan Pembakaran Kode

Konfigurasi Debug dan Jalankan

Setelah proyek STM32CubeIDE berhasil dikompilasi tanpa kesalahan, proyek tersebut siap untuk di-debug dan di-download.

Di bilah alat C/C++ Perspective terdapat tiga tombol yang berkaitan dengan pengunduhan dan debugging: Debug, Run, dan External Tools.

Segitiga kecil di sebelah tombol "Debug" membuka menu Konfigurasi Debug untuk mengatur parameter debugging, seperti pemilihan debugger, pengaturan koneksi GDB, pengaturan ST-LINK, pengaturan Flash Loader eksternal, dll., serta untuk memulai proses debugging.

Dengan tombol "Run", Anda dapat mengunduh program saja tanpa memulai debugging.

Tombol "External Tools" memungkinkan Anda menjalankan alat baris perintah eksternal.

STM32CubeIDE Code Debugging
STM32CubeIDE Code Debugging

Mulai Debugging

STM32CubeIDE menggunakan GDB untuk proses debugging, mendukung debugger STLink dan SEGGER J-Link, serta mendukung koneksi ke MCU target melalui antarmuka SWD atau JTAG.

Setelah proyek STM32CubeIDE dikompilasi, proses debugging dapat dimulai langsung dengan mengklik ikon crawler di bilah alat atau dengan memilih menu Run–>Debug.

STM32CubeIDE Start Debugging
STM32CubeIDE Start Debugging

Jika ini adalah kali pertama Anda melakukan debug pada proyek saat ini, STM32CubeIDE akan terlebih dahulu mengkompilasi proyek tersebut, lalu membuka jendela konfigurasi debug. Jendela konfigurasi debug berisi opsi untuk pemilihan antarmuka debug, pengaturan STLink, pengaturan reset, dan pengaturan pemuat flash eksternal, dll. Pengguna dapat memeriksa atau mengubah konfigurasi tersebut. Setelah memastikan bahwa semua konfigurasi sudah benar, Anda dapat mengklik OK untuk memulai proses debug.

Kemudian STM32CubeIDE akan mengunduh program ke MCU terlebih dahulu, lalu memulai eksekusi dari titik masuk program yang ditentukan dalam berkas tautan (*.ld). Program akan memulai eksekusi dari Reset_Handler secara default dan berhenti di baris pertama fungsi main, menunggu instruksi debug berikutnya.

Operasi Debug Dasar

Setelah proses debugging dimulai, STM32CubeIDE akan secara otomatis beralih ke tampilan perspektif debug, dan tombol-tombol operasi debug tercantum di bilah alat tampilan perspektif debug. Seperti yang ditunjukkan pada gambar di bawah ini.

Basic debugging operation of STM32CubeIDE
Basic debugging operation of STM32CubeIDE

4. Penggunaan plugin

STM32CubeIDE juga mendukung plugin Eclipse. Ada 2 cara untuk menginstalnya:

  1. Menginstal melalui "Eclipse Marketplace" di bawah menu Bantuan;
  2. Menginstal melalui "Install New Software" di bawah menu "Help".
STM32CubeIDE plugins Installing
STM32CubeIDE plugins Installing

Contoh Pemrograman STM32CubeIDE

Mari kita pelajari proses pengembangan perangkat lunak menggunakan STM32CubeIDE melalui rutinitas lampu LED yang berkedip.

Rutin ini menggunakan papan pengembangan NUCLEO-H743ZI dan membuat proyek baru dari awal melalui STM32CubeIDE. Proyek tersebut kemudian mengimplementasikan fungsi sederhana: LED1 yang terpasang di papan akan berkedip secara otomatis dengan interval 500 ms.

Hal-hal yang dapat kita pelajari dari contoh pemrograman ini adalah sebagai berikut:

  • Membuat proyek STM32CubeIDE baru
  • Konfigurasikan chip STM32
  • Tambahkan kode pengguna dan kompilasi
  • Atur parameter debug
  • Debug kode (lihat variabel dan register)
  • Tentukan titik henti

Pertama, pilih File–>New–>STM32 Project, STM32CubeIDE akan membuka jendela pemilihan MCU. Di jendela ini, Anda dapat memilih model chip tertentu, atau memilih papan pengembangan ST atau rangkaian tertentu. Di sini, ketik STM32H743ZI di kotak pencarian, pilih chip tersebut, lalu klik Next.

Create STM32CubeIDE New Project and Select STM MCU model
Create STM32CubeIDE New Project and Select STM MCU model

Pada jendela pop-up berikutnya, Anda perlu menentukan nama proyek, jenis, dan lokasi penyimpanan proyek. Secara default, proyek baru akan disimpan di ruang kerja saat ini, tetapi Anda juga dapat menghapus centang pada "Gunakan lokasi default" dan menyesuaikan lokasi proyek seperti yang ditunjukkan di bawah ini. Perhatikan bahwa jika Anda mencoba menempatkan dua proyek di bawah jalur yang sama, Anda mungkin akan mendapatkan kesalahan selama proses pembuatan nanti. Jadi, Anda dapat menambahkan nama proyek ke jalur tersebut untuk membedakan proyek yang berbeda.

Setelah pengaturan selesai, klik Selesai dan STM32CubeIDE akan membuat proyek untuk kita dan membuka antarmuka konfigurasi chip, yang sama dengan STM32CubeMX.

Selama proses ini, Anda mungkin akan mendapatkan popup yang menanyakan apakah Anda ingin membuka perspektif konfigurasi CubeMX, klik "Ya" dan Anda selesai.

STM32CubeMX Configuration Perspective
STM32CubeMX Configuration Perspective

Langkah selanjutnya adalah mengonfigurasi clock, GPIO, periferal, middleware, dan sebagainya sesuai dengan persyaratan fungsional di layar konfigurasi chip. Dalam rutin ini, kami hanya menggunakan PB0, yang berfungsi sebagai output untuk mengendalikan LED1, jadi kami hanya perlu mengonfigurasinya. Untuk clock, kami menggunakan konfigurasi default.

Di bawah tampilan Pinout, pin yang akan dikonfigurasi dapat ditemukan dengan cepat pada diagram kemasan chip dengan menggunakan bilah pencarian.

Pilih pin tersebut, klik kanan, lalu pilih fungsi GPIO_Output.

Kemudian buka tampilan System, klik modul GPIO, dan Anda akan melihat pin PB0 yang baru saja Anda konfigurasi. Jendela ini juga memungkinkan Anda untuk terus menyesuaikan parameter lain dari PB0, seperti pull-up/down, kecepatan, dll. Anda juga dapat mendefinisikan label pengguna LDE1 untuknya, yang mudah dirujuk dalam kode.

Configure GPIOs on Create STM32CubeIDE
Configure GPIOs on Create STM32CubeIDE

Setelah semua konfigurasi selesai, pilih Project–>Generate Code untuk membuat ulang kode. Pada tahap ini, STM32Cube akan beralih ke tampilan perspektif C/C++, dan Anda dapat menambahkan berkas pengguna atau melakukan perubahan pada berkas C.

Di sini, kita menambahkan potongan kode yang membalikkan PB0. Perhatikan bahwa semua kode yang ditambahkan pengguna harus ditempatkan di antara deklarasi "USER CODE BEGIN xxx" dan "USER CODE END xxx". Dengan cara ini, saat kode dihasilkan kembali, bagian kode ini tidak akan hilang.

Setelah kode ditambahkan, klik "Build" untuk memulai kompilasi.

Generate Code and Compile Project
Generate Code and Compile Project

Jika proses kompilasi telah selesai dan tidak ada kesalahan yang dilaporkan, Anda dapat mengklik Debug untuk memulai proses debugging.

Saat pertama kali memulai proses debugging, jendela konfigurasi parameter debugging akan muncul. Pastikan semua parameter sudah benar, klik OK, dan STM32CubeIDE akan secara otomatis beralih dari antarmuka edit ke antarmuka debug. Seperti yang ditunjukkan pada gambar di bawah ini.

Di antarmuka debug, Anda dapat melakukan debug langkah demi langkah dengan menggunakan tombol aksi di bilah alat.

Klik ganda pada bilah penanda paling kiri dari sebuah baris kode untuk menambahkan titik henti (breakpoint) pada baris kode tersebut.

Beberapa jendela debugging terbuka di sisi kanan, termasuk: variabel lokal, titik henti, variabel global, dan register, dll. Jendela-jendela ini dapat dibuka atau ditutup melalui menu Window–>Show View.

STM32CubeIDE Debug Code
STM32CubeIDE Debug Code

STM32CubeIDE vs STM32CubeMX

STM32Cube IDE adalah Lingkungan Pengembangan Terpadu (IDE) untuk mengembangkan aplikasi pada mikrokontroler STM32. Berbasis platform Eclipse, STM32Cube IDE mengintegrasikan STM32CubeMX, debugger, editor, kompiler, dan alat-alat lainnya, sehingga menyediakan lingkungan yang lengkap bagi para pengembang. STM32Cube IDE menawarkan kemampuan debugging, kontrol versi, pengeditan kode, dan fitur build, sehingga memungkinkan pengembang menyelesaikan seluruh proses pengembangan dalam satu antarmuka terpadu.

STM32CubeMX adalah alat konfigurasi grafis yang dirancang untuk menginisialisasi mikrokontroler STM32 dan menghasilkan kode inisialisasi. Alat ini menyediakan antarmuka yang intuitif yang memungkinkan pengguna memilih model mikrokontroler, mengonfigurasi periferal, pemetaan pin, serta menghasilkan kode inisialisasi yang sesuai. STM32CubeMX juga dapat menghasilkan berkas konfigurasi FreeRTOS, mengonfigurasi pohon jam, dan mengatur prioritas interupsi. Kode yang dihasilkan dapat diintegrasikan ke dalam berbagai Lingkungan Pengembangan Terpadu (IDE) seperti Keil atau IAR untuk pengembangan aplikasi lebih lanjut.

FeatureSTM32CubeMXSTM32Cube IDE
PurposeConfiguration tool for STM32 MCUsFull IDE for application development
FunctionalityInitializes MCUs, configures peripherals, generates codeCode writing, debugging, building, and compiling
PlatformStandalone, integrates with Keil, IARBuilt on Eclipse, integrates CubeMX, debugging tools
Code GenerationGenerates initialization code for external IDEsDevelops and compiles applications directly
User InterfaceGraphical interface for configurationFull IDE with editing and debugging tools
Use CaseSet up peripherals and generate base codeWrite, build, and debug applications

Pertanyaan Umum tentang STM32CubeIDE

Apakah STM32CubeIDE dapat menghasilkan berkas BIN atau HEX setelah proses kompilasi?

Secara default, STM32CubeIDE menghasilkan berkas ELF setelah proses kompilasi. Namun, perangkat lunak ini juga mendukung pembuatan berkas HEX atau BIN. Proses konfigurasinya adalah sebagai berikut: Buka menu utama Project > Properties > C/C++ Build, lalu buka pengaturan di mana Anda dapat mengatur format keluaran.

generating BIN or HEX files by STM32CubeIDE
Generating BIN or HEX files by STM32CubeIDE

Ya, tentu saja. STM32CubeIDE sebenarnya mengintegrasikan STM32CubeMX sebagai modul dalam lingkungan pengembangannya. Saat membuat proyek baru di CubeIDE, STM32CubeMX secara otomatis dijalankan agar pengguna dapat melakukan konfigurasi inisialisasi secara grafis.

Ada beberapa kemungkinan alasan mengapa STM32CubeIDE tidak menghasilkan kode:

  • Pastikan STM32CubeMX telah terintegrasi dengan benar dan dijalankan saat pembuatan proyek.
  • Pastikan Anda telah mengonfigurasi mikrokontroler dan periferalnya dengan benar di STM32CubeMX sebelum mencoba menghasilkan kode.
  • Periksa pengaturan di Project > Properties bagian ini, terutama opsi pembuatan kode.
  • Pastikan tidak ada kesalahan atau konfigurasi yang terlewat yang dapat menghalangi pembuatan kode.

Bagikan ke:

Scroll to Top

Instant Quote