I ran into a problem that some parameters that I change in the device tree are not applied.
For example:
The resulting zephyr.dts file contains this setting:
uart0: uart@8000 { compatible = "nordic,nrf-uarte"; reg = < 0x8000 0x1000 >; interrupts = < 0x8 0x1 >; status = "okay"; label = "UART_0"; current-speed = < 0x1c200 >; tx-pin = < 0x5 >; rx-pin = < 0x6 >; };
in <devicetree_unfixed.h> these settings are also updated. I am interested in Tx Rx pins.
#define DT_N_S_soc_S_peripheral_40000000_S_uart_8000_P_tx_pin 5 #define DT_N_S_soc_S_peripheral_40000000_S_uart_8000_P_rx_pin 6
But when these values are to be written to registers, the register value remains the same. (file nrf_uarte.h)
This happens at the initialization stage of running main.
Why does it work like this? What can block writing to these registers?