dsp56k - interfaz con el dispositivo DSP56001
#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);
El dispositivo
dsp56k es un dispositivo de caracteres con número
mayor 55 y número menor 0.
El Motorola DSP56001 es un procesador de señales digitales de 24 bits
totalmente programable que se encuentra en computadores compatibles con Atari
Falcon030. El fichero especial
dsp56k se utiliza para controlar el
DSP56001, y para enviar y recibir datos usando el puerto de host bidireccional
mediante la técnica de handshaking.
Para enviar un flujo de datos al procesador de señales, utilice
write(2) con el dispositivo, y
read(2) para recibir datos
procesados. Los datos pueden ser enviados o recibidos en cantidades de 8, 16,
24, o 32 bits por parte del host, pero siempre serán interpretados como
cantidades de 24 bits por el DSP56001.
Las siguientes llamadas
ioctl(2) pueden utilizarse para controlar el
dispositivo
dsp56k:
- DSP56K_UPLOAD
- reinicia el DSP56001 y carga un programa. El tercer
argumento a ioctl(2) debe ser un puntero a struct
dsp56k_upload donde el miembro bin apuntará a un
programa binario DSP56001, y len contendrá la longitud del
programa en palabras de 24 bits.
- DSP56K_SET_TX_WSIZE
- establece el tamaño de la palabra de
transmisión. Los valores permitidos están en el intervalo de
1 a 4, y definen el número de bytes que serán enviados al
mismo tiempo al DSP56001. Estas cantidades de datos serán o bien
rellenadas con bytes cero, o truncadas para que se ajusten al formato
nativo de 24 bits del DSP56001.
- DSP56K_SET_RX_WSIZE
- establece el tamaño de la palabra de
recepción. Los valores permitidos están en el intervalo
entre 1 y 4, y definen el número de bytes que serán
recibidos al mismo tiempo por el DSP56001. Estas cantidades de datos
serán o bien rellenadas con bytes cero ('\0') , o truncadas para
que se ajusten al formato nativo de 24 bits del DSP56001.
- DSP56K_HOST_FLAGS
- lee y escribe las banderas (flags) del host. Las banderas
del host son cuatro bits de propósito general que pueden ser
leídos tanto por la máquina anfitriona como por el DSP56001.
Los bits 0 y 1 pueden ser escritos por el host, y los bits 2 y 3 pueden
ser escritos por el DSP56001.
- Para acceder a estas banderas del host, el tercer argumento
a ioctl(2) debe ser un puntero a struct dsp56k_host_flags.
Si el bit 0 o el bit 1 están activos en el miembro dir, el
bit correspondiente en out será escrito en las banderas del
host. El estado de todas las banderas será devuelto en los cuatro
bits de orden inferior del miembro status.
- DSP56K_HOST_CMD
- envía una orden de anfitrión. Los valores
permitidos están en el intervalo de 0 a 31, y especifican una orden
definida por el usuario que es manejado por el programa que se ejecuta en
el DSP56001.
/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
La traducción al español de esta página del manual fue
creada por Miguel Pérez Ibars <
[email protected]> y Marcos
Fouces <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]