nrf9160 - nvs read error: -2 (ENOENT)

Dear Nordic Team, 

I am working with the SDK 2.0.0 in Visual studio Code and with a custom board with a nrf9160. The board configuration is based on the nrf9160dk and has only minor changes.

At the moment I am trying to implement the nvs(none-volatile-storage) library into my project. I tested the sample on my custom board and this worked without any problems at the beginning.
After the successful test I incorporated the nvs library into my project and began to test it.

Unfortunately I encountered some problems with my implementation and also with the nvs sample. The initialization of the nvs stroage partition works fine and completes without any problems, but reading or writing always yield the same error namely the error -2 which is classified as ENOENT or " nor such file or directory". Also the sample always shows this error since the use of my own implementation. When debugging the functions it always fails at these lines:

zephyr\subsys\fs\nvs\nvs.c line 1166 to 1169:

	if (((wlk_addr == fs->ate_wra) && (wlk_ate.id != id)) ||
	    (wlk_ate.len == 0U) || (cnt_his < cnt)) {
		return -ENOENT;
	}

The problem is that wlk_ate.id always shows the number 65535.

This is my proj.conf file:

CONFIG_BUILD_WITH_TFM=y
CONFIG_TFM_PROFILE_TYPE_MINIMAL=y
CONFIG_TFM_BL2=n

# Reroute loggong to RTT terminal
CONFIG_PRINTK=y
CONFIG_CONSOLE=y

CONFIG_SERIAL=y
CONFIG_STDOUT_CONSOLE=y

CONFIG_LOG=y
CONFIG_UART_CONSOLE=n
CONFIG_RTT_CONSOLE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_MODE_IMMEDIATE=n

# Enable GPIOs
CONFIG_GPIO=y

# Enable I2C/TWI
CONFIG_I2C=y
CONFIG_I2C_NRFX=y

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=73728
CONFIG_MAIN_STACK_SIZE=40960
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096

CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_DEBUG_OPTIMIZATIONS=y
CONFIG_DEBUG_THREAD_INFO=y
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y

# Uart Config
CONFIG_NRFX_UARTE0=y
CONFIG_UART_ASYNC_API=y

# Watchdog
CONFIG_WATCHDOG=y
CONFIG_WDT_LOG_LEVEL_DBG=y
CONFIG_WDT_DISABLE_AT_BOOT=n

# Networking
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_SOCKETS_POSIX_NAMES=y

# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
CONFIG_LTE_LINK_CONTROL_LOG_LEVEL_DBG=n

CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y
CONFIG_LTE_MODE_PREFERENCE_LTE_M=y

# Modem info
CONFIG_MODEM_INFO=y
CONFIG_MODEM_INFO_ADD_DATE_TIME=n

CONFIG_DATE_TIME=y

# Modem library
CONFIG_NRF_MODEM_LIB=y

# AT Host
CONFIG_AT_HOST_LIBRARY=y

# MQTT
CONFIG_MQTT_LIB=y
CONFIG_MQTT_LIB_TLS=y
CONFIG_MQTT_CLEAN_SESSION=y
CONFIG_MQTT_KEEPALIVE=10
CONFIG_NRF_MODEM_LIB=y
CONFIG_MODEM_KEY_MGMT=y
CONFIG_MODEM_KEY_MGMT_LOG_LEVEL_DBG=y

# Application
CONFIG_MQTT_MESSAGE_BUFFER_SIZE=512
CONFIG_MQTT_PAYLOAD_BUFFER_SIZE=4096

CONFIG_MQTT_RECONNECT_DELAY_S=10

# FOTA library
CONFIG_FOTA_DOWNLOAD=y
CONFIG_REBOOT=y

# Download client
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096

# DFU Target
CONFIG_DFU_TARGET=y
# CONFIG_DFU_TARGET_STREAM_SAVE_PROGRESS=y

# Non-volatile Storage
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_FLASH_PAGE_LAYOUT=y

# Application update support
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUBOOT_IMAGE_VERSION="0.1.0"

# Image manager
CONFIG_IMG_MANAGER=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y

The partitions.yml file also does not show any problems at least to my knowledge:

EMPTY_0:
  address: 0xfe000
  end_address: 0x100000
  placement:
    after:
    - nvs_storage
  region: flash_primary
  size: 0x2000
EMPTY_1:
  address: 0xf4000
  end_address: 0xf8000
  placement:
    after:
    - mcuboot_secondary
  region: flash_primary
  size: 0x4000
app:
  address: 0x1c200
  end_address: 0x80000
  region: flash_primary
  size: 0x63e00
mcuboot:
  address: 0x0
  end_address: 0xc000
  placement:
    before:
    - mcuboot_primary
  region: flash_primary
  size: 0xc000
mcuboot_pad:
  address: 0xc000
  end_address: 0xc200
  placement:
    before:
    - mcuboot_primary_app
  region: flash_primary
  size: 0x200
mcuboot_primary:
  address: 0xc000
  end_address: 0x80000
  orig_span: &id001
  - app
  - mcuboot_pad
  - tfm
  region: flash_primary
  sharers: 0x1
  size: 0x74000
  span: *id001
mcuboot_primary_app:
  address: 0xc200
  end_address: 0x80000
  orig_span: &id002
  - app
  - tfm
  region: flash_primary
  size: 0x73e00
  span: *id002
mcuboot_secondary:
  address: 0x80000
  end_address: 0xf4000
  placement:
    after:
    - mcuboot_primary
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_primary
  size: 0x74000
nonsecure_storage:
  address: 0xf8000
  end_address: 0xfe000
  orig_span: &id003
  - nvs_storage
  region: flash_primary
  size: 0x6000
  span: *id003
nrf_modem_lib_ctrl:
  address: 0x20010000
  end_address: 0x200104e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - tfm_sram
    - start
  region: sram_primary
  size: 0x4e8
nrf_modem_lib_rx:
  address: 0x200124e8
  end_address: 0x200144e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_tx
  region: sram_primary
  size: 0x2000
nrf_modem_lib_sram:
  address: 0x20010000
  end_address: 0x200144e8
  orig_span: &id004
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x44e8
  span: *id004
nrf_modem_lib_tx:
  address: 0x200104e8
  end_address: 0x200124e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_ctrl
  region: sram_primary
  size: 0x2000
nvs_storage:
  address: 0xf8000
  align:
    start: 0x8000
  end_address: 0xfe000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - end
  region: flash_primary
  size: 0x6000
otp:
  address: 0xff8108
  end_address: 0xff83fc
  region: otp
  size: 0x2f4
sram_nonsecure:
  address: 0x20010000
  end_address: 0x20040000
  orig_span: &id005
  - sram_primary
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x30000
  span: *id005
sram_primary:
  address: 0x200144e8
  end_address: 0x20040000
  region: sram_primary
  size: 0x2bb18
sram_secure:
  address: 0x20000000
  end_address: 0x20010000
  orig_span: &id006
  - tfm_sram
  region: sram_primary
  size: 0x10000
  span: *id006
tfm:
  address: 0xc200
  end_address: 0x1c200
  inside:
  - mcuboot_primary_app
  placement:
    before:
    - app
  region: flash_primary
  size: 0x10000
tfm_nonsecure:
  address: 0x1c200
  end_address: 0x80000
  orig_span: &id007
  - app
  region: flash_primary
  size: 0x63e00
  span: *id007
tfm_secure:
  address: 0xc000
  end_address: 0x1c200
  orig_span: &id008
  - mcuboot_pad
  - tfm
  region: flash_primary
  size: 0x10200
  span: *id008
tfm_sram:
  address: 0x20000000
  end_address: 0x20010000
  inside:
  - sram_secure
  placement:
    after:
    - start
  region: sram_primary
  size: 0x10000

This is the logging I get for the nvs initialization:

*** Booting Zephyr OS build v3.0.99-ncs1  ***

[00:00:05.627,410] <inf> app: Application started..
[00:00:07.281,585] <inf> fs_nvs: 4 Sectors of 4096 bytes
[00:00:07.281,585] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:07.281,616] <inf> fs_nvs: data wra: 0, 0
[00:00:09.686,035] <inf> uart_communication: UART_RX_BUF_REQUEST

If any other information is necessary to pinpoint the problems please let me know.

Best reagrds,

Andreas 

Parents Reply Children
No Data
Related