Hello World pada eCos

21 01 2008

 

 

eCos Hello World!

Building Kernel dan Paket

Pada paket eCos untuk Linux, tersedia dua perangkat dalam membangun sistem operasi eCos, yaitu ecosconfig dengan tampilan text-based dan configtool dengan tampilan GUI. Pada perancangan ini digunakan ecosconfig untuk membuat template eCos dan membuat build tree dari konfigurasi eCos, sedangkan configtool hanya digunakan untuk melakukan konfigurasi.

Proses build eCos

Proses membangun kernel dan paket dimulai dengan memilih template yang sesuai dengan target hardware. Pada percobaan kali ini, dipilih template default yang memasukkan semua paket standard untuk platform i386pc.

 

Perintah
untuk membuat template tersebut adalah :

$ ecosconfig new pc default

 

Argumen “new” menginstruksikan ecosconfig untuk membentuk sebuah konfigurasi baru. Argumen “pc” menunjukkan bahwa target hardware yang digunakan adalah i386pc, dan argumen “default” menunjukkan bahwa semua paket standard yang tersedia pada template akan dimasukkan dalam file konfigurasi.

 

Perintah ini akan menghasilkan sebuah file konfigurasi “ecos.ecc”. File ini merupakan file konfigurasi dari eCos.

Untuk edit konfigurasi tersebut, digunakan perintah:

$ configtool ecos.ecc

 

Perintah tersebut akan membuka window GUI untuk konfigurasi eCos.
Tampilan window dari konfigurasi ini:

Tampilan konfigurasi eCos

Di bawah ini adalah beberapa konfigurasi eCos yang diubah dari template default yang digunakan.

 

  • eCos HAL –> i386
    architecture
    –> i386 PC target –> Startup Type

 

Opsi ini digunakan untuk mengatur bagaimana PC akan melakukan booting ke eCos. Boot loader yang akan digunakan adalah GRand Unified Boot loader (GRUB), jadi opsi ini diisi dengan nilai “GRUB”.

 

  • eCos HAL –> i386
    architecture
    –> i386 PC target –> Number of communication channels

 

Opsi ini digunakan untuk menentukan jumlah serial port yang dimiliki PC. Pada percobaan kali ini dipilih opsi 3 karena digunakan juga port serial ketiga yang merupakan virtual serial port (PC Screen).

 

  • eCos HAL –> i386
    architecture
    –> i386 PC target –> Diagnostic Serial Port

 

Opsi ini digunakan untuk
mengatur bagaimana PC akan menampilkan diagnosa dari program, misalnya output dari fungsi
printf(). Pada percobaan kali ini dipilih opsi 2 yang dalam hal ini menunjuk ke virtual serial port. Virtual serial port di sini adalah PC Screen. Untuk keterangan port ke berapa yang terhubung dengan port serial atau virtual serial, dapat dilihat pada keterangan dari sel “Number of communication channels”.

 

  • eCos HAL –> i386
    architecture
    –> i386 PC target –> Output to PC Screen

 

Secara default eCos akan menggunakan serial port untuk mengirimkan output seperti output dari printf(). Untuk membuat agar eCos menggunakan monitor untuk menampilkan output, opsi ini harus dibuat aktif.

 

Setelah selesai konfigurasi, file “ecos.ecc” disimpan kembali dan selanjutnya dibuat build tree dengan menggunakan ecosconfig, yaitu dengan perintah :

$ ecosconfig tree

 

Langkah berikutnya, dibuat library eCos dengan menggunakan perintah :

$ make

 

Hasilnya adalah static library pada subdirektori “install/lib” yang siap di-link dengan aplikasi untuk menjadi file image.

 

Pembuatan File Image

File image yang dibuat nanti akan di load melalui proses boot (native). Pertama dilakukan proses compile terlebih dahulu hingga diperoleh object file dari source code yang kita buat. Source code yang dibuat:

hello.c

 

Untuk meng-compile file hello.c menjadi hello.o digunakan perintah:

i386-elf-gcc -I<dir>/include -c hello.c

<dir> di sini merupakan alamat direktori tempat file header yang dibutuhkan untuk proses compile berada. Pada percobaan, file tersebut berada di direktori /home/lss/install/include/, maka perintah yang dijalankan:

i386-elf-gcc -I/home/lss/install/include -c hello.c

 

Setelah source code yang diperlukan di-compile menjadi object file, selanjutnya semua
object code di-link, termasuk dengan library eCos yang sudah di-build
sebelumnya. Perintah yang digunakan adalah :

i386-elf-gcc -o hello.elf -L<dir>/lib hello.o -Ttarget.ld -nostdlib

<dir> di sini merupakan alamat direktori tempat library eCos. Pada percobaan, file tersebut berada di direktori /home/lss/install/lib/, maka perintah yang digunakan adalah:

i386-elf-gcc -o hello.elf -L/home/lss/install/lib hello.o -Ttarget.ld -nostdlib

Hasil dari proses linking ini, “hello.elf”, merupakan file executable dengan format Executable and Linkable File (ELF).

 

Karena pada percobaan kali ini digunakan GRUB sebagai boot loader dari eCos, maka file “hello.elf” tadi diletakkan di dalam direktori /boot/. Langkah berikutnya adalah menambahkan baris berikut pada file menu.lst yang terdapat
dalam direktori /boot/grub/:

title eCos sakti
root (hd0,4)
kernel /boot/hello.elf
boot

Setelah itu dilakukan proses reboot pada PC yang digunakan.

 

Hasil Implementasi

Tampilan pada saat proses boot:

GRUB

Kemudian dipilih opsi “eCos sakti” pada menu boot loader (GRUB) yang tampil untuk melakukan
proses booting ke eCos.

 

Output setelah proses booting ke eCos:

Output eCos

 

NB: Percobaan dilakukan dengan menggunakan distro Linux Ubuntu 7.10 (Gutsy Gibbon).

 

Semoga tulisan ini dapat bermanfaat bagi orang lain yang ingin mencoba eCos ^^

Selamat Mencoba…

— Learning by doing, you do you understand —

 





Kenapa harus real-time?

19 01 2008

Real-time system adalah sistem yang memiliki time-constraint, di mana kebenaran dari suatu operasi tidak hanya bergantung pada kebenaran secara logika, tetapi juga pada waktu ketika operasi tersebut dilakukan. Dengan kata lain real-time system adalah sistem yang memiliki jadwal yang harus ditepati.

Sistem tersebut disebut hard real-time system apabila operasi yang selesai setelah deadline mengakibatkan kegagalan pada sistem. Sedangkan pada soft real-time system, keterlambatan dapat ditoleransi, hanya saja menghasilkan kualitas kerja yang lebih rendah. Jadi, kira-kira mengapa harus real-time? 8)





Sistem Embedded

19 01 2008

Sistem embedded (embedded system) adalah sebuah sistem komputer yang digunakan untuk tujuan khusus, yang secara lengkap dienkapsulasi oleh perangkat yang dikendalikannya dimana dibangun atas dasar kebutuhan spesifik dan menjalankan proses yang telah didefinisikan terlebih dahulu.

Apa perbedaan sistem embedded dengan PC (Personal Computer) yang sering kita gunakan? PC merupakan suatu platform untuk melakukan komputasi generik, sedangkan sistem embedded digunakan untuk tujuan khusus.

Sistem embedded biasanya menyimpan program di ROM dan sistem operasi yang digunakan untuk sistem embedded biasanya adalah real-time operating system (RTOS). Sistem embedded memiliki sifat cost-sensitive, time-constraint, dan power-constraint. Dampak kegagalan software pada sistem embedded lebih fatal dibandingkan pada sistem desktop.

8051 generic board





Kesuksesan adalah …

19 01 2008

Tahukah Anda apa yang ada dibalik kesuksesan orang-orang besar? Pernah membaca biografi mereka? Tidak pernah ada keberhasilan yang muncul tanpa kegagalan. Semua kisah di balik kesuksesan pasti terdapat kegagalan. Yang membedakan kesuksesan atau keberhasilan adalah bagaimana seseorang menghadapi kegagalan tersebut.

How we deal with failure

Percaya atau tidak, hal ini adalah salah satu kunci utama untuk meraih kesuksesan.

Pesan Sponsor:
Jangan cepat menyerah dan putus asa jika Anda menghadapi kegagalan ^^v