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);
The
dsp56k device is a character device with major number 55 and minor
number 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_upload, в
которое
поле bin
указывает
на
двоичную
программу
DSP56001, а в len
задаётся
длина
программы
(значение
должно
быть
кратно
24-битным
словам).
- DSP56K_SET_TX_WSIZE
- sets the transmit word size. Allowed values are in the
range 1 to 4, and is the number of bytes that will be sent at a time to
the DSP56001. These data quantities will either be padded with bytes
containing zero, or truncated to fit the native 24-bit data format of the
DSP56001.
- DSP56K_SET_RX_WSIZE
- sets the receive word size. Allowed values are in the range
1 to 4, and is the number of bytes that will be received at a time from
the DSP56001. These data quantities will either truncated, or padded with
a null byte ('\0') to fit the native 24-bit data format of the
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
Русский
перевод
этой
страницы
руководства
был сделан Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]