nRF5340 - Settings save fails

Hi,

I wanted to store a simple integer (the "serial number") by using Setting subsystem of nRF Connect SDK 1.8.0.
Settings is based on the internal flash of device (nRF5340).
If I run the Zephyr's settings sample as it is, it works.
When embedding that code in my application (only the part for storing a key-value pair without dedicated handlers), the function settings_save_one returns -2 (ENOENT).

Code is as follow.

void main(void)
{
	int rc;
	uint32_t val;

	rc = settings_subsys_init();

	if (rc) {
		LOG_ERR("error initializing settings subsys [%d]", rc);
	} else {
		rc = load_immediate_value("sn", &val, sizeof(val));
		if (rc == -ENOENT) {
			val = 12345678;
		} else if (rc == 0) { 
			printk("<sn> = %u\n", val);
		} else {
			LOG_ERR("error loading sn from settings [%d]", rc);
		}

		rc = settings_save_one("sn", (const void *)&val, sizeof(val));
		if (rc) {
			LOG_ERR("error saving sn in settings [%d]", rc);
		}
	}
 ...
}

Execution gives
"error saving sn in settings [-2]".
Might problem be related with umproper config settings ? This is the prj.conf I'm using

# Build
# CONFIG_SIZE_OPTIMIZATIONS=y

# Boot
CONFIG_BOOT_BANNER=n
CONFIG_BOOT_DELAY=0

# Disable features not needed
CONFIG_HEAP_MEM_POOL_SIZE=2048

# Console
CONFIG_CONSOLE=y

# Logging options
CONFIG_LOG=y
CONFIG_LOG_MAX_LEVEL=4
CONFIG_LOG_DEFAULT_LEVEL=1
CONFIG_LOG_MODE_IMMEDIATE=y

# Enable the UART driver
CONFIG_SERIAL=y
CONFIG_UART_ASYNC_API=y
CONFIG_NRFX_UARTE0=y

# Thread options
CONFIG_TIMESLICING=n

# Enable DK LED and Buttons library
CONFIG_DK_LIBRARY=y

# USB related configs
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_MANUFACTURER="COSMED Srl ITALIA"
CONFIG_USB_DEVICE_PRODUCT="Cosmed MicroPro"
CONFIG_USB_DEVICE_VID=0x1211
CONFIG_USB_DEVICE_PID=0x000B
CONFIG_USB_DEVICE_SN="1234509876"
CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y
CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y
CONFIG_USB_REQUEST_BUFFER_SIZE=1024

# Bluetooth LE options
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="Cosmed MicroPro"
CONFIG_BT_DEVICE_APPEARANCE=833
CONFIG_BT_MAX_CONN=1
CONFIG_BT_MAX_PAIRED=1
CONFIG_BT_NUS=y
CONFIG_BT_NUS_SECURITY_ENABLED=y
CONFIG_BT_SETTINGS=y

# Flash and Settings options
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_SETTINGS_NVS=y
CONFIG_SETTINGS_RUNTIME=y
CONFIG_SETTINGS_NONE=y
CONFIG_NORDIC_QSPI_NOR=y
CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096

# LittleFS
CONFIG_FILE_SYSTEM=y
CONFIG_FILE_SYSTEM_LITTLEFS=y

# Stack tuning
CONFIG_BT_RX_STACK_SIZE=2200
CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=n
CONFIG_BT_HCI_TX_STACK_SIZE=1024
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_MPSL_SIGNAL_STACK_SIZE=1024
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_IDLE_STACK_SIZE=320
CONFIG_ISR_STACK_SIZE=2048
CONFIG_BT_NUS_THREAD_STACK_SIZE=1024
CONFIG_BT_GATT_CACHING=n
CONFIG_BT_CTLR_PRIVACY=n
CONFIG_BT_CTLR_PHY_2M=n

# Drivers and peripherals
CONFIG_I2C=y
CONFIG_WATCHDOG=n
CONFIG_PINMUX=n
CONFIG_SPI=n
CONFIG_SENSOR=y

# Power management
CONFIG_PM_DEVICE=y
CONFIG_PM=y

# Interrupts
CONFIG_DYNAMIC_INTERRUPTS=n

Related