Files

32 lines
581 B
C++

#include "lcd_dma.h"
#define SDRAM_BASE ((uint32_t)0xC0000000)
LcdDma &LcdDma::instance()
{
static LcdDma dma;
return dma;
}
RetCode LcdDma::init()
{
if (initialized_) {
return RET_OK;
}
buffer_ = (uint16_t *)(SDRAM_BASE + LCD_DMA_BUFFER_OFFSET);
initialized_ = true;
return RET_OK;
}
void LcdDma::fillBuffer(uint16_t color)
{
uint32_t *dst = (uint32_t *)buffer_;
uint32_t count32 = LCD_DMA_PIXELS / 2;
uint32_t c32 = ((uint32_t)color << 16) | color;
for (uint32_t i = 0; i < count32; i++) {
dst[i] = c32;
}
}