Project

General

Profile

Software Development Kit

Using the Virtual Machine Image

  1. Download and install Virtual Box
    1. www.virtualbox.org/wiki/Downloads
  2. Import appliance MityCAM-CIS10XX SDK.ova.
    1. File->Import Appliance...
    2. Open Appliance...
    3. Browse to and select MityCAM-CIS10XX SDK.ova.
  3. If you have any problems importing the appliance or starting the Virtual Machine image once the appliance has been imported you may need to:
    1. Download additional Virtual Box packages.
      1. The Virtual Box application will tell you what you need to install.
    2. Generate a new MAC Address:
      1. Right click on the VM image and select Settings:
      2. Select Network and click Advanced to display the MAC Address.
      3. Click the green arrows to generate a new MAC Address:

Virtual Machine File System Layout

  • username: mitydsp, password: mitydsp
  • /home/mitydsp/projects contains the source for various Critical Link projects.
    • /home/mitydsp/projects/camera/CIS10XX contains source specific to the MityCAM-CIS10XX project.
    • /home/mitydsp/projects/linux-davinci contains source for the Linux kernel used for the MityCAM-CIS10XX project.
    • /home/mitydsp/projects/u-boot-mitydspl138 contains source for the U-Boot image used for the MityCAM-CIS10XX project.
  • /home/mitydsp/MDK_2012-08-10 contains source that the MityCAM-CIS10XX project is built against.
  • /home/mitydsp/.bashrc contains some environment setup.
    • Environment variables for the Xilinx 13.2 ISE are setup here.
    • Environment variables for the OMAP-L138 cross compiler toolchain are setup here.
  • /opt/Xilinx is the install directory for the Xilinx tools.
  • /opt/ti is the install directory for the Texas Instruments tools.
  • /usr/local/oecore-i686 is the install directory for the OMAP-L138 cross compiler toolchain.

MityCAM-CIS10XX File System Layout

  • /home/root/CamApp stores MityCAM-CIS10XX specific executables.
    • CamApp is the ARM executable.
    • CampApp.out is the DSP executable.
    • mitycam_scmos.bin is the file used to program the FPGA.
    • config.bin is a file containing configuration data for the MityCAM-CIS10XX.
  • /lib/modules/3.2.0/extra stores the various modules needed for the MityCAM-CIS10XX.
    • dsplinkk.ko allows for communication between the ARM and DSP.
    • fpga_ctrl.ko allows for programming the FPGA.
  • /etc/init.d stores startup scripts.
    • fpga loads the FPGA.
    • camapp starts the MityCAM-CIS10XX application.

MityCAM-CIS10XX Boot Sequence

  • /etc/init.d stores startup scripts which perform necessary initialization and start the MityCAM-CIS10X application.
  • There are two MityCAM-CIS10XX specific scripts to be aware of:
    • fpga runs first and loads the FPGA.
    • camapp runs after fpga and starts the MityCAM-CIS10XX application.

Building ARM Software

  1. Log onto the supplied Linux Virtual Machine (herein referred to as the VM).
    1. username: mitydsp, password: mitydsp
  2. The /home/mitydsp/.bashrc script will automatically run the environment setup script for the ARM 4.5.4 Toolchain.
    1. The following command can verify that this setup has completed properly:
      $ arm-angstrom-linux-gnueabi-gcc -v
      
    2. This should print the version information for GCC.
      $ arm-angstrom-linux-gnueabi-gcc -v
      Using built-in specs.
      COLLECT_GCC=arm-angstrom-linux-gnueabi-gcc
      COLLECT_LTO_WRAPPER=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.5.4/lto-wrapper
      Target: arm-angstrom-linux-gnueabi
      Configured with: /export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/work-shared/gcc-4.5-r46+svnr181733/gcc-4_5-branch/configure --build=i686-linux --host=i686-angstromsdk-linux --target=arm-angstrom-linux-gnueabi --prefix=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr --exec_prefix=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr --bindir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/bin/armv5te-angstrom-linux-gnueabi --sbindir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/bin/armv5te-angstrom-linux-gnueabi --libexecdir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/libexec/armv5te-angstrom-linux-gnueabi --datadir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/share --sysconfdir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/etc --sharedstatedir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/com --localstatedir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/var --libdir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/lib/armv5te-angstrom-linux-gnueabi --includedir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/include --oldincludedir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/include --infodir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/share/info --mandir=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-nativesdk-angstromsdk-linux --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-angstrom-linux-gnueabi- --enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap --with-linker-hash-style=gnu --with-ppl=no --with-cloog=no --enable-cheaders=c_global --with-float=soft --with-local-prefix=/usr/local/oecore-i686/sysroots/armv5te-angstrom-linux-gnueabi/usr --with-gxx-include-dir=/usr/local/oecore-i686/sysroots/armv5te-angstrom-linux-gnueabi/usr/include/c++ --with-build-time-tools=/export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/arm-angstrom-linux-gnueabi/bin --with-sysroot=/usr/local/oecore-i686/sysroots/armv5te-angstrom-linux-gnueabi --with-build-sysroot=/export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/mityomapl138 --disable-libunwind-exceptions --disable-libssp --disable-libgomp --disable-libmudflap --with-mpfr=/export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-nativesdk-angstromsdk-linux --with-mpc=/export/space/oe/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-nativesdk-angstromsdk-linux --enable-nls --enable-__cxa_atexit
      Thread model: posix
      gcc version 4.5.4 20111126 (prerelease) (GCC)
      
  3. In order to build the ARM application, on your VM, change directory as follows:
    $ cd /home/mitydsp/projects/camera/CIS10XX/sw/ARM/CamApp
    
  4. Then execute the make command:
    $ make
    
  5. This will produce an executable /home/mitydsp/projects/camera/CIS10XX/sw/ARM/CamApp/CamApp that can be loaded onto the MityCAM-CIS10XX unit.
  6. To load the ARM executable first you must make sure the CamApp application is not running by executing the following command on the MityCAM-CIS10XX unit:
    # killall CamApp
    
  7. Once the CamApp application has been killed, running the following commands on your VM will secure copy the ARM executable onto the MityCAM-CIS10XX unit:
    $ cd /home/mitydsp/projects/camera/CIS10XX/sw/ARM/CamApp
    $ scp CamApp root@{your_units_ip_goes_here}:~/CamApp
    
  8. After you restart the MityCAM-CIS10XX unit it will boot up running the new executable.

Building DSP Software

  1. Start Code Composer Studio V5 by either:
    1. Double clicking the icon on the desktop.
    2. Or selecting selecting it from the Applications drop down menu.
  2. Select Workspace /home/mitydsp/workspace_v5_1
  3. The project CamApp should already be imported into this workspace
    1. If it is not select File->Import->Existing CCS/CCE Eclipse Projects.
    2. Set the search-directory as /home/mitydsp/projects/camera/CIS10XX/sw/DSP/CamApp and click the Finish button.
  4. Right click on the project and select Build Project.
    1. This should create the DSP executable file CamApp.out in /home/mitydsp/projects/camera/CIS10XX/sw/DSP/CamApp/Debug, which can loaded onto the MityCAM-CIS10XX unit.
  5. Running the following commands on your VM will secure copy the DSP executable onto the MityCAM-CIS10XX unit:
    $ cd /home/mitydsp/projects/camera/CIS10XX/sw/DSP/CamApp
    $ scp Debug/CamApp.out root@{your_units_ip_goes_here}:~/CamApp
    
  6. After you restart the MityCAM-CIS10XX unit it will boot up running the new executable.

Building FPGA Software

  1. The ~/.bashrc script will automatically run the environment setup script for Xilinx 13.2 ISE.
    1. Use the following command to open the ISE from a VM terminal:
      $ ise
      
  2. The ISE will prompt you for a license.
    1. If needed you can obtain a WebPACK license from Xilinx free of charge. This will allow you to build the FPGA software for this project.
  3. The MityCAM-CIS10XX FPGA project should load upon starting the ISE.
    1. If it does not select File->Open Project and select file /home/mitydsp/projects/camera/CIS10XX/hw/fpga/build/mitycam_scmos.xise
  4. In the Hierarchy pane select mitycam_scmos_top - rtl (mitycam_scmos_top.vhd)
  5. In the Processes pane double click Generate Programming File to generate compiled .bit file.
  6. Once compilation has finished you will need to generate the .bin file using the following commands in a terminal in your VM:
    $ cd /home/mitydsp/projects/camera/CIS10XX/hw/fpga/build
    $ ./bit2bin.sh
    
  7. Running the following commands on your VM will secure copy the FPGA .bin file onto the MityCAM-CIS10XX unit:
    $ cd /home/mitydsp/projects/camera/CIS10XX/hw/fpga/build
    $ scp mitycam_scmos.bin root@{your_units_ip_goes_here}:~/CamApp
    
  8. After you restart the MityCAM-CIS10XX unit it will boot up using the new FPGA build.

Go to top
Add picture from clipboard (Maximum size: 600 MB)