Move the mcpwm on_full callback entry point to the IRAM.#490
Merged
runger1101001 merged 1 commit intosimplefoc:devfrom Oct 14, 2025
Merged
Move the mcpwm on_full callback entry point to the IRAM.#490runger1101001 merged 1 commit intosimplefoc:devfrom
runger1101001 merged 1 commit intosimplefoc:devfrom
Conversation
b83adfa to
59468f4
Compare
Contributor
Author
|
Just rebased to dev, it seems the master branch is not intended to be the target of PRs. |
It will ensure that all the ADC processing triggered by the MCPWM ISR can run if the ESP32 cache is disabled, preventing the application to crash. Signed-off-by: Felipe Neves <[email protected]>
59468f4 to
3abbbfc
Compare
Member
|
Hi @uLipe , thank you so much for this! Its wonderful to have an ESP32 expert help us with difficult details like this, your contribution is greatly appreciated. |
Member
|
Thanks for this! This one literally takes an expert to catch and solve 🙃 |
Contributor
Author
|
Thank you @runger1101001 and @askuric , I also have a WIP of adding the adc digi which results on a async and faster sample rate. For esp32 variant with some tricks it is possible to achieve +1MSPS delivered by DMA. |
Member
|
Thanks a bunch for this! I will merge it now. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello folks, after years following / and using simpleFoC, I finally found some spare time to contribute to it , I have been hacking ESP32 for doing motor control for a couple of years (and besides that I'm an ex-Espressifer) so I'd like to join the party here and try to help on making ESP32 usage more and more smooth.
Now, my first PR, I started with this small one after finding some crashes when using simpleFoC (and my own FoC lib) with LVGL, when the ESP32 cache is disabled plus the control torque is enabled, because the mcpwm uses a lambda for the on_full callback it is not placed in the IRAM, so if cache is disabled a crash is raised.
This PR address the issue, by removing the lambda expression and proper declaring the MCPWM hanlder at the iRAM, making sure that all processing of the MCPWM iSR happens at the IRAM.
Please let me know if I'm violating any rules of contribution.