Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkg/nanors: add reed solomon codec implementation #17703

Merged
merged 2 commits into from
Feb 26, 2022

Conversation

benpicco
Copy link
Contributor

Contribution description

nanors provides fast reed solomon codes in GF2^8.
On Cortex-M4 the implementation (rs.o) only consumes a little less than 2k ROM.

Testing procedure

A test application is provided in tests/pkg_nanors.
It generates random data, parity shards and then deletes random shards and attempts to reconstruct them.

Issues/PRs references

@github-actions github-actions bot added Area: doc Area: Documentation Area: pkg Area: External package ports Area: tests Area: tests and testing framework labels Feb 25, 2022
@kaspar030
Copy link
Contributor

Nice, stack usage is quite low:

        pid | name                 | state    Q | pri | stack  ( used) ( free) | base addr  | current     
          - | isr_stack            | -        - |   - |    512 (  164) (  348) | 0x20000000 | 0x200001c8
          1 | main                 | running  Q |   7 |   1536 (  504) ( 1032) | 0x20000f98 | 0x2000151c 
            | SUM                  |            |     |   2048 (  668) ( 1380)

(on nrf52840dk, probably the printf of ps used more)

Copy link
Contributor

@kaspar030 kaspar030 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. Nice library!

@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Feb 25, 2022
tests/pkg_nanors/main.c Outdated Show resolved Hide resolved
@kaspar030
Copy link
Contributor

Apart from the mips type mismatch (how annoying, didn't we deprecate mips...), nucleo-l011k4 arduino-duemilanove stk3200 arduino-uno arduino-nano nucleo-f031k6 atmega328p-xplained-mini arduino-leonardo samd10-xmini stm32f030f4-demo atmega328p are rom overflows.

@benpicco benpicco merged commit d5f570c into RIOT-OS:master Feb 26, 2022
@benpicco benpicco deleted the pkg/nanors branch February 26, 2022 18:35
@OlegHahm OlegHahm added this to the Release 2022.04 milestone Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: doc Area: Documentation Area: pkg Area: External package ports Area: tests Area: tests and testing framework CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants