Anda di halaman 1dari 7

Pengantar Embedded Systems dan Realtime Systems dengan

Embedded Linux dan eCos

Apakah embedded system itu ?

Embedded system adalah kombinasi dari hardware dan software yang disisipkan
(embedded) dalam suatu perangkat tertentu yang bertujuan melakukan suatu
fungsi/tugas khusus.

Contoh dari embedded systems ini dalam kehidupan sehari-hari adalah microwave,
kalkulator elektronic, game watch, Antilock Brake Systems dan masih banyak lagi.
Hampir semua aspek kehidupan kita tidak dapat dipisahkan dari embedded systems.

Coba anda lihat sekeliling kamar anda, pastinya anda tidak akan sulit menemukan
suatu benda yang mengandung embedded systems di dalamnya. Coba sebutkan, di
kamar saya saja sekarang ada Mobile Phone, MP3 Player dan MIDI Keyboard.

Embedded systems banyak dikaitkan dengan Real-Time Systems (sistem waktu nyata).

Kebanyakan Embedded system memang memiliki sistem operasi berbasis real-time


systems, kenapa ? karena kita tidak ingin ada jeda waktu eksekusi dalam sistem
embedded systems.

Embedded system juga banyak dikaitkan dengan Instrumentasi. Karena untuk


membuat instrument, kita menghubungkan (antarmuka/interface) antara prosesor
dengan dunia luar melalui sensor.

Dalam blog ini penulis akan mengajak pembaca untuk membangun sistem embedded
system dengan sistem operasi yang sudah terkenal yaitu Linux, khususnya embedded
Linux. Pembaca sudah seharusnya menguasai bahasa pemrograman C, dasar-dasar
sistem digital dan Organisasi dan Arsitektur sistem komputer.

Untuk board experimen, penulis menyarankan untuk menggunakan Microcontroller kit


Arcom Viper-Lite dengan processor Arm PXA255 XScale. Microcontroller kit ini dapat
dibeli lewat www.arcom.com dengan harga sekitar 360 euro saja. Belajar
microcontroller memang butuh modal, penulis sengaja tidak menyarankan Pic
Microcontroller atau 8051 karena keterbatasan feature.

Menurut penulis, Microcontroller Viper-Lite ini paling lengkap dan memiliki feature


sebagai berikut:

 RAM: 64 MB of SDRAM
 ROM: 16 MB of flash and 1 MB boot ROM
 Three RS232-compatible serial ports (with external DB9 connectors)
 10/100baseTx Ethernet port
 USB v1.1 client port
 CompactFlash slot
 Four programmable timer/counters
 Sixteen-channel DMA controller
 Watchdog timer
 Real-time clock
 Eight buffered digital inputs
 Eight buffered digital outputs
 RedBoot debug monitor program resident in boot ROM
 Embedded Linux (based on kernel version 2.6) resident in flash

Dengan demikian, kita bisa belajar banyak hal, mulai dari port access hingga ke
networking.

Prosesor dan memori

Sekarang kita akan mempelajari mengenai dasar-dasar Prosesor:

Ada dua jenis perangkat keras yang membentuk Prosesor : memory dan periferal.
Memory untuk penyimpanan/temu kembali data dan kode. Sementara periferal adalah
perangkat keras yang mengkoordinasikan interaksi dengan dunia luar atau melakukan
suatu fungsi hardware tertentu. Contoh periferal pada embedded system adalah port
serial dan timer.
Keluarga prosesor berbasis Intel 80x86 memiliki dua sistem pengalamatan yang
memungkinkan komunikasi dengan memori dan periferal. Sistem pengalamatan
pertama diperuntukkan bagi perangkat memory, sementara sistem pengalamatan
kedua diperuntukkan bagi periferal terutama I/O.

Pemetaan memory

Semua prosesor menyimpan data dan program di memory. Memory bisa terletak di
dalam chip yang sama dengan prosesor atau diluar chip. Memory terletak pada memory
space dan prosesor berkomunikasi dengan memory dengan menggunakan dua jalur
yaitu address bus dan data bus. Address bus untuk menyimpan alamat dan data bus
untuk menyimpan data. Selain itu ada jalur lain, yaitu control bus yang dipergunakan
untuk membaca , menulis dan mengaktifkan ke berbagai perangkat didalam ruang
lingkup pengalamatan memory. Sinyal untuk control bus termasuk : read, write dan
chip-select (chip-enable).

Saat kita akan menulis suatu program pada suatu board, sebaiknya kita baca dulu
spesifikasi board tersebut, sehingga kita bisa tahun nama dan address range dari tiap
perangkat memori dan periferal yang terletak pada ruang memory. Kita buat tabelnya.
Tabel ini kita sebut peta memory (memory map). Tabel tersebut diorganisasikan
sedemikian rupa sehingga alamat terkecil terletak paling bawah dan alamat tertinggi
terletak di atas. Setiap kali kita menambahkan suatu perangkat ke peta memory,
tempatkan pada lokasi yang benar dan beri label pada alamat awal dan akhir dalam
hexadecimal.

Sebagai contoh bila kita lihat diagram pada Arcom board dibawah ini maka kita lihat
bahwa ada tiga perangkat yang terhubung pada address dan data bus, perangkat
tersebut adalah RAM, ROM dan SMSC Ethernet controller.

Peta memory dari diagram diatas kira-kira sebagai berikut (gambar hak cipta Michael
Barr):

Setelah kita membuat peta memory, kita buat header pada bahasa C sebagai berikut :

/**********************************************************************

*
* Peta memory

* Base Address Ukuran Deskripsi

* -------------- ----- -----------------------------------

* 0x00000000 64M SDRAM

* 0x08000300 N/A Ethernet controller

* 0x50000000 16M Flash

**********************************************************************/

#define SDRAM_BASE (0x00000000) // definisi SDRAM

#define ETHERNET_BASE (0x08000300) // definisi Ethernet

#define FLASH_BASE (0x50000000) // Flash

Setelah kita mengetahui nama dan alamat memori dan peripheral yang terhubung
dengan prosesor, maka kita bisa membuat mereka berkomunikasi antara satu dengan
lainnya (prosesor dengan peripheral). Ada dua metode komunikasi yaitu polling dan
interrupt. Keduanya berbasis pada konsep ini, prosesor akan tahu alamat dan range
periferal, prosesor akan memberikan tugas (berupa data) pada alamat tersebut, dan
prosesor akan menunggu periferal menyelesaikan tugasnya. Contoh, ketika prosesor
menugaskan timer menghitung dari 1000 ke 0. Pada detik dimana kalkulasi dimulai,
prosesor hanya akan tertarik pada satu hal, apakah timer selesai menghitung atau
tidak.

Pada metode polling, prosesor akan menanyakan terus menerus pada peripheral (misal
timer) apakah suatu tugas selesai dikerjakan atau tidak. Untuk mengimplementasikan
polling, maka kita akan menciptakan iterasi yang membaca status register pada
peripheral. Sebagai contoh :

do

{
/* Hitung dari 1000 ke 0 */

...

/* Poll untuk melihat apakah perhitungan selesai. */

status = Nilai_Sudah_Nol( );

} while (status == NO);

Metode komunikasi kedua adalah interrupt,interrupt adalah sinyal elektrik asinkronus


dari peripheral ke prosesor. Pada interrupt, prosesor memberikan tugas pada peripheral
seperti sebelumnnya, hanya saja, sekarang peripheral yang akan memberikan sinyal
pada prosesor apakah tugas sudah selesai atau belum. So perbedaannya dengan
polling adalah prosesor tidak terus menerus menanyakan status dari peripheral tapi
peripheral yang akan memberitahukan statusnya sekarang (menginterupsi prosesor).
Dengan metode interrupt, sementara menunggu peripheral menyelesaikan tugasnya,
prosesor dapat melakukan instruksi-instruksi lain.

Jika peripheral memberikan sinyal interupsi pada prosesor , maka prosesor akan
menyelesaikan instruksi yang sedang dikerjakannya sekarang, kemudian menyimpan
semua state pada instruksi yang sedang dikerjakannya saat ini, kemudian mengekskusi
suatu rutin yang dinamakan interrupt service routine (ISR) atau interrupt handler, anda
sebagai programmer embedded system yang akan membuat ISR ini. Saat ISR selesai,
maka prosesor kembali ke state sebelum interupsi. Kelebihan interrupt adalah interrupt
lebih menghemat resource dibandingkan polling, tapi kekurangannya adalah interrupt
memiliki jeda waktu (overhead) yang lebih lama dibanding polling.

Dalam prakteknya, polling dan interrupt sama-sama sering dipakai, polling untuk


periferal yang membutuhan kecepatan dan interrupt untuk efisiensi prosesor.

Mengenal databook/datasheet prosesor

Bagi anda-anda yang belum terbiasa dengan embedded system programming, anda
harus mulai mengenal makhluk satu ini, databook atau datasheet. Pada databook
semua data penting mengenai periferal dan prosesor akan diberikan. Tiap prosesor
akan berisi data yang berbeda sesuai arsitektur dari register dan instruction set. Semua
yang ingin kita ketahui pada prosesor dapat kita temui pada databook.
Diposkan oleh Adhiguna Mahendra,PhD di 01.42 

Label: arcom, arm, embedded linux, embedded
systems, gcc, microcontroller,mikrokontroller, mikroprosesor, prosesor, real time systems, sistem waktu
nyata, viper, viper lite

4 komentar:

Shirazi mengatakan...

Thanks for stopping by my blog and leaving comment on Braindumps. I do worry


about Braindumps bloght. How do you say dont worry?

6 Maret 2008 23.10

Ralph mengatakan...

I recently came across your blog and have been reading along. I thought I would
leave my first comment. I don't know what to say except that I have enjoyed
reading. Nice blog. I will keep visiting this blog very often.

Ruth

http://systemmemory.info

15 April 2009 20.25

Anonim mengatakan...

mengapa tidak:)

4 Januari 2010 11.18

Anonim mengatakan...

top [url=http://www.c-online-casino.co.uk/]casino games[/url] hinder the latest


[url=http://www.realcazinoz.com/]casino[/url] autonomous no store hand-out at the
leading [url=http://www.baywatchcasino.com/]casino 
[/url].

Anda mungkin juga menyukai