Forum: Digitale Signalverarbeitung / DSP / Machine Learning vorgehensweise bei der Portierung auf Blackfin


von Stefan R. (gloob)


Lesenswert?

Hallo.

Ich steh vor der Aufgabe eine Portierung von einer Windows Software, die 
in C++ geschrieben ist und openCV nutzt auf den Blackfin zu portieren, 
weiß aber leider überhaupt nicht wie ich vor gehen soll.

Gibt es etwas besonderes was man beachten muss? Wo soll ich am besten 
anfangen?

Ich freue mich über jeden Tipp

MfG

Stefan

von die ??? (Gast)


Lesenswert?

Quelltext angucken und in den Grundzügen verstehen. Es geht nicht darum 
alles bis ins kleinste zu verstehen (am Anfang). Dann das Ganze in 
VisualDSP++/.. bringen und gucken was geändert werden muss um es 
compilieren zu können. Meist werden in anderen Projekten Konstrukte 
verwendet die ein wenig angepasst werden müssen. Wenn das erledigt ist 
beginnt die Arbeit, das Optimieren. Die Win-Software wurde mit 
Sicherheit nicht auf Festkomma optimiert - und das sollte man aber auf 
einem Festkomma-DSP machen. Dazu bietet VDSP++ wohl eine 
Profiler-Funktion die dir aufzeigt, welche Funktionen am meisten 
Recources fressen - und das ist dein Ansatz. Software-Manual, 
Hardware-Manual, ... sind deine Pflichtlektüre. Und jetzt geht es darum 
die Funktionen sehr gut zu verstehen.

von Strubi (Gast)


Lesenswert?

Hi,

manchmal hat man Glueck mit nem Schnell-Schuss, dazu wuerde ich 
allerdings eher den Port auf Blackfin-uClinux evaluieren.
Ich glaube, die OpenCV hat schon jemand fuer den Blackfin portiert (also 
auch schon auf Fixkomma-Arithmetik umgeschrieben), am besten mal nach 
"opencv blackfin" googeln.

Von VDSP/VDK wuerde ich bei komplexen Projekten eher die Finger von 
lassen, das hat vor allem mit Entwicklungsdauer und Kompatibilitaeten, 
insbesondere der Qualitaet des Compilers zu tun.

Nachteil: uClinux frisst natuerlich einige Zyklen, bringt aber beim 
Debuggen und Programmieren komplexer Sachen (vielleicht will man ja die 
verarbeiteten Daten noch per Ethernet verschicken) deutliche Vorteile.

Wenn man dann die letzten Zyklen noch rauskitzeln muss, laesst sich 
fuers finale Produkt alles auch "standalone" (ohne Betriebssystem) 
portieren.
Klingt nach doppelter Arbeit, spart aber trotzdem meiner Erfahrung viel 
Zeit was debuggen angeht.

Gruss,

- Strubi

von Stefan R. (gloob)


Lesenswert?

Hi

Also danke mal für deinen schönen Beitrag.
Ich glaube ich habe mittlerweile halb Google durchforstet nach allen 
möglichen Begriffen in Zusammenhang von Blackfin und OpenCV und aber 
leider nicht ansatzweise etwas von einer Portierung gefunden, außer 
natürlich mittels uCLinux.

Das ganze soll allerdings komplett ohne uCLinux ablaufen, da ich hier 
eine selbst gefertigte Platine und alles habe.

Leider muss das ganze auch mittels VDSP passieren, da dass das einzige 
ist was hier wirklich genutzt wird.


Wenn du noch eine Tipp hast wo man vielleicht die Portierung auf den 
Blackfin finden könnte, von der du gesprochen hast wäre ich dir sehr, 
sehr, sehr dankbar, dass würde mir sehr viel Arbeit erleichtern.

MfG

Stefan

von Martin S. (strubi)


Lesenswert?

Hi,

Ich kennen den Code der OpenCV nicht, aber gehe mal davon aus, dass sie 
relativ betriebssystemunabhaengig ist. Und wenn nicht: ein kleiner 
Posix-Layer tut nicht weh.
Ich fuerchte allerdings, dass ohne uClinux und mit VDSP das ganze in 
sehr viel Portierungs-Arbeit ausartet. Soll's denn ein Produkt werden?


Gruss

- Strubi

von Stefan R. (gloob)


Lesenswert?

nein es soll eine freie bibliothek für den blackfin werden. also nix 
kommerzielles.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.