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.
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.