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

crc table #186

Merged
merged 3 commits into from
Dec 4, 2021
Merged

crc table #186

merged 3 commits into from
Dec 4, 2021

Conversation

coderkalyan
Copy link
Contributor

Closes #185

@coderkalyan coderkalyan changed the base branch from master to v2 December 2, 2021 18:39
libcanard/canard.c Outdated Show resolved Hide resolved
@pavel-kirienko
Copy link
Member

I see that the workflow has failed because the secrets are not exposed to builds originating from forks. Should we reconfigure the workflow to skip SonarScanner unless the secrets are available? If you think this is sensible then perhaps we should fix it in this pull request.

@coderkalyan
Copy link
Contributor Author

Sure, thats acceptable. Not ideal but I don't see a clean way of doing it otherwise. I'll update this PR later.

Adds a build option `CANARD_CRC_TABLE` which replaces the
runtime-computed CRC with a static table. This option adds ~512 bytes
ROM but reduces computation time significantly.
@pavel-kirienko pavel-kirienko merged commit 62dba01 into OpenCyphal:v2 Dec 4, 2021
pavel-kirienko added a commit that referenced this pull request Dec 4, 2021
* Drop canard_dsdl, use Nunavut instead

* Upgrade CI to LLVM 13

* Actualize license headers

* Support redundant transmission queues and use more consistent public field naming

* Ditch the deprecated canardRxAccept(), rename canardRxAccept2()

* Refactor the API to eliminate the need to cast away const qualifiers; fixes #175

* Tighten up memory checking in the test suite -- add canaries

* Fix race condition in the roundtrip test

* Do not use Catch2 macros from non-main thread because it is not thread-safe

* Support CANARD_CONFIG_HEADER

* CI: add style_check job

* Use AVL tree in the transmission queue

* Remove all linked lists

* Reduce indirection, pointer casts, and memory footprint by exposing the AVL tree in the public API

* Disable C++-specific warnings as they make no sense for a C library

* Add table-based CRC option (#186)

* CI: disable SonarCloud on forks

* Add docker utilities (#187)

* Add acceptance filter configuration helpers (#171)

Co-authored-by: Kalyan Sriram <coder.kalyan@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CRC computation is a performance bottleneck
2 participants