STM32 dan Libopencm3

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.

Program untuk blink led pada DevEBox dengan chip STM32F407VG plus VIM editor.

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

Kompilasi sukses tanpa pesan kesalahan.

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.

Dokumentasi versi HTML.

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.

Instruksi make V=1. V=verbose alias detil.
Instruksi make flash V=1.
Penampakan! Hasilnya berkedip kok :).

_________________________________________

Lampiran tentang Makefile, Makefile.include, rules.mk, dan LD.

Isi dari 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.
Isi dari Makefile.include
Isi dari rules.mk. Bagian ini tidak perlu di edit.

Jika ingin melihat peletakkan file tersebut. Pada direktori blink terletak file blink.c yang dibuat.

Susunan file makefile.include dan rules.mk
Letak file Makefile.

————————-

Saat pertama kali make, akan dibangkitkan file linker generated.STM32F407VG.ld secara otomatis.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s