"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":