Compiling and Installing an Application for the Compaq iPAQ

Typically you will develop and test applications in the X environment. Once you have the application working, you need to compile the application for the StrongARM processor. You then move your compiled application and any supporting files into the proper directory structure, create new CRAMFS files, and upload the CRAMFS files to the iPAQ.

Compiling an Application

  1. Change all library references to point to libraries compiled for the StrongARM processor. For example, you will probably want to point your makefile to the libraries in /usr/local/censoft/ipaq/strongarm/lib.

  2. Change all include references to point to files targeted toward the StrongARM processor. For example, you will prabably want to point your makefile to the file in /usr/local/censoft/ipaq/strangarm/include.

  3. Change C/C++ compilers to StrongARM compilers. For example, you can use arm-linux-gcc and arm-linux-g++ as your C and C++ compilers.

  4. Compile.

Installing an Application to Volatile RAM

Before committing your application to nonvolatile FlashRAM, you might want to load and test the application from volatile RAM.

  1. Establish a serial connection to your iPAQ.

  2. Login as root.

  3. Use XModem, ZModem, or any other file transfer method to load your application and any supporting files to /root or any other symbolic link into /mnt/ramfs.

  4. Launch your application

Installing an Application to FlashRAM

When you decide to permanently install your application on your iPAQ, you need to load the application into the nonvolatile FlashRAM.

  1. Load your application into the appropriate file structure. The Century Software iPAQ SDK provides the following structures:

    ~/filesystems/init
    ~/filesystems/root
    ~/filesystems/usr

    Where ~ represents the path to your filesystems, either the location where you installed a copy of the development tree, or /usr/local/censoft/ipaq if you are using the SDK's original filesystems.

    In most cases, you will want to load your applicaiton into the usr directory structure with some possible supporting files in the init structure. You can load files into the root structure, but that structure already takes up most of the allocated memory block on the FlashRAM. If root gets too large, it could interfere with other file structures.

  2. Build new CRAMFS files for the structures you have changed, following the instructions in the section called Make CRAMFS Files for the Filesystems.

  3. Upload any new CRAMFS files to the iPAQ, following the instructions in the section called Upoading Kernel and CRAMFS files to the iPAQ.

  4. Restart the iPAQ.