Skip to content

ESP32 ROM Table Support #35

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

imwhocodes
Copy link
Contributor

ESP32 already have CRC tables in the ROM blob
https://github.com/espressif/esp-idf/blob/master/components/esp_rom/include/esp32/rom/crc.h

This is an initial commit to open the discussion for an ESP32 specialisation

I only implemented CRC32 (but not tested checksum mode, only CRC32)

Given the documentation all modes of CRC8 and CRC16 can be implemented

For the moment it is only a draft given:

  1. Various CRC8 and CRC16 not implemented
  2. Documentation say that you should bitwise negate (~) both the initial seed and the result, but I find out that it work (give same result as the library) only if I bitwise negate only the seed

@FrankBoesing
Copy link
Owner

That's very interesting!
I'm currently moving house and will be looking at this next week or the week after.

@imwhocodes
Copy link
Contributor Author

For the moment I disabled it on my codebase, I'm having problem where if I use the crc32 functions of the ROM the FreeRTOS start missing ticks, I'm supposing it is because being a ROM function it implicitly disable interrupts (even if there should be no need given what it do)

It need more testing and investigation for sure

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.

2 participants