DSP56K(4) | Руководство программиста Linux | DSP56K(4) |
ИМЯ¶
dsp56k - устройство интерфейса 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);
НАСТРОЙКА¶
Устройство dsp56k является символьным устройством с старшим номером 55 и младшим номером 0.
ОПИСАНИЕ¶
Motorola DSP56001 — это полностью программируемый 24-битный цифровой сигнальный процессор, используемый в компьютерах Atari Falcon030 и совместимых с ними. Специальный файл dsp56k используется для управления DSP56001 и для посылки и получения данных через выбранный на узле (host) двунаправленный порт.
Для отправки потока данных сигнальному процессору, используйте write(2), а для получения обработанных данных — read(2). Данные могут быть посылаться и получаться узлом по 8, 16, 24 или 32 бита, а сигнальный процессор способен обрабатывать только по 24 бита.
Для управления устройством dsp56k используются следующие вызовы ioctl(2):
- DSP56K_UPLOAD
- Обнуляет DSP56001 и загружает в него программу. Третьим аргументом ioctl(2) должен быть указатель на struct dsp56k_binary, в которое поле bin указывает на двоичную программу DSP56001, а в len задаётся длина программы (значение должно быть кратно 24-битным словам).
- DSP56K_SET_TX_WSIZE
- Устанавливает размер передаваемых слов. Допустимое значение находится в пределах от 1 до 4, и является числом байт, посылаемых за один раз в DSP56001. Эти частички информации будут заполнены нулевыми байтами или преобразованы в формат 24-битных данных DSP56001.
- DSP56K_SET_RX_WSIZE
- Устанавливает размер принимаемых слов. Допустимое значение находится в диапазоне от 1 до 4, и является числом байт, принимаемых за один раз от процессора DSP56001. Эти частички информации будут урезаны или дополнены байтом null ('\0'), чтобы соответствовать 24-битному формату DSP56001.
- DSP56K_HOST_FLAGS
- Считывает
и
записывает
флаги узла.
Флаги узла
— это
четыре
бита
общего
назначения,
они могут
быть
считаны
как узлом,
так и
процессором
DSP56001. Нулевой
и первый
биты могут
записываться
узлом, а
второй и
третий
пишутся
устройством
DSP56001.
Для получения доступа к флагам узла третий аргумент ioctl(2) должен быть указателем на struct dsp56k_host_flags. Если нулевой и первый поля dir установлены в единичное значение, то соответствующий бит в поле out будет записан в флаг узла. Состояние всех флагов узла будет возвращено в младших четырёх битах поля status.
- DSP56K_HOST_CMD
- Посылает команды узла. Допустимые величины находятся в диапазоне от 0 до 31, это определяемые пользователем команды, обрабатываемые программой, выполняющейся на 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
2000-03-01 | Linux |