长度为256时,SPI ioctl挂起

时间:2017-12-13 21:57:42

标签: c embedded-linux

不确定是C问题还是驱动程序。

我在使用ioctl进行SPI传输时遇到问题。 我使用spidev驱动程序在yocto linux设备上。

如果缓冲区长度为255,256或257字节,我只会遇到问题。该程序挂起并且无法被杀死,即使使用了“杀死-9”。命令。任何其他长度都可以正常工作,转移成功。

这是电话,非常简单。

struct spi_ioc_transfer tr;
tr.tx_buf = (uint64)WriteBuffer;
tr.rx_buf = (uint64)readBuffer;
tr.len = Count;
tr.delay_usecs = 0;
tr.speed_hz = 1000000;
tr.bits_per_word = 8;

ioctl( _fileDescriptor, SPI_IOC_MESSAGE( 1 ), &tr )

我无法理解为什么长度字段会导致它挂起但是有任何建议值得赞赏。

0 个答案:

没有答案