Files
nuttx-apps/examples
Stepan Pressl cf41b01135 netutils/libshvc: add Silicon Heaven integration into NuttX and SHV examples
This commit marks the end of my GSoC 2025 project in the NuttX section.
All changes:

- Silicon Heaven protocol (SHV) implementation:
  The library is cloned from github.com/silicon-heaven/shv-libs4c
  and compiled here. The library has out-of-the-box support
  for NuttX and possibly all posix systems.
  The library is compiled with CONFIG_SHV_LIBS4C_PLATFORM define
  set to "nuttx". The library's dependancy is Pavel Pisa's ULUT
  and originates from Michal Lenc's GSoC.

- examples/shv-nxboot-updater:
  An example which constructs a SHV tree with which you can perform
  firmware updates using a SHV "file node". The file node wraps
  around NXBoot's update partition.
  The application also allows for NXBoot confirmation of the images.
  This application is to be meant used as a "background service",
  started before any apps, possibly using rcS. The tree is allocated
  as GAVL (see below).

- examples/shv-test:
  An example which constructs a SHV tree and gives the user
  the ability to choose which type of construction should be used,
  either:
    - GAVL:       dynamic SHV tree allocation encapsulated within
                  an AVL tree.
    - GSA:        dynamic SHV tree allocation encapsulated within
                  a continuous array with binary search
    - GSA_STATIC: SHV tree is defined as static const, this means
                  all the data structures are placed in .rodata.
		  Extremely beneficial for embedded systems,
		  as .rodata is located in flash and embedded
		  systems usually have more flash than sram,
		  thus reducing sram usage. The downside is that
		  the definitions are rather tedious, but can
		  be automated in case of some code generation
		  (like in pysimCoder).
		  All of it is places in a continuous array with
		  binary search.

Signed-off-by: Stepan Pressl <pressl.stepan@gmail.com>
2025-09-24 21:43:07 +08:00
..
2025-03-30 11:36:48 +08:00
2025-01-03 21:28:20 +08:00
2025-02-05 10:51:56 +08:00
2025-01-03 21:28:20 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2025-06-27 09:41:29 +08:00
2025-02-25 09:31:30 +01:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-05-28 10:16:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2025-01-03 21:28:20 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-01-16 22:48:45 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2025-04-11 09:43:07 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2025-02-25 09:27:14 +01:00
2025-01-03 21:28:20 +08:00
2025-04-11 09:43:07 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00
2025-01-03 21:28:20 +08:00
2025-01-03 21:28:20 +08:00
2024-12-30 18:02:50 +08:00
2024-12-30 18:02:50 +08:00