Memahami Peta Memori Pada Mikrokontroler STM32
Kala kita ingin mempelajari perangkat – perang elektronika, di dalam banyak kesempatan banyak orang dari dosen hingga para pakar selalu memberikan nasehat agar anda untuk membaca datasheet. Hal yang sama berlaku, jika pembaca ingin mempelajari lebih lanjut tentang mikrokontroler STM32, seorang perancang sistem embedded, tidak boleh malas untuk membaca dokumentasi resmi berupa datasheet dan Reference Manual dari Mikrokontroler yang ingin diprogram.
Meskipun dokumentasi tersebut tidak perlu dibaca semua sekaligus, tapi setidaknya file tersebut dijadikan acuan resmi, kala anda mendapatkan referensi dari internet, seorang programmer harus memverifikasinya ke dalam datasheet dan Manual Reference.
Dalam artikel kali ini, embeddednesia akan mengajak pembaca untuk membuka Reference Manual dari Mikrokontroler STM32F446RE yang merupakan mikrokontroler yang digunakan dalam development board Nucleo-F446RE. Namun jika pembaca memahami konsep yang disajikan, teori ini dapat digunakan untuk diimplementasikan pada jenis mikrokontroler STM32 yang lain, bahkan juga pada vendor mikrokontroler dengan arsitektur yang serupa (arsitektur ARM Cortex-M4, misalnya pada Tiva C Series)
Baca Juga :
Satu topik yang wajib dipahami oleh seorang pemrogram sistem embedded adalah peta memori (memory map). Inilah mengapa memprogram mikrokontroler menggunakan Arduino sangat diharamkan oleh banyak dosen pada mata kuliah mikrokontroler. Karena penggunaan Arduino akan menghindarkan seorang programmer untuk belajar peta memori yang dimiliki suatu mikrokontroler. Dan hal semacam ini dapat dianggap sebagai “pembodohan” bagi seseorang yang ingin serius belajar sistem embedded.
Sedangkan dokumen berikut adalah potongan dari Reference Manual (halaman 56 – 59) yang sengaja disediakan embdeddednesia untuk memudahkan pembaca untuk fokus ke 3 halaman tersebut yang membahas tentang Peta Memori
- Peta Memori
Memory Map adalah peta rentang alamat memori yang digunakan suatu sistem komputer. Pada mikrokontroler STM32F4 yang memiliki inti prosesor ARM Cortex-M4, mempunyai system bus dengan lebar data 32 bit. Sehingga prosesor tersebut memiliki 232 (= 4294967296 atau 4 Giga) alamat yang berbeda.
Jadi semua program memory, data memory, register hingga port I/O terorganisasi pada alamat dengan rentang dari0x0000 0000
hingga 0xFFFF FFFF
. Jika pembaca membuka Reference Manual STM32F446xx pada halaman 57 akan ditemui periferal – periferal yang ditanamkan ke dalam mikrokontroler dan juga alamat yang digunakan
Misalnya, berdasarkan Reference Manual, Register yang terkait dengan GPIOA diletakkan pada alamat 0x4002 0000
– 0x4002 03FF
. Alamat yang berbeda mungkin dijumpai untuk jenis mikrokontroler lain (seperti Tiva C Series). Contoh berikutnya adalah register terkait dengan SPI4 yang diletakan pada rentang alamat 0x4001 3400
– 0x4001 37FF
Perhatikan pada Tabel 1. STM32F446xx Register Boundary Adresses dimana kolom ketiga adalah nama bus dimana peripheral – peripheral yang terkait bergantung padanya. Misalnya untuk Alamat AHB1 (Advance High Bus1) memiliki alamat memori dari 0x4002 0000
– 0x4007 FFFF
. Sedangkan untuk APB1 (Advance Peripheral Bus 1) berada pada alamat memori 0x4000 0000
– 0x4000 77FF
Untuk banyak peripheral lainnya, pembaca dapat menemukannya sendiri di Reference Manual. Penulis tidak mungkin menuliskan semua alamat – alamatnya pada peta memori di dalam artikel ini. Tulisan ini hanya mengajak pembaca bagaimana membuka reference manual sambil memahami isinya terkait dengan peta memori pada Mikrokontroler STM32.
Pemahaman tentang hal ini akan menjadi modal penting saat ulasan embeddednesia berikutnya yang mengulas lebih lanjut tentang arsitektur mikrokontroler STM32. Misalnya tentang antarmuka bus pada mikrokontroler STM32
Anda harus log masuk untuk menerbitkan komentar.