Software Development Kit¶
Using the Virtual Machine Image¶
- Download and install Virtual Box
- Import appliance MityCAM-CIS10XX SDK.ova.
- File->Import Appliance...
- Open Appliance...
- Browse to and select MityCAM-CIS10XX SDK.ova.
- If you have any problems importing the appliance or starting the Virtual Machine image once the appliance has been imported you may need to:
- Download additional Virtual Box packages.
- The Virtual Box application will tell you what you need to install.
- Generate a new MAC Address:
- Right click on the VM image and select Settings:
- Select Network and click Advanced to display the MAC Address.
- Click the green arrows to generate a new MAC Address:
- Right click on the VM image and select Settings:
- Download additional Virtual Box packages.
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¶
- Log onto the supplied Linux Virtual Machine (herein referred to as the VM).
- username: mitydsp, password: mitydsp
- The /home/mitydsp/.bashrc script will automatically run the environment setup script for the ARM 4.5.4 Toolchain.
- The following command can verify that this setup has completed properly:
$ arm-angstrom-linux-gnueabi-gcc -v
- 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)
- The following command can verify that this setup has completed properly:
- In order to build the ARM application, on your VM, change directory as follows:
$ cd /home/mitydsp/projects/camera/CIS10XX/sw/ARM/CamApp
- Then execute the make command:
$ make
- This will produce an executable /home/mitydsp/projects/camera/CIS10XX/sw/ARM/CamApp/CamApp that can be loaded onto the MityCAM-CIS10XX unit.
- 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
- 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
- After you restart the MityCAM-CIS10XX unit it will boot up running the new executable.
Building DSP Software¶
- Start Code Composer Studio V5 by either:
- Double clicking the icon on the desktop.
- Or selecting selecting it from the Applications drop down menu.
- Double clicking the icon on the desktop.
- Select Workspace /home/mitydsp/workspace_v5_1
- The project CamApp should already be imported into this workspace
- If it is not select File->Import->Existing CCS/CCE Eclipse Projects.
- Set the search-directory as /home/mitydsp/projects/camera/CIS10XX/sw/DSP/CamApp and click the Finish button.
- Right click on the project and select Build Project.
- 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.
- 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
- After you restart the MityCAM-CIS10XX unit it will boot up running the new executable.
Building FPGA Software¶
- The ~/.bashrc script will automatically run the environment setup script for Xilinx 13.2 ISE.
- Use the following command to open the ISE from a VM terminal:
$ ise
- Use the following command to open the ISE from a VM terminal:
- The ISE will prompt you for a license.
- 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.
- The MityCAM-CIS10XX FPGA project should load upon starting the ISE.
- If it does not select File->Open Project and select file /home/mitydsp/projects/camera/CIS10XX/hw/fpga/build/mitycam_scmos.xise
- In the Hierarchy pane select mitycam_scmos_top - rtl (mitycam_scmos_top.vhd)
- In the Processes pane double click Generate Programming File to generate compiled .bit file.
- 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
- 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
- After you restart the MityCAM-CIS10XX unit it will boot up using the new FPGA build.
Go to top