Привет всем! Сейчас работаю с SPI на процессоре iMX536. Не получается отправить сообщение через ioctl. Выдаётся ошибка: ioctl error: Bad address. Помогите разобраться или подскажите куда копать. И ещё вопрос: через ioctl SPI работает full-duplex? Заранее спасибо за ответы.
int main(int argc, char **argv)
{
int fd = 0;
char buff[32];
char rbuff[32];
fd = open(PATH, O_RDWR, 0);
if (fd == -1) {
perror("open error");
}
ioc_transfer.tx_buf = (unsigned long)buff;
ioc_transfer.rx_buf = (unsigned long)rbuff;
ioc_transfer.len = 32;
ioc_transfer.delay_usecs = 0;
ioc_transfer.speed_hz = 1000000;
ioc_transfer.cs_change = 1;
ioc_transfer.bits_per_word = 8;
for(;;) {
int ret = ioctl(fd, SPI_IOC_MESSAGE(1), &ioc_transfer);
if (ret == -1) {
perror("ioctl error");
return -1;
}
usleep(1000000 / send_pack_freq);
}
return 0;
}
PS Всем хороших выходных)))