Dwm3000 evk and nucleo stm32 in cube IDE

Hi,
i am using stm32 +dwm3000 evk and usee example code provided by qurvo but it goes into hardfault after dwt_readdevid
I run the fn() called dwt_probe() and it return DWT_ERROR.

int read_dev_id(void)
{
int err;
uint32_t dev_id;
int Aret;
/* Display application name on LCD. */
test_run_info((unsigned char *)APP_NAME);

/* Configure SPI rate, DW3000 supports up to 36 MHz */
port_set_dw_ic_spi_fastrate();

/* Reset DW IC */
reset_DWIC(); /* Target specific drive of RSTn line into DW IC low for a period. */

Sleep(2); // Time needed for DW3000 to start up (transition from INIT_RC to IDLE_RC, or could wait for SPIRDY event)

/* Probe for the correct device driver. */
Aret  = dwt_probe((struct dwt_probe_s *)&dw3000_probe_interf);

dev_id = dwt_readdevid();

/* Reads and validate device ID returns DWT_ERROR if it does not match expected else DWT_SUCCESS */
if ((err = dwt_check_dev_id()) == DWT_SUCCESS)
{
    test_run_info((unsigned char *)"DEV ID OK");
}
else
{
    test_run_info((unsigned char *)"DEV ID FAILED");
}

return err;

}

The linker script has changed to include this structure in the “.text” segment of memory like so:
. = ALIGN(4);
__dw_drivers_start = .;
KEEP(*(.dw_drivers))
__dw_drivers_end = .;