Ibarat hotel bintang 7, STM32CubeIDE, HAL (Hardware Abstraction Layer), Serta LL (Low level ) punya ST ini full service. Fasilitas apa saja ada. IDE dan firmware standar ST ini menjamin hidup Anda mudah dan modern. (Meski punya efek samping ruwet dan ‘bloatware’). Sedang libopencm3, firmware open source ini lebih ringan dan fleksibel. Tidak terikat pula dengan STM32CubeIDE. Pemakaian juga tepat sasaran tidak bertele-tele.
Jika Anda fans VIM dan Makefile, maka Libopencm3 ini lebih cantik dan sexy lol.

Dependency yang diperlukan libopencm3 adalah arm-none-eabi-gcc dan arm-none-eabi-newlib. Kompile dan instal juga openocd dan stlink untuk flashing chip. Untuk instal dependency, sesuaikan dengan Distro Linux atau OS yang Anda pakai. Saya menggunakan Slackware 15 dan semua paket ada di slackbuild.
Setelahnya, download/clone libiopencm3. Masuk ke direktori libopencm3 dan ketik instruksi make. Semua library aneka chip akan disediakan. (Hanya instruksi make saja tanpa perlu make install). Jika hanya untuk stm32f4xx dan stm32f7xx, cukup make TARGETS=’stm32/f4 stm32/f7′ .
git clone https://github.com/libopencm3/libopencm3.git
cd libopencm3
make TARGETS='stm32/f4 stm32/f7'
cd doc
make html


Setelahnya, pindah ke direktori doc. Lakukan make html untuk dokumentasi dalam format HTML atau make doc untuk PDF. Dokumentasi ini penting! Saya pilih make html karena ringan dan cepat. Jika Anda Superman, abaikan bagian doc ini.

Langkah selanjutnya , clone example, template, dan miniblink .. yach agar hidup lebih mudah bagi suparman.. Contoh itu penting. Tanpa contoh, hidup terasa hampa. Hampa karena contoh burger sebesar piring di menu, setelah keluar cuma sekepal tangan:).
git clone https://github.com/libopencm3/libopencm3-examples.git
git clone https://github.com/libopencm3/libopencm3-template.git
git clone https://github.com/libopencm3/libopencm3-miniblink.git
Memulai coding!
Ada 4 file penting : Makefile
, Make.include
, rules.mk
, dan .ld
. Nantinya, untuk kompile/build tinggal ketik “make"
. Sedang untuk flashing ke chip tinggal ketik : “make flash"
. Untuk .ld
akan dibuatkan otomatis saat make program Anda pertama kali. File linker ini berisi alamat dan besar memory pada chip stm32 yang dipakai. Posisi file tersebut juga penting. Terserah dimana diletakkan, sesuaikan dengan konfigurasi Anda. Lihat lampiran di bawah.
Untuk memulai, dapat digunakan file Makefile dari example yang dimodifikasi sesuai chip. Definisi tipe stm32 ini penting karena akan menentukan LD dan flag saat kompilasi. Contoh di bawah digunakan chip STM32F407VG.


make V=1
. V=verbose alias detil.
make flash V=1
.
_________________________________________
Lampiran tentang Makefile, Makefile.include, rules.mk, dan LD.

Makefile
. Isi bagian BINARY
dengan nama file binary. Saya kasih nama blink. Bagian DEVICE
mesti diisi dengan benar sesuai tipe chip. Pada bagian include
, jangan sampai salah sasaran, karena file Makefile ini akan mencari file Makefile.include.

rules.mk
. Bagian ini tidak perlu di edit. Jika ingin melihat peletakkan file tersebut. Pada direktori blink terletak file blink.c yang dibuat.


————————-

generated.STM32F407VG.ld
secara otomatis.