zion - dsp56k
Nom
dsp56k - Périphérique d'interface DSP 56001.
Résumé
.nf #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 , s-1DSP56K_UPLOADs+1, struct dsp56k_upload * program ); int ioctl (int fd , s-1DSP56K_SET_TX_WSIZEs+1, int wsize ); int ioctl (int fd , s-1DSP56K_SET_RX_WSIZEs+1, int wsize ); int ioctl (int fd , s-1DSP56K_HOST_FLAGSs+1, struct dsp56k_host_flags * flags ); int ioctl (int fd , s-1DSP56K_HOST_CMDs+1, int cmd ); .fi
Configuration
Le DSP 56001 est un périphérique de type caractère, ayant un numéro majeur valant 55 et un mineur 0.
Description
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'Atari 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. |
Fichiers
/dev/dsp56k
Auteurs
Fredrik Noring <noring@nocrew.org>, lars brinkhoff <lars@nocrew.org>, Tomas Berndtsson <tomas@nocrew.org>.
Voir aussi
linux/include/asm-m68k/dsp56k.h, linux/drivers/char/dsp56k.c, http://dsp56k.nocrew.org/, DSP56000/DSP56001 Digital Signal Processor User's Manual
Traduction
Christophe Blaess, 2000-2003.
Poster un commentaire