Я lookig в код, который пишет некоторые данные по SPI линии, используя структуруЧто tx_buf ожидает в качестве входных данных в spi_transfer
struct spi_transfer
{
const void * tx_buf;
void * rx_buf;
unsigned len;
dma_addr_t tx_dma;
dma_addr_t rx_dma;
unsigned cs_change:1;
u8 bits_per_word;
u16 delay_usecs;
u32 speed_hz;
struct list_head transfer_list;
};
spi_transfer Теперь некоторые, как это было сделано в Кодексе
u8 *cmd
cmd=kmalloc(3,GFP_KERNEL);
cmd[0]=16;
cmd[1]=32;
Теперь t [0] .tx_buf = cmd;
сейчас мне интересно, что записывается в этот буфер и что tx_buf ожидает здесь? Мы подписываемся на какой-то счетчик часов для собак через линию SPI.
'cmd' содержит указатель на данные. И этот указатель присваивается 'tx_buf', который должен« указывать »на данные передачи. Следовательно, теперь 'tx_buf' указывает на данные передачи. –
Итак, что записывается на линии spi в первую очередь, это значение 16, записанное в строке сначала –
Вам нужно будет изучить код, где он записывается в буфер данных SPI (регистр данных передачи). Поскольку это ничего не пишет для SPI, это просто указывает на данные, которые должны быть записаны. –