| | |
dsp56k - Périphérique d'interface DSP 56001.
#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);
Le DSP 56001 est un périphérique de type caractère, ayant
un numéro majeur valant 55 et un mineur 0.
Le DSP 56001 Motorola
est un processeur de signal numérique 24 bits entièrement programmable,
que l'on trouve dans les ordinateurs compatibles avec l'Atai Falcon 030. Le
fichier spécial dsp56k sert à commander le DSP 56001, pour envoyer ou recevoir
des signaux sur le port hôte.
Pour envoyer un flux de signal vers le processeur,
utilisez write() sur le périphérique, et pour en recevoir utilisez read().
Les données peuvent être émises ou reçues par blocs de 8, 16, 24 ou 32
bits du côté hôte, mais seront toujours vues comme des blocs de 24 bits
du côté du DSP 56001.
Les appels ioctl(2)
suivants permettent de commander
le périphérique dsp56k :
- DSP56K_UPLOAD
- réinitialise le DSP 56001 et télécharge
un programme. Le troisième arguments de l'appel ioctl() doit être un pointeur
sur une struct dsp56k_binary dont le champ bin pointe sur un programme
DSP 56001 binaire. Le champ len doit contenir la longueur du programme en
mots de 24 bits.
- DSP56K_SET_TX_WSIZE
- configure la taille des mots émis. Les
valeurs autorisées se trouvent dans l'intervalle 1 à 4, correspondant au
nombre d'octets envoyés à la fois. Ces données seront soit complètées avec
des zéros, soit tronquées pour s'aligner sur le format natif 24 bits du
DSP 56001.
- DSP56K_SET_RX_WSIZE
- configure la taille des mots reçus. Les valeurs
autorisées se trouvent dans l'intervalle 1 à 4, correspondant au nombre
d'octets reçus en une fois. Ces données seront soit complètées avec des zéros,
soit tronquées pour s'aligner sur le format natif 24 bits du DSP 56001.
- DSP56K_HOST_FLAGS
- Lire
ou écrire les attributs d'hôte. Ces attributs sont représentés par 4 bits
à usage généraux qui peuvent être lus aussi bien par l'ordinateur hôte que
par le DSP 56001. Les bits 0 et 1 peuvent être fixés par l'hôte, et les bits
2 et 3 peuvent être écrits par le DSP 56001.
Pour accéder aux attributs
d'hôte, le troisième argument de l'appel ioctl() doit être un pointeur sur
une struct dsp56k_host_flags. Si les bits 0 ou 1 sont à 1 dans le champ
dir, Le bit correspondant de out sera écrit dans les attributs d'hôte. L'état
des attributs d'hôte sera renvoyé dans les quatre bits de poids faible du
membre status.
- DSP56K_HOST_CMD
- envoie une commande d'hôte. Les valeurs autorisés
sont dans l'intervalle 0 à 31 et correspondent à un numéro de commande (définie
par l'utilisateur) manipulé par le programme tournant sur le DSP 56001.
/dev/dsp56k
Fredrik Noring <noring@nocrew.org>, lars brinkhoff <lars@nocrew.org>,
Tomas Berndtsson <tomas@nocrew.org>.
linux/include/asm-m68k/dsp56k.h,
linux/drivers/char/dsp56k.c, http://dsp56k.nocrew.org/,
DSP56000/DSP56001
Digital Signal Processor User's Manual
Christophe Blaess, 2000.
Table des matières
© 1996-2000 Adaptation française "Christophe Blaess"
| |