Skip to content
Snippets Groups Projects
  1. Sep 12, 2018
    • Damien George's avatar
      stm32/sdcard: Fully reset SDMMC periph before calling HAL DMA functions. · 9fb1f18c
      Damien George authored
      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.
      9fb1f18c
    • Damien George's avatar
      e6a6ded7
    • Damien George's avatar
    • Damien George's avatar
      extmod/moduhashlib: Use newer message digest API for mbedtls >=2.7.0. · 87d45f4d
      Damien George authored
      Since mbedtls 2.7.0 new digest functions were introduced with a "_ret"
      suffix to allow the functions to return an error message (eg, if the
      underlying hardware acceleration failed).  These new functions must be used
      instead of the old ones to prevent deprecation warnings, or link errors for
      missing functions, depending on the mbedtls configuration.
      87d45f4d
    • Damien George's avatar
    • Damien George's avatar
      stm32: Change flash IRQ priority from 2 to 6 to prevent preemption. · 0941a467
      Damien George authored
      The flash-IRQ handler is used to flush the storage cache, ie write
      outstanding block data from RAM to flash.  This is triggered by a timeout,
      or by a direct call to flush all storage caches.
      
      Prior to this commit, a timeout could trigger the cache flushing to occur
      during the execution of a read/write to external SPI flash storage.  In
      such a case the storage subsystem would break down.
      
      SPI storage transfers are already protected against USB IRQs, so by
      changing the priority of the flash IRQ to that of the USB IRQ (what is
      done in this commit) the SPI transfers can be protected against any
      timeouts triggering a cache flush (the cache flush would be postponed until
      after the transfer finished, but note that in the case of SPI writes the
      timeout is rescheduled after the transfer finishes).
      
      The handling of internal flash sync'ing needs to be changed to directly
      call flash_bdev_irq_handler() sync may be called with the IRQ priority
      already raised (eg when called from a USB MSC IRQ handler).
      0941a467
  2. Sep 11, 2018
  3. Sep 10, 2018
  4. Sep 07, 2018
  5. Sep 05, 2018
  6. Sep 04, 2018
  7. Sep 03, 2018
    • Damien George's avatar
      py/emitnative: Cancel caught exception once handled to prevent reraise. · 3cd2c281
      Damien George authored
      The native emitter keeps the current exception in a slot in its C stack
      (instead of on its Python value stack), so when it catches an exception it
      must explicitly clear that slot so the same exception is not reraised later
      on.
      3cd2c281
    • Damien George's avatar
      py/vm: Fix handling of finally-return with complex nested finallys. · b7352084
      Damien George authored
      Back in 8047340d basic support was added in
      the VM to handle return statements within a finally block.  But it didn't
      cover all cases, in particular when some finally's were active and others
      inactive when the "return" was executed.
      
      This patch adds further support for return-within-finally by correctly
      managing the currently_in_except_block flag, and should fix all cases.  The
      main point is that finally handlers remain on the exception stack even if
      they are active (currently being executed), and the unwind return code
      should only execute those finally's which are inactive.
      
      New tests are added for the cases which now pass.
      b7352084
  8. Aug 17, 2018
Loading