[Environ]
nRF Connect SDK v3.2.1
nRF9151 (Custom board)
VSCode (1.110.0)
Board target: board/nrf9151/ns
[prj.conf]
# nrfx_ Flash Access CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_NRFX_NVMC=y # TF-M platform CONFIG_TFM_PARTITION_PLATFORM=y
The following issues occur when operating UICR.
1. After using the tfm_platform_mem_read() function, no interrupt occurs.
Used code:
uint32_t uicrAddr = (uint32_t)&(NRF_UICR_S->OTP[readAddr]); // readAddr = 0; uint32_t uicrVal = 0x1; uint32_t err = 0; enum tfm_platform_err_t plt_err; plt_err = tfm_platform_mem_read(&uicrVal, uicrAddr, sizeof uicrVal, &err);
The result is a successful completion with TFM_PLATFORM_ERR_SUCCESS, but no subsequent interrupts such as timers occur.
What no longer works: (Other functions unknown)
- k_timer_start(&Timer10ms, K_NO_WAIT, K_MSEC(10));
- Unable to transmit using uart_irq_tx_enable().
- Unable to receive using uart_irq_rx_enable().
2. The tfm_platform_mem_write32() function fails.
Used code:
uint32_t uicrAddr = (uint32_t)&(NRF_UICR_S->OTP[writeAddr]); // writeAddr = 0; const uint32_t mask = 0xFFFFFFFF; uint32_t err = 0; // uint32_t wordVal = 20; (example) enum tfm_platform_err_t plt_err; plt_err = tfm_platform_mem_write32(uicrAddr, wordVal, mask, &err); // plt_err = TFM_PLATFORM_ERR_INVALID_PARAM
What could the problem be?
Best regards,
Kato.