mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
Adds two sections to the xipfs suite, guarded by CONFIG_FDPIC so a build without the loader is unaffected. They belong here rather than in their own test because what they exercise is modules loaded *out of the filesystem* -- the pin, the in-place mapping and the loader are one path. 'fdpic' asserts on the loader properties that otherwise fail *quietly*: a loader that skips DT_INIT_ARRAY runs a C++ module happily with every global left zero, one that skips DT_JMPREL loads a module that hard-faults only once it calls out, and one that mis-sizes the descriptor pool corrupts the heap. None of those announce themselves. The module exit status is the channel -- each module checks its own invariants and reports a bitmask. It also covers shared libraries across concurrent instances, per-instance data, the leaf-library GOT fallback, the R_ARM_FUNCDESC descriptor pool, and every firmware entry point that has to resolve a module callback, including mq_notify and timer_create with SIGEV_THREAD. 'reject' mutates a known-good module byte by byte and asserts the loader refuses it rather than loading something broken: a missing import, and more DT_NEEDED entries than the walk will follow. The modules are embedded as headers, for the same reason as in examples/fdpicxip, and built for cortex-m3 for the same reason: one set of blobs then runs on both the v7-M and v8-M targets. Their sources and the makefile that regenerates these headers live in apps/examples/fdpicxip/modules, so the copies the two apps carry are built from the same sources in the same way. Verified on a Pimoroni Pico Plus 2: fdpic 33/33, reject 7/7, and the whole suite 130/130 with them included. The same three numbers on mps2-an500 under QEMU, which is a Cortex-M7 rather than the RP2350's Cortex-M33. Assisted-by: Claude Code:claude-opus-5 Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com> |
||
|---|---|---|
| .. | ||
| arch | ||
| cmocka | ||
| crypto | ||
| cxx | ||
| cxx-oot-build | ||
| drivers | ||
| enet | ||
| fff | ||
| fs | ||
| libc | ||
| ltp | ||
| mm | ||
| nettest | ||
| nuts | ||
| ostest | ||
| sched | ||
| sig_sp_test | ||
| testsuites | ||
| unity | ||
| .gitignore | ||
| CMakeLists.txt | ||
| Make.defs | ||
| Makefile | ||