diff options
author | Damien George <damien.p.george@gmail.com> | 2018-09-12 16:55:46 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-09-12 17:02:17 +1000 |
commit | 9fb1f18cf450216e30d28ccd246a596555b09f87 (patch) | |
tree | 89b8a73ed6716d7f5248da30e3c219b21bf498b9 /py/nativeglue.c | |
parent | e6a6ded74ec135a77e91aa87f2939e60c371d7f4 (diff) | |
download | micropython-9fb1f18cf450216e30d28ccd246a596555b09f87.tar.gz micropython-9fb1f18cf450216e30d28ccd246a596555b09f87.zip |
stm32/sdcard: Fully reset SDMMC periph before calling HAL DMA functions.
The HAL DMA functions enable SDMMC interrupts before fully resetting the
peripheral, and this can lead to a DTIMEOUT IRQ during the initialisation
of the DMA transfer, which then clears out the DMA state and leads to the
read/write not working at all. The DTIMEOUT is there from previous SDMMC
DMA transfers, even those that succeeded, and is of duration ~180 seconds,
which is 0xffffffff / 24MHz (default DTIMER value, and clock of
peripheral).
To work around this issue, fully reset the SDMMC peripheral before calling
the HAL SD DMA functions.
Fixes issue #4110.
Diffstat (limited to 'py/nativeglue.c')
0 files changed, 0 insertions, 0 deletions