#define GUI_NUMBYTES (1024 * 1024) * 24 // x MByte
#define GUI_BLOCKSIZE 0x80
U32 static _aMemory[GUI_NUMBYTES / 4] __attribute__ ((section(".GUI_RAM")));
void GUI_X_Config(void) {
//
// Assign memory to emWin
//
GUI_ALLOC_AssignMemory(_aMemory, GUI_NUMBYTES);
GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
}
|
#define FB_XSIZE 480
#define FB_YSIZE 272
#define XSIZE_PHYS FB_XSIZE
#define YSIZE_PHYS FB_YSIZE
#define NUM_BUFFERS 3
#define NUM_VSCREENS 1
#define PIXEL_WIDTH 4
#define VRAM_ADDR_PHYS (U32)&_aVRAM[0]
#define COLOR_CONVERSION GUICC_8888
static U32 _aVRAM[NUM_BUFFERS * FB_XSIZE * FB_YSIZE / (4 / PIXEL_WIDTH)] __attribute__ ((section (".VRAM")));
void LCD_X_Config(void)
{
GUI_MULTIBUF_Config(NUM_BUFFERS);
//
// Set display driver and color conversion for 1st layer
//
GUI_DEVICE_CreateAndLink(GUIDRV_LIN_32, COLOR_CONVERSION, 0, 0);
//
// Display driver configuration, required for Lin-driver
//
LCD_SetPosEx(0, 0, 0);
if (LCD_GetSwapXY())
{
LCD_SetSizeEx(0, YSIZE_PHYS, XSIZE_PHYS);
LCD_SetVSizeEx(0, YSIZE_PHYS * NUM_VSCREENS, XSIZE_PHYS);
}
else
{
LCD_SetSizeEx(0, XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx(0, XSIZE_PHYS, YSIZE_PHYS * NUM_VSCREENS);
}
LCD_SetVRAMAddrEx(0, (void *) VRAM_ADDR_PHYS);
}
|
.GUI_RAM (NOLOAD) :
{
. = ALIGN(4);
*(.GUI_RAM)
*(.VRAM)
. = ALIGN(4);
} >MEMORY_B1
|