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.

Saturday, April 30, 2011

Xilinx ISE WebPack on Slackware64

(breaking news) Slackware64-13.37 has been released! Thank's to Pat, Eric, and other maintainers for making this version available.

For a long time, I have struggled with errors on the installation of  Xilinx ISE WebPack on Slackware64 because I want make Slackware64 not only for doing my "office work", but also as the environment for all development software related to my work. So far, I can make design and draw PCB artwork on Slackware64 using gEDA and pcb. Also, I am able to compile and use gcc cross-compilers for AVR and ARM-based embedded systems. However, if I want to develop "some hardware" on FPGA using Verilog HDL, I must switch to other OS that I really don't like it. Finally, I can install Xilinx ISE WebPack on Slackware64. Thank's to Philip Pemberton that has written the solution on Ubuntu 64-bit version.

The installation problem occurs only when you try to install it on 64-bit version of Linux. I have tried it on Slackware64 and Ubuntu 64-bit version, all trials are failed. The solution is just install 32-bit version of Xilinx ISE on Slackware64. By Philip's reference, here is the step of installation:
  • Download the Xilinx ISE (any latest Linux version or complete version) and extract the installer.
  • Enter the installer directory.
  • Install it with this command (must be root): linux32 ./xsetup
  • Follow the instructions.
  • Enter the installation directory (if you don't change the default, it should be /opt/Xilinx/[ISE_version]
  • Create a script: startise.sh (if you use vim, just type: vim startise.sh)
  • Put a few lines below on the script (in my case, I install Xilinx ISE 13.1. If you use different release number, just change the "13.1" to the correct one):

    #!/bin/bash
    source /opt/Xilinx/13.1/ISE_DS/settings32.sh /opt/Xilinx/13.1/ISE_DS/
    ise

  • Don't forget to make it executable: chmod +x startise.sh
  • Execute the script to start Xilinx ISE.

Here is the screenshot of Xilinx ISE on Slackware64 inside my laptop:




    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: