Installing and Running XXICC rev 0.0q

Version 4

    This document describes how to install and run XXICC on your computer, either by compiling XXICC source code or installing binaries.


    This is revision 0.0q, which adds the -rpio2 option for Raspberry Pi 2 and makes minor changes to Section 6.


    For more information on XXICC and GalaxC, see the ’blog post XXICC (21st Century Co-design) release 0.0q and XXICC's home page:

    install00q.pdf has instructions for installing XXICC for all versions (GNU/Linux and Windows) and for all purposes.  This means finding all the steps you need for a particular platform can be a little involved.  Here are the specific steps for installing XXICC and Flavia on a 32-bit GNU/Linux machine that uses an FTDI FT2232H or FT232H USB serial IC as a JTAG controller.


    1. Create a directory for XXICC.  You can call it anything you want, but the instructions assume you have called it XXICC and it’s in your home directory.

      cd ~
      mkdir XXICC

    2. Change to your XXICC directory:  cd ~/XXICC

    3. Download the XXICC source code into your XXICC directory and unzip it:


    4. Before compiling XXICC, you need to install the libxft developer’s libraries:

      sudo apt-get update
      sudo apt-get install libxft-dev

    5. Make a subdirectory for XXICC object code:  mkdir xxicc.od

    6. Compile XXICC’s C files:  make T=XGL

      This should create the XXICC executable xxicc.

    7. Install, which XXICC needs to talk to an FTDI FT2232D/H or FT232H USB serial IC:

      sudo apt-get install libftdi1

      This installs  However, XXICC needs it to be named, so you must add a symbolic link in /usr/lib/arm-linux-gnueabihf (or similar /usr/lib subdirectory):

      cd /usr/lib/arm-linux-gnueabihf
      sudo ln -s
      cd ~/XXICC

    8. Compile XXICC’s GalaxC source code, including the files needed for Flavia:

      ./xxicc fla

      XXICC will compile the GalaxC files and link in  If the library is not present, you will get an error message.  Review Step 7 and/or install00q.pdf to see how to deal with this.

      When XXICC finishes compiling, it should bring up a file selection dialog.  For now, close the dialog and
      xxicc terminates.  The next time you run xxicc it will load object code and come up in less than a second.

    9. Before you use JTAG, download 85-ftdi.rules (udev rules file for FTDI FT2232D/H, FT232H, and Papilio DUO) and copy it (using sudo) to /etc/udev/rules.d 85-ftdi.rules sets permissions so that XXICC can talk to FTDI serial devices without having to run as superuser.  85-ftdi.rules takes effect when you reboot or you can reload udev rules with the command:

      sudo udevadm control --reload

      85-ftdi.rules requires that you are a member of the dialout group.  See if you’re in dialout by giving the groups command.  If you’re not in dialout, give the command:

      sudo adduser <userid> dialout

      You will need to log out and log back in again for the change to take effect.


    That should do it!  Please comment if you have any questions or helpful suggestions.