Ausarbeitung


Einrichtung der Entwicklungsumgebung

Wir haben die Entwicklungsumgebung unter Virtual Box installiert.
Virtual Box kann unter kostenlos unter https://www.virtualbox.org/ gedownloadet werden.
Eine Installation ohne Virtual Box ist auch möglich und kann
via Bootloader extra zu dem bisherigen Betriebssystem installiert werden.

Das benötigte Image von Ubuntu Linux 12.04 lts kann auch kostenlos unter
http://www.ubuntu.com/ heruntergeladen werden. Nach der Installation
des Betriebssystems beginnt die Einrichtung...

Yocto Environment
für die komplette Installation muss eine Internetverbindung zur Verfügung stehen.
Wichtig Syntax ist kursiv geschrieben!!!

  1. Terminal öffnen (mit Windows-Taste Menü öffnen, danach suche nach Terminal)
  2. Ordner "bin" erstellen
    #mkdir ~/bin
  3. Installation der benötigten Tools
    #sudo apt-get install rpm build-essential g++ diffstat texinfo chrpath gawk curl wget unzip
    #sudo apt-get install libsdl1.2-dev xterm (graphics support and eclipse plugin extras)
    #sudo apt-get install xsltproc docbook-utils fop dblatex xmlto (documentation)
    #sudo apt-get install autoconf automake libtool libglib2.0-dev (ADT installer extras)
    #sudo apt-get update

    Falls ein Error auftritt:
    sudo rm -rf /var/cache/debconf/*
    sudo apt-get install -f
  4. Download von repo
    #curl http://commondatastorage.googleapis.com/git-repo-download/repo >~/bin/repo (you should see a repo file in home/bin)
    #chmod a+x ~/bin/repo
  5. Setup
    #PATH=${PATH}:~/bin
    #sudo apt-get install git-core
    #sudo apt-get update
    #mkdir ~/ventana-yocto
    #cd ventana-yocto
    #repo init -u https://github.com/Gateworks/gateworks-yocto-bsp-platform -b danny(you have to enter username and email-not important. After this you should be able to see: "repo has been initialized in /home/your_pc_id/ventana-yocto"
  6. Update auf die neuste Version
    #repo sync
  7. Aktivieren von Bitbake
    #gksudo gedit /etc/apt/sources.list
  8. In die letzte Zeile muss "deb http://us.archive.ubuntu.com/ubuntu precise main universe" eingefügt werden.
    #sudo apt-get update
    #sudo apt-get install bitbake
  9. Nach /ventana-yocto/setup-environment suchen, Rechtsklick->properties->permissions->allow executing files as program
    #chmod +x setup-environment
  10. Aktuelles Verzeichnis venatana-yocto
    #. ./setup-environment build
  11. Die Ausgabe sollte so aussehen:
    -------------------------------------------------------
    you can now run 'bitbake <target>'

    Common targets are:
    core-image-minimal
    gateworks-image-minimal
    gateworks-image-test
    gateworks-image-multimedia
    meta-toolchain
    meta-toolchain-sdk
    adt-installer
    meta-ide-support

    Your build environemnt has been configured with:

    MACHINE=ventana
    PACKAGING=
    SDKMACHINE=i686
    DISTRO=poky
    EULA=1
    ----------------------------------------------------------
  12. Mit dem Texteditor das File /ventana-yocto/build/conf/local.conf öffnen und folgende Zeilen ergänzen:
    EXTRA_IMAGE_FEATURE = "debug-tweaks tools-sdk tools-debug eclipse-debug"
    BB_NUMBER_THREADS ='4'| (if you have 2 cores)
    PARALLEL_MAKE= '-j 4' (if you have 2 cores)
    DL_DIR ?= "${BSPDIR}/downloads/"
  13. System bauen
    #bitbake gateworks-image-multimedia
    #bitbake meta-toolchain (wird nicht unbedingt benötigt)
    #bitbake -cpopulate_sdk gateworks-image-multimedia (wird nicht unbedingt benötigt)

 Installation von Eclipse

Folgende Archive müssen auf dem Rechner entpackt werden.

eclipse-cpp-kepler.....tar.gz - Zu finden unter http://www.eclipse.org/
ilg.gnuarmeclipse.repo...zip - Zu finden unter http://gnuarmeclipse.livius.net/

  1. Eclipse starten
  2. Workbench auswählen und danach "Install New Software" unter dem "Help" Pull-Down-Menü auswählen.
  3. Auswahl von http://download.eclipse.org/releases/kepler unter "Work with" Pull-Donw-Menü
  4. "Linux Tools"-Box erweitern und LTTng - Linux Tracing Toolkit auswählen.
  5. "Mobile and Device Development" erweitern und folgende Pakete auswählen:
    -C/C++ Remote Launch (Requires RSE Remote System Explorer)
    -Remote System Explorer End-user Runtime
    -Remote System Explorer User Actions
    -Target Management Terminal
    -TCF Remote System Explorer add-in
    -TCF Target Explorer
  6. "Programming Languages" auswählen und C/C++ Autotools Support und C/C++ Development Tools anwählen.
  7. Installation fertigstellen und Eclipse IDE neustarten.
  8. Workbench auswählen und danach "Install New Software" unter dem "Help" Pull-Down-Menü auswählen.
  9. "add" danach "local" auswählen und dann das entpackte "ilg.gnuarmeclipse.repo...zip" anwählen.
  10. "GNU ARM C/C++...." aufklappen und alles auswählen.
  11. Installation fertigstellen und Eclipse IDE neustarten.

 

Quellcode Erweiterung
Um die Modifikationen auswerten zu können, wurde ein Benchmark-Programm implementiert. Es gibt die benötigte Zeit
aus, die für das Abarbeiten einer Funktion oder mehrerer Funktionsblöcken benötigt wird.

Bsp. aus Quellcode:

static void cvtColor(Mat& src, Mat& dst, int code)
{
timespec time_start, time_end; float timediff;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&time_start);
if(code==CV_BGR5652GRAY)
{
//dst.st = (ptr_t*)malloc(src.h*src.w);
//dst.st->sp = (unsigned short*)malloc(src.h*src.w);
dst.h =src.h; dst.w=src.w; dst.len=(src.len/2);
unsigned char *d=(unsigned char*)dst.st;
unsigned short *r=(unsigned short*)src.st;
for(int i=0;i<src.h*src.w;i++){
*d++= (((*r & 0xF800)>> 11)*0.299 + ((*r & 0x7E0)>> 5)*0.587 +((*r & 0x1F))*0.114);
// *d++=((*r & 0x7E0)>> 5);
r++;
}

}
clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&time_end);
if(proctime_entry_cvtColor<30){
timediff=1000000.*(time_end.tv_sec-time_start.tv_sec)+(time_end.tv_nsec-time_start.tv_nsec)/1000.;
FILE *f;
f = fopen("/usr/bin/proctime/proctime_cvtColor_us.txt", "a");
fprintf(f, "%g\n", (float)timediff);
proctime_entry_cvtColor++;
fclose(f);
if(proctime_entry_cvtColor==29) fprintf(f,"sample1");
}
}






Auswertung:

Im Single Channel-Modus konnte die cvtcolor-Funktion um 52% in der Performance gesteigert werden. Im Multi-Cannel Modus liegt
die Performanceverbesserung bei 24%.