Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Основные принципы системной разработки > Разработка драйверов и драйверные библиотеки > Драйверные библиотеки > Библиотека разработки SPI драйверов (libspi-master) > Интерфейс драйвера > spi_funcs_t :: xfer()



spi_funcs_t :: xfer()

Функция инициирует транзакцию передачи, приема или обмена.

Прототип:

#include <hw/spi-master.h>
void *xfer( void *hdl,
uint32_t device,
uint8_t *buf,
int *len );

Аргументы:

hdl
Дескриптор низкоуровневого модуля, который вернула функция spi_funcs_t :: init().
device
Идентификатор устройства.
buf
Указатель на буфер данных для этой транзакции.
len
Указатель на длину, в байтах, данных для этой транзакции.

Библиотека:

libspi-master

Описание:

Функция должна вернуть указатель на буфер приема/обмена и сохранить в месте, на которое указывает len, длину в байтах данных, которые были переданы, получены или обменены низкоуровневым модулем. Код верхнего уровня проверяет длину, чтобы определить, была ли транзакция успешной.


Note: Буфер не безопасен для DMA, поэтому, если низкоуровневый модуль нуждается в использовании DMA, он должен выделить свой собственный буфер, безопасный для DMA, и при необходимости скопировать данные.

Возвращаемое значение:

!NULL
Указатель на буфер приема/обмена. Успешное завершение.

Классификация:

ЗОСРВ «Нейтрино»

Контекст исполнения
Отдельный поток
Нет
Многопоточность
Нет
Обработчик сигналов
Нет
Обработчик прерываний
Нет

Тематические ссылки:

spi_funcs_t :: dma_xfer()




Предыдущий раздел: Библиотека разработки SPI драйверов