hello,

Trying to migrate an old project to latest code. I have this config after migration.

$ ag LITTLEFS .config
1928:CONFIG_FS_LITTLEFS=y
1929:CONFIG_FS_LITTLEFS_PROGRAM_SIZE_FACTOR=1
1930:CONFIG_FS_LITTLEFS_READ_SIZE_FACTOR=1
1931:CONFIG_FS_LITTLEFS_BLOCK_SIZE_FACTOR=1
1932:CONFIG_FS_LITTLEFS_CACHE_SIZE_FACTOR=4
1933:CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE=0
1934:CONFIG_FS_LITTLEFS_BLOCK_CYCLE=200
1935:CONFIG_FS_LITTLEFS_NAME_MAX=32
1936:CONFIG_FS_LITTLEFS_FILE_MAX=2147483647
1937:CONFIG_FS_LITTLEFS_ATTR_MAX=1022

I can not mount a blank mtd partition on a sst26, cpu is stm32f429

I see make.defs has version 2.5.1

and cmakelists has version 2.4.0

So much for modern build systems, nuttx is not rigorous enough to maintain both in sync, as warned by me and others when people wanted cmake.


Here is what happens at runtime with 2.4.0 (fs/littlefs/Make.defs changed manually and nuttx rebuilt):

NuttShell (NSH) NuttX-12.4.0
nsh> mount -t littlefs -o forceformat /dev/storage /storage
find_blockdriver: pathname="/dev/storage"
find_blockdriver: /dev/storage is a MTD
lfs_format: lfs_format(0x200088e8, 0x2000889c {.context=0x20008858, .read=0x802ef89, .prog=0x802f01d, .erase=0x802f0b1, .sync=0x802f12f, .read_size=256, .prog_size=256, .block_size=4096, .block_count=1536, .block_cycles=200, .cache_size=1024, .lookahead_size=192, .read_buffer=0, .prog_buffer=0, .lookahead_buffer=0, .name_max=0, .file_max=0, .attr_max=0})
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
sst26_erase: startblock: 00000200 nblocks: 1
sst26_sectorerase: sector: 00000200
sst26_writeenable: Enabled
_assert: Current Version: NuttX  12.4.0 d4d49e9645-dirty Mar 19 2024 01:04:47 arm _assert: Assertion failed panic: at file: armv7-m/arm_hardfault.c:175 task: nsh process: nsh 0x801b7c5
up_dump_register: R0: 00000000 R1: 00000000 R2: 00000001  R3: 00200000
up_dump_register: R4: 00000000 R5: 00000000 R6: 00000000  FP: 00000000
up_dump_register: R8: 00000000 SB: 00000000 SL: 00000000 R11: 00000000
up_dump_register: IP: 80000000 SP: 20007ac8 LR: 0803a101  PC: 0803a11e
up_dump_register: xPSR: 21000000 PRIMASK: 00000001 CONTROL: 00000000
up_dump_register: EXC_RETURN: fffffff9
dump_stacks: ERROR: Stack pointer is not within the stack
dump_stack: User Stack:
dump_stack:   base: 0x8050749
dump_stack:   size: 00002000

That is definitely not a good stack pointer. LFS 2.4 does not work.

.name_max=0, .file_max=0, .attr_max=0 are very suspicious.

Trying again with 2.5.1 I get this:

NuttShell (NSH) NuttX-12.4.0
nsh> mount -t littlefs -o forceformat /dev/storage /storage
find_blockdriver: pathname="/dev/storage"
find_blockdriver: /dev/storage is a MTD
lfs_format: lfs_format(0x200088e8, 0x2000889c {.context=0x20008858, .read=0x802ef89, .prog=0x802f01d, .erase=0x802f0b1, .sync=0x802f12f, .read_size=256, .prog_size=256, .block_size=4096, .block_count=1536, .block_cycles=200, .cache_size=1024, .lookahead_size=192, .read_buffer=0, .prog_buffer=0, .lookahead_buffer=0, .name_max=0, .file_max=0, .attr_max=0})
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
sst26_erase: startblock: 00000200 nblocks: 1
sst26_sectorerase: sector: 00000200
sst26_writeenable: Enabled
sst26_waitwritecomplete: Complete
sst26_sectorerase: Erased
sst26_bread: startblock: 00002001 nblocks: 1
sst26_read: offset: 00200100 nbytes: 256
sst26_read: return nbytes: 256
sst26_bwrite: startblock: 00002000 nblocks: 1
sst26_pagewrite: page: 00002000 offset: 00200000
sst26_writeenable: Enabled
sst26_waitwritecomplete: Complete
sst26_pagewrite: Written
sst26_ioctl: cmd: 1293
sst26_ioctl: return -25
sst26_bread: startblock: 00002000 nblocks: 1
sst26_read: offset: 00200000 nbytes: 256
sst26_read: return nbytes: 256
sst26_erase: startblock: 00000201 nblocks: 1
sst26_sectorerase: sector: 00000201
sst26_writeenable: Enabled
sst26_waitwritecomplete: Complete
sst26_sectorerase: Erased
sst26_bread: startblock: 00002011 nblocks: 1
sst26_read: offset: 00201100 nbytes: 256
sst26_read: return nbytes: 256
sst26_bwrite: startblock: 00002010 nblocks: 1
sst26_pagewrite: page: 00002010 offset: 00201000
sst26_writeenable: Enabled
sst26_waitwritecomplete: Complete
sst26_pagewrite: Written
sst26_ioctl: cmd: 1293
sst26_ioctl: return -25
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
sst26_bread: startblock: 00002000 nblocks: 1
sst26_read: offset: 00200000 nbytes: 256
sst26_read: return nbytes: 256
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
sst26_bread: startblock: 00002011 nblocks: 4
sst26_read: offset: 00201100 nbytes: 1024
sst26_read: return nbytes: 1024
lfs_format: lfs_format -> 0
lfs_mount: lfs_mount(0x200088e8, 0x2000889c {.context=0x20008858, .read=0x802ef89, .prog=0x802f01d, .erase=0x802f0b1, .sync=0x802f12f, .read_size=256, .prog_size=256, .block_size=4096, .block_count=1536, .block_cycles=200, .cache_size=1024, .lookahead_size=192, .read_buffer=0, .prog_buffer=0, .lookahead_buffer=0, .name_max=0, .file_max=0, .attr_max=0})
sst26_bread: startblock: 00002000 nblocks: 1
sst26_read: offset: 00200000 nbytes: 256
sst26_read: return nbytes: 256
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
sst26_bread: startblock: 00002011 nblocks: 4
sst26_read: offset: 00201100 nbytes: 1024
sst26_read: return nbytes: 1024
sst26_bread: startblock: 00002010 nblocks: 1
sst26_read: offset: 00201000 nbytes: 256
sst26_read: return nbytes: 256
lfs_mount: lfs_mount -> 0
_assert: Current Version: NuttX  12.4.0 d4d49e9645-dirty Mar 19 2024 01:12:31 arm _assert: Assertion failed panic: at file: armv7-m/arm_hardfault.c:175 task:  process: Kernel 0x801b7c5
up_dump_register: R0: 08051c0c R1: 02aea540 R2: 00000050  R3: 02aea540
up_dump_register: R4: 00000001 R5: 20000154 R6: 00000000  FP: 00000000
up_dump_register: R8: 00000000 SB: 00000000 SL: 00000000 R11: 00000000
up_dump_register: IP: a0000000 SP: 20008238 LR: 08012fb7  PC: 08012f36
up_dump_register: xPSR: 01000000 PRIMASK: 00000000 CONTROL: 00000000
up_dump_register: EXC_RETURN: fffffff9
dump_stacks: ERROR: Stack pointer is not within the stack
dump_stack: User Stack:
dump_stack:   base: 0x1
dump_stack:   size: 00002000
stack_dump: 0x1: 81200040 af080000 af080000 af080000 af080000 af080000 af080000 af080000 stack_dump: 0x21: af080000 af080000 af080000 af080000 af080000 af080000 af080000 af080000 stack_dump: 0x41: af080000 af080000 af080000 af080000 af080000 af080000 af080000 af080000 stack_dump: 0x61: af080000 af080000 af080000 af080000 af080000 af080000 af080000 44080000 stack_dump: 0x81: c00000f2 d00000f6 44d000f8 c00004f2 000000f6 4e468668 ce5008f6 440000f2 stack_dump: 0xa1: c00100f2 010100f6 00477060 fdbf00bf ffffffe7 ffffffff ffffffff ffffffff stack_dump: 0xc1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0xe1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x101: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x121: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x141: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x161: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x181: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x1a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x1c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x1e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x201: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x221: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x241: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x261: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x281: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x2a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x2c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x2e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x301: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x321: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x341: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x361: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x381: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x3a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x3c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x3e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x401: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x421: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x441: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x461: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x481: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x4a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x4c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x4e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x501: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x521: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x541: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x561: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x581: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x5a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x5c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x5e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x601: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x621: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x641: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x661: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x681: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x6a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x6c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x6e1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x701: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x721: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x741: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x761: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x781: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x7a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff stack_dump: 0x7c1: ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000000 00000000 dump_tasks:    PID GROUP PRI POLICY   TYPE    NPX STATE EVENT      SIGMASK          STACKBASE  STACKSIZE   COMMAND dump_task:       0     0   0 FIFO     Kthread - Ready 0000000000000000 0x20005c6c       992   Idle_Task dump_task:       1     1 224 RR       Kthread - Waiting Semaphore 0000000000000000 0x20006f78      1968   hpwork 0x20004230 0x20004244 dump_task:       2     7 100 RR       Task    - Running 0000000000000000 0x1      2000

Even better !

Dont tell me to increase stack - this is a builtin command, and the memory is deeply corrupted.



Please fix this mess. Last time I checked littlefs was around version 2.2 and it worked, we have it in prod.

NuttX master branch is not a personal playground, it has to stay stable for *everyone*.

Extremely long checks when sending pull requests should ensure this. They dont.

If tests are useless , then committers should be more careful, and tests improved.

Dont tell me to send fixes - I did not break this. I'm just tired that NuttX always breaks when doing the simplest upgrades. You never know what will explode, but it is sure to blow up in your face!

But NuttX is a mess, no change, and little hope for improvement.

Best solution for me at dayjob is to avoid upgrading NuttX, and plan to use another stable OS to avoid technical debt.

Best solution for my personal project is not to use NuttX.

Shame. I know the reasons are bad management.

Sebatien


Reply via email to