Hello
I'm trying to use LittleFS with an external SPI flash, but if the SPI flash isn't available yet at boot time, my application hangs for an uncertain amount of time.
I'd like to control when the filesystem is mounted manually and be able to detect if the SPI flash is unavailable. Is this possible?
I tried commenting out the automount
property, but it didn’t solve the issue.
app.overlay :
/* * Copyright (c) 2023 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ /*/delete-node/ &mx25r64;*/ /* /delete-node/ &storage_partition;*/ / { chosen { nordic,pm-ext-flash = &mx25r16; }; fstab { compatible = "zephyr,fstab"; lfs1: lfs1 { compatible = "zephyr,fstab,littlefs"; mount-point = "/lfs1"; partition = <&lfs1_partition>; /*automount;*/ read-size = <16>; prog-size = <16>; cache-size = <64>; lookahead-size = <32>; block-cycles = <512>; }; }; }; &spi2 { compatible = "nordic,nrf-spi"; status = "okay"; cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; pinctrl-0 = <&spi2_default>; pinctrl-1 = <&spi2_sleep>; pinctrl-names = "default", "sleep"; mx25r16: mx25r1635f@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <8000000>; jedec-id = [c2 28 15]; /* sfdp-bfp = [ e5 20 f1 ff ff ff ff 03 44 eb 08 6b 08 3b 04 bb ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52 10 d8 00 ff 23 72 f5 00 82 ed 04 cc 44 83 68 44 30 b0 30 b0 f7 c4 d5 5c 00 be 29 ff f0 d0 ff ff ];*/ size = <DT_SIZE_M(16)>; has-dpd; t-enter-dpd = <10000>; t-exit-dpd = <35000>; }; }; &mx25r16 { status = "okay"; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; lfs1_partition: partition@0 { label = "lfs1"; reg = <0x00000000 0x200000>; }; }; };
Booting :
I: littlefs partition at /lfs1 *** Booting My Application v0.8.9-b328fd29cb96 *** *** Using nRF Connect SDK v2.9.0-7787b2649840 *** *** Using Zephyr OS v3.7.99-1f8f3dc29142 *** Starting Bluetooth I: 2 Sectors of 4096 bytes I: alloc wra: 0, fa8 I: data wra: 0, 34 I: SoftDevice Controller build revision: I: 2d 79 a1 c8 6a 40 b7 3c |-y..j@.< I: f6 74 f9 0b 22 d3 c4 80 |.t.."... I: 74 72 82 ba |tr.. I: HW Platform: Nordic Semiconductor (0x0002) I: HW Variant: nRF52x (0x0002) I: Firmware: Standard Bluetooth controller (0x00) Version 45.41337 Build 3074452168 I: No ID address. App must call settings_load() W: opcode 0xfc0e status 0x42 Set Tx power err: -5 reason 0x00 Bluetooth initialized I: Identity: D2:10:69:2F:12:13 (random)
Environment :
nrf sdk 2.9.0
CPU : nRF52840