Hi Team,
NCS v2.3.0
nrf52840
my project works as expected with CONFIG_APP_MSC_STORAGE_RAM=y
but I need storage FLASH_FATFS
and the disk does not open in Windows, it gives an error window when connecting nrf USB.
Thank you.
4034.chatDK_update.7z
Hi Team,
NCS v2.3.0
nrf52840
my project works as expected with CONFIG_APP_MSC_STORAGE_RAM=y
but I need storage FLASH_FATFS
Hi,
Could you please show the error that you get?
Best regards,
Dejan
windows error looks the same as in devzone.nordicsemi.com/.../nrf52833dk_nrf52833-usb-mass-storage-issue
Hi,
so far nothing has helped.
Best regards,
Serhii
Hi,
This may or may not be related to your issue, but due to some blocking behavior when working with USB, all shell_print statements in model_handler.c should ideally be either removed or replaced by either printk or LOG.
Regarding the persistent USB storage, I have tested successfully with a following configuration changes applied to your project:
prj.conf
CONFIG_NVS=n CONFIG_SETTINGS=n CONFIG_PM_SINGLE_IMAGE=n # CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x8000 CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE=n CONFIG_BT_SETTINGS=n CONFIG_APP_MSC_STORAGE_FLASH_FATFS=y #CONFIG_APP_MSC_STORAGE_RAM=y
storage_partition: partition@0 { label = "storage"; #reg = <0x00000000 DT_SIZE_K(8000)>; reg = <0x00000000 0x00020000>; };
Thank you Dejan, I will be satisfied with this option if I can replace shell_print to some kind of uart_tx?
To give out an msg array to the uart.
In version with FOTA and CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
when I add to prj.conf your changes
when I set CONFIG_NVS=n I have error
C:\ncs\v2.3.0\nrf\include\flash_map_pm.h:41:22: error: 'PM_storage_partition_ID' undeclared (first use in this function) 41 | #define PM_ID(label) PM_##label##_ID | ^~~ C:\ncs\v2.3.0\nrf\include\flash_map_pm.h:46:35: note: in expansion of macro 'PM_ID' 46 | #define FIXED_PARTITION_ID(label) PM_ID(label) | ^~~~~ c:\da\ncs\chat\src\mass.c:23:41: note: in expansion of macro 'FIXED_PARTITION_ID' 23 | #define STORAGE_PARTITION_ID FIXED_PARTITION_ID(STORAGE_PARTITION) | ^~~~~~~~~~~~~~~~~~ c:\da\ncs\chat\src\mass.c:34:36: note: in expansion of macro 'STORAGE_PARTITION_ID' 34 | mnt->storage_dev = (void *)STORAGE_PARTITION_ID; | ^~~~~~~~~~~~~~~~~~~~ C:\ncs\v2.3.0\nrf\include\flash_map_pm.h:41:22: note: each undeclared identifier is reported only once for each function it appears in 41 | #define PM_ID(label) PM_##label##_ID | ^~~ C:\ncs\v2.3.0\nrf\include\flash_map_pm.h:46:35: note: in expansion of macro 'PM_ID' 46 | #define FIXED_PARTITION_ID(label) PM_ID(label) | ^~~~~ c:\da\ncs\chat\src\mass.c:23:41: note: in expansion of macro 'FIXED_PARTITION_ID' 23 | #define STORAGE_PARTITION_ID FIXED_PARTITION_ID(STORAGE_PARTITION) | ^~~~~~~~~~~~~~~~~~ c:\da\ncs\chat\src\mass.c:34:36: note: in expansion of macro 'STORAGE_PARTITION_ID' 34 | mnt->storage_dev = (void *)STORAGE_PARTITION_ID;
Hi,
There might be a problem with coexistence of storage partition with external flash partition. It would be useful if I could reproduce this issue. Could you make a minimal sample which I could use for this purpose?
Best regards,
Dejan
Hi,
There might be a problem with coexistence of storage partition with external flash partition. It would be useful if I could reproduce this issue. Could you make a minimal sample which I could use for this purpose?
Best regards,
Dejan
Hi,
sure
chatDK.zip
Best regards,
Serhii
Hi,
I have tested your sample and found 2 pairs of conflicting lines in your prj.conf.
CONFIG_NVS=y and CONFIG_NVS=n as well as CONFIG_PM_SINGLE_IMAGE=y and CONFIG_PM_SINGLE_IMAGE=n
CONFIG_NVS=n CONFIG_PM_SINGLE_IMAGE=n
fixed it but the error is still the same
Hi,
Could you share your changed prj.conf file?
Best regards,
Dejan
# # Copyright (c) 2020 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # CONFIG_NCS_SAMPLES_DEFAULTS=y # Deffered logging helps improve LPN power consumption # when friendship is established. CONFIG_LOG_MODE_DEFERRED=y # General configuration CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_FLASH=y CONFIG_FLASH_MAP=y #CONFIG_NVS=y CONFIG_SETTINGS=y CONFIG_HWINFO=y CONFIG_DK_LIBRARY=y #CONFIG_PM_SINGLE_IMAGE=y #CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x8000 #CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE=y # Bluetooth configuration CONFIG_BT=y CONFIG_BT_COMPANY_ID=0x0059 CONFIG_BT_DEVICE_NAME="Mesh Chat" CONFIG_BT_L2CAP_TX_MTU=69 CONFIG_BT_L2CAP_TX_BUF_COUNT=8 CONFIG_BT_OBSERVER=y CONFIG_BT_PERIPHERAL=y #CONFIG_BT_SETTINGS=y CONFIG_BT_RX_STACK_SIZE=2000 # Disable unused Bluetooth features CONFIG_BT_CTLR_DUP_FILTER_LEN=0 CONFIG_BT_CTLR_LE_ENC=n CONFIG_BT_DATA_LEN_UPDATE=n CONFIG_BT_PHY_UPDATE=n CONFIG_BT_CTLR_CHAN_SEL_2=n CONFIG_BT_CTLR_MIN_USED_CHAN=n CONFIG_BT_CTLR_PRIVACY=n # Bluetooth Mesh configuration CONFIG_BT_MESH=y CONFIG_BT_MESH_RELAY=y CONFIG_BT_MESH_FRIEND=y CONFIG_BT_MESH_ADV_BUF_COUNT=13 CONFIG_BT_MESH_RX_SEG_MAX=10 CONFIG_BT_MESH_TX_SEG_MAX=10 CONFIG_BT_MESH_PB_GATT=y CONFIG_BT_MESH_GATT_PROXY=y CONFIG_BT_MESH_DK_PROV=y # Enable Bluetooth mesh models debug logs CONFIG_BT_DEBUG_LOG=y CONFIG_BT_MESH_LOG_LEVEL_DBG=y # Enable Shell module and use UART as a backend CONFIG_SHELL=y CONFIG_SHELL_BACKEND_SERIAL=y CONFIG_USE_SEGGER_RTT=y CONFIG_STDOUT_CONSOLE=y #USB related configs CONFIG_USB_DEVICE_STACK=y CONFIG_USB_DEVICE_PRODUCT="Zephyr MSC sample" CONFIG_USB_DEVICE_PID=0x0008 CONFIG_LOG=y CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y CONFIG_USB_MASS_STORAGE=y CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y CONFIG_USB_MASS_STORAGE_LOG_LEVEL_ERR=y CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n CONFIG_MAIN_STACK_SIZE=1536 CONFIG_APP_MSC_STORAGE_FLASH_FATFS=y #CONFIG_APP_MSC_STORAGE_RAM=y # FOTA FOTA FOTA CONFIG_IMG_MANAGER=y CONFIG_MCUBOOT_IMG_MANAGER=y # Enable point to point DFU over SMP CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_MCUMGR=y CONFIG_MCUMGR_CMD_OS_MGMT=y CONFIG_MCUMGR_CMD_IMG_MGMT=y # Enable the Bluetooth (unauthenticated) and shell mcumgr transports. CONFIG_MCUMGR_SMP_BT=y CONFIG_MCUMGR_SMP_BT_AUTHEN=n CONFIG_BT_L2CAP_TX_MTU=252 #CONFIG_BT_L2CAP_RX_MTU=252 #CONFIG_BT_RX_BUF_LEN=260 CONFIG_BT_BUF_ACL_RX_SIZE=256 CONFIG_BT_DATA_LEN_UPDATE=y CONFIG_BT_AUTO_DATA_LEN_UPDATE=y # Some command handlers require a large stack. CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096 # Enable Extended Advertiser to advertise BT SMP service CONFIG_BT_EXT_ADV=y CONFIG_BT_EXT_ADV_MAX_ADV_SET=4 # One extra connection for mesh GATT/proxy and one for SMP BT. CONFIG_BT_MAX_CONN=3 # One extra identity for SMP service CONFIG_BT_ID_MAX=2 # end FOTA FOTA FOTA end # FOTA External flash CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y CONFIG_NVS=n CONFIG_SETTINGS=n CONFIG_PM_SINGLE_IMAGE=n # CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x8000 CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE=n CONFIG_BT_SETTINGS=n