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!!!
- Terminal öffnen (mit Windows-Taste Menü öffnen, danach suche nach
Terminal)
- Ordner "bin" erstellen
#mkdir ~/bin
- 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
- 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
- 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"
- Update auf die neuste Version
#repo sync
- Aktivieren von Bitbake
#gksudo gedit /etc/apt/sources.list
- 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
- Nach /ventana-yocto/setup-environment suchen,
Rechtsklick->properties->permissions->allow executing files as program
#chmod +x setup-environment
- Aktuelles Verzeichnis venatana-yocto
#. ./setup-environment
build
- 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
----------------------------------------------------------
- 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/"
- 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/
- Eclipse starten
- Workbench auswählen und danach "Install New Software" unter dem
"Help" Pull-Down-Menü auswählen.
- Auswahl von http://download.eclipse.org/releases/kepler unter "Work
with" Pull-Donw-Menü
- "Linux Tools"-Box erweitern und LTTng - Linux Tracing Toolkit
auswählen.
- "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
- "Programming Languages" auswählen und C/C++ Autotools Support und
C/C++ Development Tools anwählen.
- Installation fertigstellen und Eclipse IDE neustarten.
- Workbench auswählen und danach "Install New Software" unter dem
"Help" Pull-Down-Menü auswählen.
- "add" danach "local" auswählen und dann das entpackte
"ilg.gnuarmeclipse.repo...zip" anwählen.
- "GNU ARM C/C++...." aufklappen und alles auswählen.
- 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%.