#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 |