DSP56K(4) Linux-Programmierhandbuch DSP56K(4)

dsp56k - DSP56001-Schnittstelle

ÜBERSICHT

#include <asm/dsp56k.h>
ssize_t read(int fd, void *data, size_t length);
ssize_t write(int fd, void *data, size_t length);
int ioctl(int fd, DSP56K_UPLOAD, struct dsp56k_upload *program);
int ioctl(int fd, DSP56K_SET_TX_WSIZE, int wsize);
int ioctl(int fd, DSP56K_SET_RX_WSIZE, int wsize);
int ioctl(int fd, DSP56K_HOST_FLAGS, struct dsp56k_host_flags *flags);
int ioctl(int fd, DSP56K_HOST_CMD, int cmd);

Die dsp56k-Schnittstelle ist ein zeichenorientiertes Gerät mit der Major-Nummer 55 und der Minor-Nummer 0.

Der Motorola DSP56001 ist ein voll programmierbarer digitaler Signalprozessoer mit einer Wortbreite von 24 Bit, der in mit dem Atari Falcon030 kompatiblen Computern eingebaut ist. Die Gerätedatei dsp56k wird verwendet, um den DSP56001 zu steuern und über den bidirektionalen Handshake-Port Daten zu senden und zu empfangen.

Um einen Datenstrom an den Signalprozessor zu senden, rufen Sie write(2) für das Gerät auf; mit read(2) rufen Sie verarbeitete Daten ab. Die Daten können vom Wirtsrechner (Host) als Vielfache von 8, 16, 24, oder 32 Bit gesendet oder empfangen werden, der DSP56001 sieht aber immer Vielfache von 24 Bit.

Das dsp56-Gerät wird mit den folgenden ioctl(2)-Aufrufen gesteuert:

setzt den DSP56001 zurück und lädt ein Programm. Das dritte Argument von ioctl(2) muss ein Zeiger auf eine struct dsp56k_upload mit den Komponenten bin und len sein. Erstere weist auf ein DSP56001-Binärprogramm; letztere gibt die Programmlänge in 24-Bit-Wörtern an.
setzt die Wortgröße der an den DSP56001 zu übertragenden Daten in Bytes. Zulässige Werte liegen im Bereich von 1 bis 4. Diese Datenmengen werden entweder mit 0-Bytes aufgefüllt oder auf das native 24-Bit-Datenformat des DSP56001 gekürzt.
setzt die Wortgröße der vom DSP56001 zu empfangenden Daten in Bytes. Zulässige Werte liegen im Bereich von 1 bis 4. Diese Datenmengen werden entweder gekürzt oder mit einem NULL-Bytes ('\0') aufgefüllt, um sie an das native 24-Bit-Datenformat des DSP56001 anzupassen.
liest und schreibt die Host-Schalter (Flags). Das sind vier Allzweck-Bits, die sowohl vom Host als auch dem DSP56001 gelesen werden können. Die Bits 0 und 1 können vom Host geschrieben werden; die Bits 2 und 3 vom DSP56001.
Für den Zugriff auf die Host-Schalter muss das dritte Argument von ioctl(2) ein Zeiger auf eine struct dsp56k_host_flags sein. Ist Bit 0 oder 1 in der dir-Komponente gesetzt, wird das entsprechende Bit in out in die Host-Schalter geschrieben. Der Zustand aller Host-Schalter wird in den unteren vier Bits der status-Komponente zurückgegeben.
sendet einen Host-Befehl. Die zulässigen Werte liegen im Bereich von 0 bis 31. Sie werden vom auf dem DSP56001 laufenden Programm als benutzerdefinierter Befehl behandelt.

/dev/dsp56k

linux/include/asm-m68k/dsp56k.h, linux/drivers/char/dsp56k.c, http://dsp56k.nocrew.org/, DSP56000/DSP56001 Digital Signal Processor User's Manual

Diese Seite ist Teil der Veröffentlichung 5.13 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

22. März 2021 Linux