Jul 03, 2021
03:23 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 03, 2021
03:23 PM
The following error occurred while working with DAVE 4.4.2 and XMC4700:
From two timers that were periodically started with "SYSTIMER_StartTimer()", one timer sporadically stopped working
(the callback function was no longer called) if a file was transferred to the XMC4700 via ethernet.
After a few tests it turned out that the cause for this was the call to FATFS/SDMMC.
The SDMMC functions call SYSTIMER_StartTimer() and SYSTIMER_StopTimer() functions for each data block.
These SDMMC timer calls can be interrupted by timer calls of the SYSTMER interrupt and lead to errors,
when the timer functions are currently performing chain-in or chain-off operations.
In order to avoid these malfunctions, user programs and SDMMC may only use the following
interrupt protected versions of the timer calls:
SYSTIMER_CreateTimerFromISR (), SYSTIMER_StartTimerFromISR (), SYSTIMER_StopTimerFromISR (),
SYSTIMER_RestartTimerFromISR (), SYSTIMER_DeleteTimerFromISR ().
After integrating the interruption-protected versions of the timer calls in SDMMC, the timer malfunction described above has not yet occurred again.
best regards Hans
From two timers that were periodically started with "SYSTIMER_StartTimer()", one timer sporadically stopped working
(the callback function was no longer called) if a file was transferred to the XMC4700 via ethernet.
After a few tests it turned out that the cause for this was the call to FATFS/SDMMC.
The SDMMC functions call SYSTIMER_StartTimer() and SYSTIMER_StopTimer() functions for each data block.
These SDMMC timer calls can be interrupted by timer calls of the SYSTMER interrupt and lead to errors,
when the timer functions are currently performing chain-in or chain-off operations.
In order to avoid these malfunctions, user programs and SDMMC may only use the following
interrupt protected versions of the timer calls:
SYSTIMER_CreateTimerFromISR (), SYSTIMER_StartTimerFromISR (), SYSTIMER_StopTimerFromISR (),
SYSTIMER_RestartTimerFromISR (), SYSTIMER_DeleteTimerFromISR ().
After integrating the interruption-protected versions of the timer calls in SDMMC, the timer malfunction described above has not yet occurred again.
best regards Hans
Solved! Go to Solution.
- Tags:
- IFX
1 Solution
Jul 11, 2021
10:56 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 11, 2021
10:56 PM
Hi Hans,
Thanks for sharing your solution with community.
Best Regards,
Vasanth
Thanks for sharing your solution with community.
Best Regards,
Vasanth
1 Reply
Jul 11, 2021
10:56 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 11, 2021
10:56 PM
Hi Hans,
Thanks for sharing your solution with community.
Best Regards,
Vasanth
Thanks for sharing your solution with community.
Best Regards,
Vasanth
This widget could not be displayed.