[X] I have checked latest main branch and the issue still exists.
[X] I did not see it is stated as known-issue in release notes.
[X] No similar GitHub issue is related to this change.
[X] My code follows the commit guidelines of this project.
[X] I have performed a self-review of my own code.
[X] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
Describe the pull request
Update the flexcan 6032 errata workaround function to disable all interrupts instead of only flexcan interrupts. This resolves issues when running with an RTOS as a context switch during the errata workaround function could cause issues such as an RX FIFO overflow. Also move the call to the errata workaround function within the check to see if there is a transfer already in progress, otherwise the errata workaround function will always just abort an already started transfer.
Fixes # 66
Type of change (please delete options that are not relevant):
[X] Bug fix (non-breaking change which fixes an issue)
Tests
Test configuration (please complete the following information):
Hardware setting: 3 i.MX RT 1051 based boards
Toolchain: GCC
Test Tool preparation:
Any other dependencies:
Test executed
Left system running with regular CAN traffic for 2 full days with no errors observed. This setup included a total of 7 i.MX RT 1051 based boards (3 different designs) communicating with each other on CAN.
Prerequisites
Describe the pull request
Update the flexcan 6032 errata workaround function to disable all interrupts instead of only flexcan interrupts. This resolves issues when running with an RTOS as a context switch during the errata workaround function could cause issues such as an RX FIFO overflow. Also move the call to the errata workaround function within the check to see if there is a transfer already in progress, otherwise the errata workaround function will always just abort an already started transfer.
Fixes # 66
Type of change (please delete options that are not relevant):
Tests