6

Ich habe eine beagleboard mit TMS320C64x + DSP. Ich arbeite an einer Bildbearbeitungs-Beagleboard-Anwendung. So wird es funktionieren:Beagleboard: Wie sende/empfange ich Daten zum/vom DSP?

  1. Der ARM liest ein Bild aus einer Datei und fügt das Bild in ein 2D-Array ein.
  2. Der Arm sendet die Matrix zum DSP. Der DSP empfängt die Matrix.
  3. Der DSP führt den Bildverarbeitungsalgorithmus in der empfangenen Matrix aus (der Algorithmuscode verwendet etwa 5 MB dynamisch zugewiesenen Speicher).
  4. Der DSP sendet das verarbeitete Bild (Matrix) zum ARM. Der Arm erhält die Matrix.
  5. Der Arm speichert das verarbeitete Bild in einer Datei.

Ich habe bereits den Code für Schritte 1,3,5 geschrieben. Was ist der einfachste Weg, die Schritte 3 + 4 (Senden der Daten) zu machen? Codebeispiele sind willkommen.

Antwort

3

Der einfachste Weg ist, gemeinsam genutzten Speicher zu verwenden:

Mit dem CMEM Kernelmodul ein Teil des Speichers auf dem ARM zuzuweisen, die von ARM und DSP zugegriffen werden kann. Übergeben Sie dann den Zeiger mit der DspBios NOTIFY-Komponente an den DSP.

Sobald der DSP mit der Verarbeitung fertig ist, können Sie den ARM über NOTIFY benachrichtigen.

Auf diese Weise müssen die Daten nicht vom ARM zum DSP oder umgekehrt kopiert werden. Sie müssen lediglich sicherstellen, dass die Daten von der CMEM-Komponente stammen. Dies stellt sicher, dass der Speicher zusammenhängend ist (der DSP kennt den ARM-Speichermanager nicht).

2

Shared Memory ist der richtige Ansatz, aber zu lernen, wie man es macht, kann ein Schmerz sein. Das C6Run-Tool kann die ARM/DSP-Kommunikation für Sie einfacher abstrahieren. Obwohl NOTIFY wirklich die richtige API ist, verwendet C6Run CMEM mit einer älteren API.

Wenn Sie C6Run auf dem BeagleBoard ausprobieren möchten, folgen Sie am einfachsten der instructions on the eLinux wiki for setting up C6Run for the ECE597 course given by Mark Yoder at Rose-Hulman. Diese Anweisungen hängen vom Ausführen des Angstrom-Demobilds ab (2). Eine stabile Version, die verwendet wurde, um die Funktionalität der Hardware zu demonstrieren, ist ebenfalls dokumentiert (3).

(2): www.angstrom-distribution.org/demo/beagleboard (3): code.google.com/p/beagleboard/wiki/BeagleBoardDiagnosticsNext

Verwandte Themen