Note for English Readers

If I write the articles in Indonesian, I will write a summary in English so that you can read my articles too. After you read the summary and you feel that you need more information about that, please do not hesitate to contact me via e-mail that can be found in my profile.

Thank you for reading my blogs.

Thursday, April 21, 2011

myPhone @ES6192

"myPhone @ES6192" is my final assignment on ES6192 course (Embedded Operating Systems). I worked on this assignment together with my partner, Rahmady. This assignment simulates a phone dialer. We had to develop device drivers and application software that could be performed on ARM-based Embedded System with Linux as its operating system.

We developed device drivers for simple I/O on the board: 4 LEDs, 7's Segment LED displays, and 4x4 keyboard. For LCD screen, we use framebuffer driver that has already built on the kernel. The keyboard driver can handle interrupt, also, use tasklet, work queue, and  FIFO circular buffer to manage the data.

The application software is multithreaded; it has 6 threads (excluding main thread) for handling all processes such as manipulating I/O devices (4 threads), updating clock (1 thread), and controlling whole system by setting the operating modes based on user’s input (1 thread). For managing shared data, we use semaphores. 

Modes on “myPhone @ES6192”:

  • display clock mode or cancel key on phone dialer and off-hook mode by pressing “C” key
  • adjust clock mode by pressing “D” key
  • phone dialer mode by pressing “E” key
  • off-/on-hook by pressing “F” key (toggled)
  • backspace key on adjust clock and phone dialer mode by pressing “A” key

Structure of "myPhone @ES6192":

Video demo:

1 comment:

QuixoticSlacker said...

Hey, I am chekkizhar. Got your page from Willy's page.
Your blog is great.
It will be great, if there is an option to save your blog entry as pdf.
I am also in Embedded field and I hope I can use some tricks and ideas from you .