Enabling SPI compilation errors

I’ve been attempting to enable either SPI0 or SPI2 on the dwm1001, but I cant get it to compile with either of them enabled.

I have dwm_serial_spi_compile() commented out for my attempts.

With SPI0 enabled I get the error:
multiple definition of `SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler’
First definition is the nrf_drv_spi.c that I included in the project (same as nrf_drv_uart.c in the dwm_uart example project), the second is nrf_drv_twi.c which I do not call in my project.

With SPI2 enabled I get the error:
multiple definition of `SPIM2_SPIS2_SPI2_IRQHandler’
again, first definition is nrf_drv_spi.c.
Second definition is nrf_drv_spis.c

To enable these resources, I’ve just been defining SPI_ENABLED to 1 and either SPI0_ENABLED or SPI2_ENABLED to 1 in my sdk_config.h file.

Does anyone have any experience getting these to work?

My current understanding is that both SPI for DW1000 and I2C for the accelerometer are running on SPI1/TWI1 with resource sharing, but I might be mistaken.

1 Like

Error log when attempting to compile with SPI2 enabled:

Building ‘dwm-simple’ from solution ‘dwm-simple’ in configuration ‘dwm1001_configuration’
1> Compiling ‘dwm-simple.c’
2> Compiling ‘i2c.c’
3> Compiling ‘nrf_drv_spi.c’
4> Compiling ‘lis2dh12_reg.c’
1> Linking ‘dwm-simple_fw2.elf’
1> dwm/examples/dwm-simple/../../lib\libtarget.a(hal_cortexm_nrf5x_var_nrf_drv_spis.o): In function `SPIM2_SPIS2_SPI2_IRQHandler':
1> nrf_drv_spis.c:(.text.SPIM2_SPIS2_SPI2_IRQHandler+0x0): multiple definition of `SPIM2_SPIS2_SPI2_IRQHandler'
1> /dwm/examples/dwm-simple/output/compiler/nrf_drv_spi.o:dwm\examples\dwm-simple/../../nordicsemi/components/drivers_nrf/spi_master/nrf_drv_spi.c:618: first defined here
1> collect2.exe: error: ld returned 1 exit status
Build failed

Hi BDuon,
I am also facing the same issue. Did you find the solution? Can you suggest me how to overcome this problem? I try to contact decawave, but I am not getting any response from decawave.