Hi,
I am using an nRF52833dk to run a simple async SPI transceive API using k_poll
My code is as below, for some reason it always returns BUS FAULT error
Code:
void main(void)
{
struct k_poll_signal async_sig;
uint8_t data = 40, val =0, sz = 9;
struct spi_buf bufs = {
.buf = &data,
.len = sizeof(data)
};
struct spi_buf_set tx = {
.buffers = &bufs
};
tx.count = 1;
struct spi_buf rbufs = {
.buf = &val,
.len = sizeof(val)
};
struct spi_buf_set rx = {
.buffers = &rbufs
};
spi_config spi_cfg;
spi_cs_control cs_ctrl;
cs_ctrl.gpio_dev = device_get_binding("GPIO_0");
cs_ctrl.gpio_pin = 11;
cs_ctrl.delay = 0;
spi_cfg.operation = SPI_WORD_SET(8) | SPI_OP_MODE_MASTER
// | SPI_MODE_CPOL | SPI_MODE_CPHA
| SPI_LINES_SINGLE;
spi_cfg.frequency = 1000000;
spi_cfg.cs = &cs_ctrl;
const device * sp;
sp = device_get_binding("SPI_0");
data++;
struct k_poll_event async_evt =
K_POLL_EVENT_INITIALIZER(K_POLL_TYPE_SIGNAL,
K_POLL_MODE_NOTIFY_ONLY,
&async_sig);
printk("transmitted data: %u \n", data);
int error = spi_transceive_async(sp,&spi_cfg,&tx, &rx,&async_sig);
int ret = k_poll(&async_evt, 1, K_MSEC(1000));
printk("received data: %u \n", val);
}
Error:
Kindly help to solve this.
Thanks,
Ubaid