libDaisy icon indicating copy to clipboard operation
libDaisy copied to clipboard

SSD1307 dma

Open AndrewCapon opened this issue 1 year ago • 1 comments

This also includes: https://github.com/electro-smith/libDaisy/pull/624

Added DMA transfers for data transfers to reduce cpu overhead.

display.h has a new pure virtual bool UpdateFinished(), returns true if the update has finished.

oled_display.h implements UpdateFinished() and calls the driver.

SSD130x4WireSpiTransport has been altered to support basic chained DMA via the finished callback, Config now has a useDma flag to enable DMA.

Some times:

Using SPI Prescaler = 2

Blocking
  1492.6 us total update time and Cpu

Dma
  Total update time = 1549.3us
  Cpu = (12.9us*16) + 0.3us = 206.7us

AndrewCapon avatar Apr 29 '24 14:04 AndrewCapon

Test Results

151 tests  ±0   151 :white_check_mark: ±0   0s :stopwatch: ±0s  16 suites ±0     0 :zzz: ±0    1 files   ±0     0 :x: ±0 

Results for commit 8a602c94. ± Comparison against base commit f7727edb.

:recycle: This comment has been updated with latest results.

github-actions[bot] avatar Apr 29 '24 14:04 github-actions[bot]