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 —

 


Aksi

Information

8 responses

14 03 2008
Dedy

Salam kenal mas, terus terang blognya sangat membantu.
Kalau saya ingin menanyakan tentang embedded sistem, lebih enak lewat blog atau lewat email. Karena tugas akhir saya berkaitan dengan embedded system.

14 03 2008
Andry Ongkinata

Kayanya enak lewat blog aja d… Jadi orang lain jg bisa tau…😀

10 04 2008
Dedy

Andry, kalo ecos untuk windows gimana cara bikin paket imagenya, build tree dan confignya coz saya udah install ecos untuk windows? Embedded saya CSB625 dengan micromonitor sebagai system boot platformnya,,

14 04 2008
Andry Ongkinata

Windows? Pake cygwin? Kemarin sih saya nyobainnya pake Linux… (Harusnya sama saja). Saya punya file pdf yang mungkin bisa membantu. Di sana juga dibahas pengembangan eCos pake Windows (cygwin). Klo berminat, bisa kirimin alamat e-mail ke andry_nkt@yahoo.com atau KPE05001@gmail.com nanti saya kirimkan filenya. Trim’s.

28 04 2008
sastrowijoyo

ndri, awak bingung nih ecos2nya

ga punya linux lagi,,, cygwinnya dapet dari mana sih?

6 06 2008
waskita

Saya coba perintah ini gak bisa:
i386-elf-gcc -I/include -c hello.c
Baru jalan setelah diubah menjadi
i386-elf-gcc -c -I/include -c hello.c

Kenapa ya ?

14 06 2008
Andry Ongkinata

Hmm… tampaknya merupakan salah satu anomali lg nih…

29 04 2009
Hans

gile… modul praktikum 3 awak nih… hahahaha

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 )

Gambar Twitter

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

Foto Facebook

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

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s




%d blogger menyukai ini: