You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is based on reviewing the code, I haven't yet observed any problems running the code. Not sure if this is really an issue, so feel free to close if considered not relevant.
Function rmt_fill_memory() is called dual-use from task and ISR context. It subsequently calls the portENTER_CRITICAL() and portEXIT_CRITICAL() macros.
Thanks for the comprehensive description of what you're seeing.
In IDF, we have made some modifications to standard FreeRTOS behaviour. One of these is that it's safe to call portENTER_CRITICAL() from an ISR. It may be necessary to enter a critical sectio in an ISR, in order to prevent concurrent access by the other CPU.
This is based on reviewing the code, I haven't yet observed any problems running the code. Not sure if this is really an issue, so feel free to close if considered not relevant.
Function
rmt_fill_memory()
is called dual-use from task and ISR context. It subsequently calls theportENTER_CRITICAL()
andportEXIT_CRITICAL()
macros.But http://www.freertos.org/taskENTER_CRITICAL_taskEXIT_CRITICAL.html states that these macros must not be called from ISR context (e.g.
taskENTER_CRITICAL()
directly maps toportENTER_CRITICAL()
in components/freertos/include/freertos/task.h).The text was updated successfully, but these errors were encountered: