FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - jberkhout

Pages: 1 [2] 3
16
Discussion - Hardware / FT813 GRAM size 1MB to be increased soon?
« on: September 12, 2018, 01:24:58 PM »
Hi,
we use a lot of bitmaps, and when bitmaps are displayed, they have to stay in GRAM, so removing them while displaying content is not possible.
Or to do this, we may need to blank the display for a moment, every time we show a new page.
Of course we try to optimize bitmaps and load first what we always need, so we can keep them, while reloading a part of GRAM.
But 1MB of GRAM is a limiting factor to use this display for all our applications.
Is there a chance a new controller will be developed with more GRAM, say 4MB?
Regards,
Jack.

17
Discussion - Software / Re: Timing parameters for EVE modules?
« on: July 08, 2018, 05:11:35 PM »
Hi Rudolph,

this is what I collected:

Code: [Select]
/* Macros for display panels */

// QVGA 320x240
#define FT_DISPLAY_HSIZE_QVGA_320x240           (320L) // DispWidth  display width
#define FT_DISPLAY_VSIZE_QVGA_320x240           (240L) // DispHeight display height
#define FT_DISPLAY_HCYCLE_QVGA_320x240          (408L) // DispHCycle
#define FT_DISPLAY_HOFFSET_QVGA_320x240         (70L)  // DispHOffset
#define FT_DISPLAY_HSYNC0_QVGA_320x240          (0L)   // DispHSync0
#define FT_DISPLAY_HSYNC1_QVGA_320x240          (10L)  // DispHSync1
#define FT_DISPLAY_VCYCLE_QVGA_320x240          (263L) // DispVCycle
#define FT_DISPLAY_VOFFSET_QVGA_320x240         (13L)  // DispVOffset
#define FT_DISPLAY_VSYNC0_QVGA_320x240          (0L)   // DispVSync0
#define FT_DISPLAY_VSYNC1_QVGA_320x240          (2L)   // DispVSync1
#define FT_DISPLAY_PCLK_QVGA_320x240            (8)    // DispPCLK
#define FT_DISPLAY_SWIZZLE_QVGA_320x240         (2)    // DispSwizzle
#define FT_DISPLAY_PCLKPOL_QVGA_320x240         (0)    // DispPCLKPol
#define FT_DISPLAY_DISPCSPREAD_QVGA_320x240     (1)    // DispCSpread
#define FT_DISPLAY_DISPDITHER_QVGA              (1)    // DispDither

// WQVGA 480x272
#define FT_DISPLAY_HSIZE_WQVGA_480x272          (480L) // DispWidth  display width
#define FT_DISPLAY_VSIZE_WQVGA_480x272          (272L) // DispHeight display height
#define FT_DISPLAY_HCYCLE_WQVGA_480x272         (548L) // DispHCycle
#define FT_DISPLAY_HOFFSET_WQVGA_480x272        (43L)  // DispHOffset
#define FT_DISPLAY_HSYNC0_WQVGA_480x272         (0L)   // DispHSync0
#define FT_DISPLAY_HSYNC1_WQVGA_480x272         (41L)  // DispHSync1
#define FT_DISPLAY_VCYCLE_WQVGA_480x272         (292L) // DispVCycle
#define FT_DISPLAY_VOFFSET_WQVGA_480x272        (12L)  // DispVOffset
#define FT_DISPLAY_VSYNC0_WQVGA_480x272         (0L)   // DispPCLKPol
#define FT_DISPLAY_VSYNC1_WQVGA_480x272         (10L)  // DispVSync1
#define FT_DISPLAY_PCLK_WQVGA_480x272           (5)    // DispPCLK
#define FT_DISPLAY_SWIZZLE_WQVGA_480x272        (0)    // DispSwizzle
#define FT_DISPLAY_PCLKPOL_WQVGA_480x272        (1)    // DispPCLKPol
#define FT_DISPLAY_DISPCSPREAD_WQVGA_480x272    (1)    // DispCSpread
#define FT_DISPLAY_DISPDITHER_WQVGA_480x272     (1)    // DispDither

// HVGA 320x480 Portrait
#define FT_DISPLAY_HSIZE_HVGA_480x320          (320L) // DispWidth  display width
#define FT_DISPLAY_VSIZE_HVGA_480x320          (480L) // DispHeight display height
#define FT_DISPLAY_HCYCLE_HVGA_480x320         (400L) // DispHCycle
#define FT_DISPLAY_HOFFSET_HVGA_480x320        (40L)  // DispHOffset
#define FT_DISPLAY_HSYNC0_HVGA_480x320         (0L)   // DispHSync0
#define FT_DISPLAY_HSYNC1_HVGA_480x320         (10L)  // DispHSync1
#define FT_DISPLAY_VCYCLE_HVGA_480x320         (500L) // DispVCycle
#define FT_DISPLAY_VOFFSET_HVGA_480x320        (10L)  // DispVOffset
#define FT_DISPLAY_VSYNC0_HVGA_480x320         (0L)   // DispPCLKPol
#define FT_DISPLAY_VSYNC1_HVGA_480x320         (5L)   // DispVSync1
#define FT_DISPLAY_PCLK_HVGA_480x320           (4)    // DispPCLK
#define FT_DISPLAY_SWIZZLE_HVGA_480x320        (2)    // DispSwizzle
#define FT_DISPLAY_PCLKPOL_HVGA_480x320        (1)    // DispPCLKPol
#define FT_DISPLAY_DISPCSPREAD_HVGA_480x320    (1)    // DispCSpread
#define FT_DISPLAY_DISPDITHER_HVGA_480x320     (1)    // DispDither

// ME812A-WH50R, ME812AU-WH50R, ME813A_WH50C, ME813AU_WH50C
// WVGA 800x480
#define FT_DISPLAY_HSIZE_WVGA_800x480           (800L) // DispWidth  display width
#define FT_DISPLAY_VSIZE_WVGA_800x480           (480L) // DispHeight display height
#define FT_DISPLAY_HCYCLE_WVGA_800x480          (928L) // DispHCycle
#define FT_DISPLAY_HOFFSET_WVGA_800x480         (88L)  // DispHOffset
#define FT_DISPLAY_HSYNC0_WVGA_800x480          (0L)   // DispHSync0
#define FT_DISPLAY_HSYNC1_WVGA_800x480          (48L)  // DispHSync1
#define FT_DISPLAY_VCYCLE_QVGA_800x480          (525L) // DispVCycle
#define FT_DISPLAY_VOFFSET_WVGA_800x480         (32L)  // DispVOffset
#define FT_DISPLAY_VSYNC0_WVGA_800x480          (0L)   // DispVSync1
#define FT_DISPLAY_VSYNC1_WVGA_800x480          (3L)   // DispVSync1
#define FT_DISPLAY_PCLK_WVGA_800x480            (2)    // DispPCLK
#define FT_DISPLAY_SWIZZLE_WVGA_800x480         (0)    // DispSwizzle
#define FT_DISPLAY_PCLKPOL_WVGA_800x480         (1)    // DispPCLKPol
#define FT_DISPLAY_DISPCSPREAD_WVGA_800x480     (0)    // DispCSpread
#define FT_DISPLAY_DISPDITHER_WVGA_800x480      (1)    // DispDither

Then you could maybe use something like this to select the correct block, depending on the display panel.

Code: [Select]
//#define ME800A_HV35R (1)  // 480x320
//#define ME810A_HV35R (1)  // 480x320
//#define EVE2_43G (1)  // 480x272
//#define ME812A_WH50R (1)  // 800x480
//#define ME812AU_WH50R (1)  // 800x480
#define ME813A_WH50C (1)  // 800x480
//#define ME813AU_WH50C (1)  // 800x480
//#define ME810A_WH70R (1)
//#define ME811A_WH70C (1)

#if defined(EVE2_43G)
#define my_DispWidth    FT_DISPLAY_HSIZE_WQVGA_480x272
#define my_DispHeight   FT_DISPLAY_VSIZE_WQVGA_480x272
#define my_DispHCycle   FT_DISPLAY_HCYCLE_WQVGA_480x272
#define my_DispHOffset  FT_DISPLAY_HOFFSET_WQVGA_480x272
#define my_DispHSync0   FT_DISPLAY_HSYNC0_WQVGA_480x272
#define my_DispHSync1   FT_DISPLAY_HSYNC1_WQVGA_480x272
#define my_DispVCycle   FT_DISPLAY_VCYCLE_WQVGA_480x272
#define my_DispVOffset  FT_DISPLAY_VOFFSET_WQVGA_480x272
#define my_DispVSync0   FT_DISPLAY_VSYNC0_WQVGA_480x272
#define my_DispVSync1   FT_DISPLAY_VSYNC1_WQVGA_480x272
#define my_DispPCLK     FT_DISPLAY_PCLK_WQVGA_480x272
#define my_DispSwizzle  FT_DISPLAY_SWIZZLE_WQVGA_480x272
#define my_DispPCLKPol  FT_DISPLAY_PCLKPOL_WQVGA_480x272
#endif

#if defined(ME800A_HV35R) || defined(ME810A_HV35R)
#define my_DispWidth    FT_DISPLAY_HSIZE_WQVGA_480x272
#define my_DispHeight   FT_DISPLAY_VSIZE_WQVGA_480x272
#define my_DispHCycle   FT_DISPLAY_HCYCLE_WQVGA_480x272
#define my_DispHOffset  FT_DISPLAY_HOFFSET_WQVGA_480x272
#define my_DispHSync0   FT_DISPLAY_HSYNC0_WQVGA_480x272
#define my_DispHSync1   FT_DISPLAY_HSYNC1_WQVGA_480x272
#define my_DispVCycle   FT_DISPLAY_VCYCLE_WQVGA_480x272
#define my_DispVOffset  FT_DISPLAY_VOFFSET_WQVGA_480x272
#define my_DispVSync0   FT_DISPLAY_VSYNC0_WQVGA_480x272
#define my_DispVSync1   FT_DISPLAY_VSYNC1_WQVGA_480x272
#define my_DispPCLK     FT_DISPLAY_PCLK_WQVGA_480x272
#define my_DispSwizzle  FT_DISPLAY_SWIZZLE_WQVGA_480x272
#define my_DispPCLKPol  FT_DISPLAY_PCLKPOL_WQVGA_480x272
#endif

#if defined(ME813A_WH50C) || defined(ME813AU_WH50C) || defined(ME812A_WH50R) || defined(ME812AU_WH50R)
#define my_DispWidth    FT_DISPLAY_HSIZE_WVGA_800x480
#define my_DispHeight   FT_DISPLAY_VSIZE_WVGA_800x480
#define my_DispHCycle   FT_DISPLAY_HCYCLE_WVGA_800x480
#define my_DispHOffset  FT_DISPLAY_HOFFSET_WVGA_800x480
#define my_DispHSync0   FT_DISPLAY_HSYNC0_WVGA_800x480
#define my_DispHSync1   FT_DISPLAY_HSYNC1_WVGA_800x480
#define my_DispVCycle   FT_DISPLAY_VCYCLE_QVGA_800x480
#define my_DispVOffset  FT_DISPLAY_VOFFSET_WVGA_800x480
#define my_DispVSync0   FT_DISPLAY_VSYNC0_WVGA_800x480
#define my_DispVSync1   FT_DISPLAY_VSYNC1_WVGA_800x480
#define my_DispPCLK     FT_DISPLAY_PCLK_WVGA_800x480
#define my_DispSwizzle  FT_DISPLAY_SWIZZLE_WVGA_800x480
#define my_DispPCLKPol  FT_DISPLAY_PCLKPOL_WVGA_800x480
#endif

Hope this helps.

If somebody has more definitions, let us collect them Rudolph's thread.

Kind regards,
Jack.

18
This is very useful information! Thank you very much!

19
Thank you very much!

Way to go, it works great! I see what has been done to make FT81x support greater resolutions now!

Super!

Code: [Select]
// Set up display list for bitmap - Cmd_SetBitmap - generate DL commands for bitmap parms
// FT81x Series Programmers Guide Section 5.65
ft_void_t FT813::SetBitmap(ft_int32_t addr, ft_int16_t fmt, ft_uint16_t width, ft_uint16_t height)
{
    StartFunc(FT_CMD_SIZE*4);
    SendCmd(CMD_SETBITMAP);
    SendCmd(addr);
    SendCmd((((ft_uint32_t)width<<16)|(fmt & 0xffff)));
    SendCmd((((ft_uint32_t)0<<16)|(height & 0xffff)));
    EndFunc();
}

void FT813::ShowBitmapAtAddress(ft_uint32_t addr, ft_int16_t fmt, ft_uint16_t x, ft_uint16_t y, ft_uint16_t width, ft_uint16_t height)
{
    DL(BITMAP_SOURCE(addr));
    SetBitmap(addr, fmt, width, height);  // Stil 511 pixel limit, somehow, need to check my code
    DL(VERTEX2F(x * 16, y * 16));    // Works fine
}


    // Load the image into GRAM (works fine)
    TFT.LoadInflateFile(0, "/fs/BACKGROUND_01.bin");
    TFT.Swap();                                 // Swap the current display list
    TFT.Flush_Co_Buffer();                      // Download the command list into fifo
    TFT.WaitCmdfifo_empty();                    // Wait till coprocessor completes the operation


    // Display the image above, it does display, but only a part of it
    TFT.DLstart();                              // start a new display command list
    TFT.DL(CLEAR_COLOR_RGB(0x10, 0x10, 0x10));  // set the clear color to white
    TFT.DL(CLEAR(1, 1, 1));                     // clear buffers -> color buffer,stencil buffer, tag buffer
    TFT.DL(COLOR_RGB(0xff, 0xff, 0xff));  // set the clear color to white
    TFT.DL(BEGIN(BITMAPS));

    TFT.ShowBitmapAtAddress(0, L8, 0, 0, 480, 800); // bitmap, fmt, x, y, w, h

    TFT.DL(DISPLAY());                          // Display the image
    TFT.Swap();                                 // Swap the current display list
    TFT.Flush_Co_Buffer();                      // Download the command list into fifo
    TFT.WaitCmdfifo_empty();                    // Wait till coprocessor completes the operation

VERTEX2II is also limited to 511 pixels for position, but I now use VERTEX2F for that one.

Hope this helps others!

20
Hi,

I just discovered a problem using the 800x480 display in portait mode:

BITMAP_LAYOUT and BITMAP_SIZE have only 8 bits for specifying the height, which gives a maximum of 511 pixels in height.
BITMAP_SIZE also has a limited width of 511 resolution.
So bitmaps that are bigger has greater resolution will not be handled correctly.

This is a limitation that should be addressed in the future of EVE, would it be able to support bigger displays (and portrait mode).

To work around this, I will try to cut my images so they don't exceed 511 pixels.

Hope this helps others.

Kind regards,
Jack.

21
Thank yes, I was reading in it this afternoon, it is useful.

To load raw, this function is used:

Code: [Select]
hal_spi_wr8s(phost, ram_start, imbuff, blocklen);

I'm looking for the implementation of this function, so I can test it.

Is it something like:

Code: [Select]
ft_void_t FT813::Wr8s(ft_uint32_t addr, ft_uint8_t *buffer, ft_uint8_t length)
{
    _ss = 0;       // cs low
    _spi.write(0x80 | (addr >> 16));
    _spi.write(addr >> 8);
    _spi.write(addr & 0xff);

    while (length--) {
        _spi.write(*buffer);
        buffer++;
    }
    _ss = 1;
}


22
This is how I determined the six 32-bit calibration values, and preset them without the need to calibrate every time at start up:

Code: [Select]
    TFT.Calibrate();                                    // calibrate the touch screen

    // Read calibrate registers
    printf("// Calibration values:\n");
    printf("    ft_uint32_t canned_calibration_data[] = {\n");
    for(int i = 0; i < 24; i+=4) {
        printf("        ");
        printf("0x%08x", TFT.read_calibrate_reg32(i));
        if (i < 20)
            printf(",");
        printf("\n");
    }
    printf("    };\n");
    printf("    TFT.write_all_calibrate32(canned_calibration_data);\n");


ft_uint32_t FT813::read_calibrate_reg32(ft_uint8_t i) {
    return (Rd8(REG_TOUCH_TRANSFORM_A + i)) +           // lsb
           (Rd8(REG_TOUCH_TRANSFORM_A + i+1) << 8) +
           (Rd8(REG_TOUCH_TRANSFORM_A + i+2) << 16) +
           (Rd8(REG_TOUCH_TRANSFORM_A + i+3) << 24);    //  msb
}

ft_void_t FT813::write_all_calibrate32(ft_uint32_t data[6]) {
    unsigned int i;
    for(i = 0; i < 6; i++) {
        Wr8(REG_TOUCH_TRANSFORM_A + i*4, (data[i]) & 0xff);       // lsb
        Wr8(REG_TOUCH_TRANSFORM_A + i*4 + 1, (data[i] >> 8) & 0xff);
        Wr8(REG_TOUCH_TRANSFORM_A + i*4 + 2, (data[i] >> 16) & 0xff);
        Wr8(REG_TOUCH_TRANSFORM_A + i*4 + 3, (data[i] >> 24) & 0xff);   // msb
    }
}


After calibration this got printed to the serial console, which code is used instead of 'TFT.Calibrate();'.

Code: [Select]
    ft_uint32_t canned_calibration_data[] = {
        0x000109b0,
        0x0000023d,
        0x0000fa64,
        0xffffffcf,
        0xfffefc9a,
        0x01ee8754
    };
    TFT.write_all_calibrate32(canned_calibration_data);

I hope it helps somebody.

23
This is how I control the backlight, I hope it helps somebody.

Code: [Select]
void FT813::SetBacklight(ft_uint16_t brightness)
{
    brightness = brightness * brightness / 255;
    if (brightness > 255)
        brightness = 255;
    if (brightness < 16)
        brightness = 16;
    Wr16(REG_PWM_DUTY, brightness); // Brightness
}

Regards,
Jack.

24
Hi,

I am working on a EVE library for the mbed (ARM Cortex) platform in combination with the EVE ME813A-WH50C display.

It is now working, displaying images from the displays GRAM, after a lot of trying.

I have edited this post when I discovered more about the cause of the problem.

After loading images into RAM (only once), they display correctly, in gray color.

The below code loads and shows 4 bitmaps on the correct place and in the correct gray color (On and Off buttons, in narrow and wide versions):

Code: [Select]
    TFT.DLstart();                              // start a new display command list
    TFT.DL(CLEAR_COLOR_RGB(0x25, 0x25, 0x25));  // set the clear color to white
    TFT.DL(CLEAR(1, 1, 1));                     // clear buffers -> color buffer,stencil buffer, tag buffer

    TFT.SetLoadAddress(0);
 
    //  Narrow On button, 100x132, Address 0-26400
    TFT.DL(BITMAP_HANDLE(0));
    TFT.Png("/fs/SWITCH_BUTTON_SMALL_ON_100x131.png", 20, 20);
 
    // Narrow Off button, 100x132, Address 26400-52800
    TFT.DL(BITMAP_HANDLE(1));
    TFT.Png("/fs/SWITCH_BUTTON_SMALL_OFF_100x131.png", 125, 20);

    // Wide On button, 182x132, Address 52800-100848
    TFT.DL(BITMAP_HANDLE(2));
    TFT.Png("/fs/SWITCH_BUTTON_LARGE_ON_181x131.png", 230, 20);

    // Wide Off button, 182x132, Address 100848-148896
    TFT.DL(BITMAP_HANDLE(3));
    TFT.Png("/fs/SWITCH_BUTTON_LARGE_OFF_181x131.png", 416, 20);

    TFT.DL(DISPLAY());                          // Display the image
    TFT.Swap();                                 // Swap the current display list
    TFT.Flush_Co_Buffer();                      // Download the command list into fifo
    TFT.WaitCmdfifo_empty();                    // Wait till coprocessor completes the operation

In TFT.png, the image was loaded using below code, which seems to work fine:

Code: [Select]
    // In short
    //    WrCmd32(CMD_LOADIMAGE);
    //    WrCmd32(_address);             //destination address of png decode
    //    WrCmd32(0);             // Output format of the bitmap OPT_RGB565
    //    WrCmdBuf((uint8_t *)pbuff, blocklen); //alignment is already taken care by this api

ft_uint8_t FT813::LoadPng(char* filename, ft_int16_t* x_size, ft_int16_t* y_size)
{
    int bufferSize = 8192;
    uint32_t marker1;
    uint32_t marker2;
    unsigned short length;
    unsigned char data[32];

    ft_uint16_t blocklen;
 
    FILE *fp = fopen(filename, "rb");
    if(fp == NULL) {
        printf("LoadPng: Cannot open file \"%s\".\n", filename);
        return (-1);         // cannot open file
    }

    // Get file size
    fseek(fp, 0, SEEK_END);
    unsigned int Fsize = ftell(fp);
    // search for 0x89504E47 and 0x0D0A1A0A markers "‰PNG...."
    fseek(fp, 2, SEEK_SET); // Beginning of file
    fread(data, 32, 1, fp); // Read first 32 bytes
    printf("LoadPng: Filesize %d\n", Fsize);
   
    // Check that this is indeed a PNG file
    unsigned char png_header[] = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A};
    if (memcmp(data, png_header, 8)) {
        printf("LoadPng: Not a PNG file.\n");
        return (-2);  // No FFC0 Marker, wrong format no baseline DCT-based JPEG
    }

    // Make sure you have an IHDR
    unsigned char ihdr_name[] = "IHDR";
    if (memcmp(data+8+4, ihdr_name, 4)) {
        // not an IHDR chunk, invalid PNG file
        printf("LoadPng: Not an IHDR chunk, invalid PNG file.\n");
        return (-3);  // No FFC0 Marker, wrong format no baseline DCT-based JPEG
    }
   
    // PNG actually stores integers in big-endian.
    *x_size = ReadBigInt32(data, 24 - 8);
    *y_size = ReadBigInt32(data, 24 - 4);
    uint16_t size_x = ReadBigInt32(data, 24 - 8);
    uint16_t size_y = ReadBigInt32(data, 24 - 4);
 
    if(*x_size > DispWidth || *y_size > DispHeight)
    {
        printf("LoadPng: Too big to fit on screen\n");
        printf("LoadPng: PNG (%dx%d) does not fit on TFT (%dx%d)\n", *x_size, *y_size, DispWidth, DispHeight);
        return (-3);  // Too big to fit on screen
    }

    fseek(fp, 0, SEEK_SET); // Beginning of file
   
    // http://www.ftdichip.com/Support/Documents/AppNotes/AN_339%20Using%20JPEGs%20with%20the%20FT800%20series.pdf
    // CMD_LOADIMAGE: This function will decode the JPEG file, produce
    // either RGB565 or L8 bitmap data and store this in graphics RAM.
    // It also writes commands to the display list to set the source, layout and size of the
    // image (BITMAP_SOURCE, BITMAP_LAYOUT and BITMAP_SIZE).
    // Note that only a BEGIN and VERTEX2F (or VERTEX2II) display list commands are then
    // required to complete the display list needed to render the image.
    WrCmd32(CMD_LOADIMAGE);
    WrCmd32(_address);             //destination address of png decode

    // Increment _address
    _addresses[_bitmap_count] = _address;
    _bitmap_count++;
    _address += (uint32_t) (size_x * size_y * 2);
    _addresses[_bitmap_count] = _address;

    // 0 OPT_RGB565
    // 1 OPT_MONO
    // 2 OPT_NODL
    // 256 OPT_FLAT
    // 256 OPT_SIGNED
    // 512 OPT_CENTERX
    // 1024 OPT_CENTERY
    // 1536 OPT_CENTER
    // 2048 OPT_RIGHTX
    // 4096 OPT_NOBACK
    // 8192 OPT_NOTICKS
    // By default, option OPT_RGB565 means the loaded bitmap is in RGB565 format.
    WrCmd32(0);             // Output format of the bitmap OPT_RGB565

    char* pbuff = (char*)malloc(bufferSize);

    unsigned int FsizeCounter = Fsize;
    while(FsizeCounter > 0) {
        /* download the data into the command buffer by 8kb one shot */
        blocklen = FsizeCounter > bufferSize ? bufferSize : FsizeCounter;

        /* copy the data into pbuff and then transfter it to command buffer */
        int size = fread(pbuff, 1, blocklen, fp);
        FsizeCounter -= blocklen;
        /* copy data continuously into command memory */
        WrCmdBuf((uint8_t *)pbuff, blocklen); //alignment is already taken care by this api
    }
    fclose(fp);

    // If the number of bytes in the JPEG file to be written to the command buffer is not a multiple of
    // four, then one, two or three bytes (of any value) should be added to ensure four-byte alignment of
    // the next command.
    blocklen = Fsize % 4;
    memset(pbuff, 0, bufferSize);
    WrCmdBuf((uint8_t *)pbuff, blocklen); //alignment is already taken care by this api
 
    free(pbuff);
    printf("LoadPng: Done.\n");

    return(0);
}

And the shown correctly with following code:

Code: [Select]
    DL(BEGIN(BITMAPS));                 
    DL(VERTEX2F(x * 16, y * 16));

Then, it should display several of the pre-loaded images from the displays GRAM at different locations on the screen.

It turnes out this works fine if I specify ARGB4 for the format in GRAM (trial and error). Why does it not match the RGB565 layout?

Code: [Select]
    TFT.DLstart();                              // start a new display command list
    TFT.DL(CLEAR_COLOR_RGB(0x25, 0x25, 0x25));  // set the clear color to white
    TFT.DL(CLEAR(1, 1, 1));                     // clear buffers -> color buffer,stencil buffer, tag buffer
             
    //  Narrow On button, 100x132, Address 0-26400
    TFT.DL(BITMAP_SOURCE(TFT.GetBitmapAddress(0)));
    TFT.DL(BITMAP_LAYOUT(ARGB4, 100*2, 132));    // <------- Why ARGB4 instead of RGB565?
    TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 100, 132));
    TFT.DL(BEGIN(BITMAPS));   
    TFT.DL(VERTEX2II(125, 190, 0, 0));

    // Narrow Off button, 100x132, Address 26400-52800
    TFT.DL(BITMAP_SOURCE(TFT.GetBitmapAddress(1)));
    TFT.DL(BITMAP_LAYOUT(ARGB4, 100*2, 132));    // <------- Why ARGB4 instead of RGB565?
    TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 100, 132));
    TFT.DL(BEGIN(BITMAPS));   
    TFT.DL(VERTEX2II(20, 190, 0, 0));

    // Wide On button, 182x132, Address 52800-100848
    TFT.DL(BITMAP_SOURCE(TFT.GetBitmapAddress(2)));
    TFT.DL(BITMAP_LAYOUT(ARGB4, 182*2, 132));    // <------- Why ARGB4 instead of RGB565?
    TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 182, 132));
    TFT.DL(BEGIN(BITMAPS));   
    TFT.DL(VERTEX2II(416, 190, 0, 0));

    // Wide Off button, 182x132, Address 100848-148896
    TFT.DL(BITMAP_SOURCE(TFT.GetBitmapAddress(3)));
    TFT.DL(BITMAP_LAYOUT(ARGB4, 182*2, 132));    // <------- Why ARGB4 instead of RGB565?
    TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 182, 132));
    TFT.DL(BEGIN(BITMAPS));   
    TFT.DL(VERTEX2II(230, 190, 0, 0));

    TFT.DL(END());                 
    TFT.DL(DISPLAY());                          // Display the image (erases the other images!)
    TFT.Swap();                                 // Swap the current display list
    TFT.Flush_Co_Buffer();                      // Download the command list into fifo
    TFT.WaitCmdfifo_empty();                    // Wait till coprocessor completes the operation

Definitions of RGB565, BITMAP_LAYOUT and BITMAP_SIZE_H:

Code: [Select]
#define RGB565               7UL

#define BITMAP_LAYOUT(format,linestride,height) ((7UL<<24)|(((format)&31UL)<<19)|(((linestride)&1023UL)<<9)|(((height)&511UL)<<0))

#define BITMAP_SIZE_H(width,height) ((41UL<<24)|(((width)&3UL)<<2)|(((height)&3UL)<<0))

I have added photos of the screen.

How can I define this upfront, if I'd like to try L8 format, using CMD_LOADIMAGE?
Is that possible?

I try to contribute in a positive way, and update posts with code that finally works.
Despite this seems useful and helpful information for others, this message still is awaiting approval by a moderator, for many days.
Is my contribution (as a new user) not appreciated?

I hope somebody can help me in the right direction.

Kind regards,
Jack.

25
Thank you Rudolph,
While still new to this display, I'm struggling with just the common graphics primitives, really basics like arcs, (outline) circles, for instance.
Using two points to draw an outline circle seems a bit odd, but then how do I create an arc with perpendicular line ends for any given start and end angles?
I could use a thick arc to draw a Pie Chart, among other indicators.

I searched section 2.5.4 already, but these common graphics primitives seem not listed there:
dl( BEGIN(ARCS) );
dl( BEGIN(CIRCLES) );
Can you please provide an arc example using any random start and end angle, please?
That would really help me and others.
Thank you very much!
Kind regards,
Jack.

26
Hi,
Using KT813, how can I best draw an arc with a line thickness?
For example for a line, I can use:

Code: [Select]
ft_void_t FT813::Line(ft_int16_t x0, ft_int16_t y0, ft_int16_t x1, ft_int16_t y1, ft_int16_t width)
{
    ft_uint32_t calc;

    StartFunc(FT_CMD_SIZE*5);
    SendCmd(DL_BEGIN | FT8_LINES);
    calc = LINE_WIDTH(width * 16);
    SendCmd(calc);
    calc = VERTEX2F(x0 * 16, y0 * 16);
    SendCmd(calc);
    calc = VERTEX2F(x1 * 16, y1 * 16);
    SendCmd(calc);
    SendCmd(DL_END);
    EndFunc();
}

Kind regards,
Jack.

27
When compiled and downloaded via Screen Designer, it works.
However when this simple example has been exported to the Eclipse toolchain, and compiled there, I get

'Building target: SimpleButton.elf'
'Invoking: FT90x GCC Linker'
ft32-elf-gcc -L"C:/Program Files (x86)/Bridgetek/FT9xx Toolchain/Toolchain/hardware/lib" -L"../FT_Eve_Hal/Lib" -Wl,--gc-sections -Wl,--entry=_start -o "SimpleButton.elf"  ./ThirdPartyLib/fatfs/diskio.o ./ThirdPartyLib/fatfs/ff.o ./ThirdPartyLib/fatfs/ff_ioctl_test.o ./ThirdPartyLib/fatfs/syscall.o ./ThirdPartyLib/fatfs/unicode.o  ./SimpleButton/AppScreen__Generated.o ./SimpleButton/App__Generated.o ./SimpleButton/MainPage__Generated.o  ./Generated/ME812A\ WH50R/SimpleButton/AppScreen__Generated.o ./Generated/ME812A\ WH50R/SimpleButton/App__Generated.o ./Generated/ME812A\ WH50R/SimpleButton/MainPage__Generated.o  ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Simulation/Ft_Esd_Elements__h__Simulation.o  ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Clock__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Image__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Label__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Line__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Slider__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o  ./Generated/ME812A\ WH50R/FT_Esd_Framework/Simulation/FT_Esd_Primitives__h__Simulation.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Simulation/Ft_Esd_CoCmd__h__Simulation.o  ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_Timer__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o  ./FT_Eve_Hal/FT_CoPro_Cmds.o ./FT_Eve_Hal/FT_Emu_main.o ./FT_Eve_Hal/FT_Gpu_Hal.o ./FT_Eve_Hal/FT_ILI9488.o ./FT_Eve_Hal/FT_KD2401.o ./FT_Eve_Hal/FT_LoadFile_clib.o ./FT_Eve_Hal/FT_LoadFile_ff.o  ./FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle__Generated.o ./FT_Esd_Widgets/Ft_Esd_Clock__Generated.o ./FT_Esd_Widgets/Ft_Esd_ColorPicker.o ./FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o ./FT_Esd_Widgets/Ft_Esd_Elements.o ./FT_Esd_Widgets/Ft_Esd_Elements__h__Simulation.o ./FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel.o ./FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o ./FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o ./FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image.o ./FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image_Rotate.o ./FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image__Generated.o ./FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o ./FT_Esd_Widgets/Ft_Esd_LabelButton.o ./FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_Label__Generated.o ./FT_Esd_Widgets/Ft_Esd_Line__Generated.o ./FT_Esd_Widgets/Ft_Esd_NumericLabel.o ./FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel__Generated.o ./FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o ./FT_Esd_Widgets/Ft_Esd_ProgressBar.o ./FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o ./FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_RadioButton.o ./FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_RadioGroup.o ./FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o ./FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollBar.o ./FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollPanel.o ./FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o ./FT_Esd_Widgets/Ft_Esd_Sketch.o ./FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o ./FT_Esd_Widgets/Ft_Esd_Slider.o ./FT_Esd_Widgets/Ft_Esd_Slider__Generated.o ./FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o ./FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o ./FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o ./FT_Esd_Widgets/Ft_Esd_Toggle.o ./FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o  ./FT_Esd_Framework/FT_Esd_Dl.o ./FT_Esd_Framework/FT_Esd_MainLoop.o ./FT_Esd_Framework/FT_Esd_Primitives.o ./FT_Esd_Framework/FT_Esd_Primitives__h__Simulation.o ./FT_Esd_Framework/Ft_Esd.o ./FT_Esd_Framework/Ft_Esd_App.o ./FT_Esd_Framework/Ft_Esd_BitmapInfo.o ./FT_Esd_Framework/Ft_Esd_CoCmd.o ./FT_Esd_Framework/Ft_Esd_CoCmd__h__Simulation.o ./FT_Esd_Framework/Ft_Esd_GpuAlloc.o ./FT_Esd_Framework/Ft_Esd_Layout_Display.o ./FT_Esd_Framework/Ft_Esd_Layout_Fill.o ./FT_Esd_Framework/Ft_Esd_Layout_Fixed.o ./FT_Esd_Framework/Ft_Esd_Layout_Linear.o ./FT_Esd_Framework/Ft_Esd_Layout_Scroll.o ./FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o ./FT_Esd_Framework/Ft_Esd_Layout_Switch.o ./FT_Esd_Framework/Ft_Esd_Layout_Tag.o ./FT_Esd_Framework/Ft_Esd_Layout_Theme.o ./FT_Esd_Framework/Ft_Esd_Math.o ./FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o ./FT_Esd_Framework/Ft_Esd_Theme.o ./FT_Esd_Framework/Ft_Esd_Timer.o ./FT_Esd_Framework/Ft_Esd_Timer__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchArea.o ./FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchScrollLogic.o ./FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchTag.o ./FT_Esd_Framework/Ft_Esd_Widget.o ./FT_Esd_Framework/Ft_Esd_Widget_Utils.o   -lc -lg -lm -lstub -lft900
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/SimpleButton/AppScreen__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/SimpleButton/App__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/SimpleButton/MainPage__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Simulation/Ft_Esd_Elements__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Clock__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Image__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Label__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Line__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Slider__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Simulation/FT_Esd_Primitives__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Simulation/Ft_Esd_CoCmd__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_Timer__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o: No such file or directory
make: *** [SimpleButton.elf] Error 1

14:05:36 Build Finished (took 3m:52s.78ms)

Are there examples which work with the eclipse toolchain?

Screen Designer is not an option for me, as a programmer.

28
Discussion - Software / Re: Eclipse Build of Example HellWorld failed
« on: June 22, 2018, 09:45:51 AM »
Thank you very much for the pointers to the documentation.
I will start reading it all to get a better feeling of how the EVE display works with the display list.

Mainly I need to show small bitmaps, and use some buttons and sliders.
The bitmaps will get updated depending of data that comes in via TCP/IP and CAN bus.

By now, I'm really convinced not to work with Screen Designer any longer.
To get here, I also tried to export the simplest project HelloWord to the Eclipse toolchain, it cannot even be compiled!
There are too many issues with Screen Designer.

And I'm a programmer, and like to work with code that I can compile and debug. Screen Designer is clearly not for me.
For example in Screen Designer I would need to spend hours and hours, if not all day, to solved something really simple finding the correct nodes and connecting them properly together. Actually I didn't succeed to accomplish something very simple after all, while I could have it done using only a few lines of clean code, in a fraction of the time.

The questions is, can we still use the EVE solution without Screen Designer, for example by just using the installed Eclipse FT9xx Toolchain?
Can I use all the same widgets, that way, and even create my own?

Kind regards,
Jack.

29
Thank you, I could not get that to work, until I closed and reopened the project after creating the theme.
I also wanted to create a theme in a similar way as DarkOrange and LightBlue, or is that a wrong way of doing it?

30
Discussion - Software / Eclipse Build of Example HellWorld failed
« on: June 21, 2018, 02:40:16 PM »
Hi,
I exported the Basic example HelloWorld to Eclipse.
After Build (right-click project -> Build Project), I get many "No such file or directory" errors:

make all
'Building target: HelloWorld.elf'
'Invoking: FT90x GCC Linker'
ft32-elf-gcc -L"C:/Program Files (x86)/Bridgetek/FT9xx Toolchain/Toolchain/hardware/lib" -L"../FT_Eve_Hal/Lib" -Wl,--gc-sections -Wl,--entry=_start -o "HelloWorld.elf"  ./ThirdPartyLib/fatfs/diskio.o ./ThirdPartyLib/fatfs/ff.o ./ThirdPartyLib/fatfs/ff_ioctl_test.o ./ThirdPartyLib/fatfs/syscall.o ./ThirdPartyLib/fatfs/unicode.o  ./HelloWorld/AppScreen__Generated.o ./HelloWorld/App__Generated.o ./HelloWorld/MainPage__Generated.o  ./Generated/ME812A\ WH50R/HelloWorld/AppScreen__Generated.o ./Generated/ME812A\ WH50R/HelloWorld/App__Generated.o ./Generated/ME812A\ WH50R/HelloWorld/MainPage__Generated.o  ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Simulation/Ft_Esd_Elements__h__Simulation.o  ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Circle__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Clock__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Image__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Label__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Line__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Panel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Slider__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o ./Generated/ME812A\ WH50R/FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o  ./Generated/ME812A\ WH50R/FT_Esd_Framework/Simulation/FT_Esd_Primitives__h__Simulation.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Simulation/Ft_Esd_CoCmd__h__Simulation.o  ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_Timer__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o ./Generated/ME812A\ WH50R/FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o  ./FT_Eve_Hal/FT_CoPro_Cmds.o ./FT_Eve_Hal/FT_Emu_main.o ./FT_Eve_Hal/FT_Gpu_Hal.o ./FT_Eve_Hal/FT_ILI9488.o ./FT_Eve_Hal/FT_KD2401.o ./FT_Eve_Hal/FT_LoadFile_clib.o ./FT_Eve_Hal/FT_LoadFile_ff.o  ./FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o ./FT_Esd_Widgets/Ft_Esd_Circle__Generated.o ./FT_Esd_Widgets/Ft_Esd_Clock__Generated.o ./FT_Esd_Widgets/Ft_Esd_ColorPicker.o ./FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o ./FT_Esd_Widgets/Ft_Esd_Elements.o ./FT_Esd_Widgets/Ft_Esd_Elements__h__Simulation.o ./FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel.o ./FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o ./FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o ./FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image.o ./FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image_Rotate.o ./FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o ./FT_Esd_Widgets/Ft_Esd_Image__Generated.o ./FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o ./FT_Esd_Widgets/Ft_Esd_LabelButton.o ./FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_Label__Generated.o ./FT_Esd_Widgets/Ft_Esd_Line__Generated.o ./FT_Esd_Widgets/Ft_Esd_NumericLabel.o ./FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o ./FT_Esd_Widgets/Ft_Esd_Panel__Generated.o ./FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o ./FT_Esd_Widgets/Ft_Esd_ProgressBar.o ./FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o ./FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_RadioButton.o ./FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o ./FT_Esd_Widgets/Ft_Esd_RadioGroup.o ./FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o ./FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollBar.o ./FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollPanel.o ./FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o ./FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o ./FT_Esd_Widgets/Ft_Esd_Sketch.o ./FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o ./FT_Esd_Widgets/Ft_Esd_Slider.o ./FT_Esd_Widgets/Ft_Esd_Slider__Generated.o ./FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o ./FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o ./FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o ./FT_Esd_Widgets/Ft_Esd_Toggle.o ./FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o  ./FT_Esd_Framework/FT_Esd_Dl.o ./FT_Esd_Framework/FT_Esd_MainLoop.o ./FT_Esd_Framework/FT_Esd_Primitives.o ./FT_Esd_Framework/FT_Esd_Primitives__h__Simulation.o ./FT_Esd_Framework/Ft_Esd.o ./FT_Esd_Framework/Ft_Esd_App.o ./FT_Esd_Framework/Ft_Esd_BitmapInfo.o ./FT_Esd_Framework/Ft_Esd_CoCmd.o ./FT_Esd_Framework/Ft_Esd_CoCmd__h__Simulation.o ./FT_Esd_Framework/Ft_Esd_GpuAlloc.o ./FT_Esd_Framework/Ft_Esd_Layout_Display.o ./FT_Esd_Framework/Ft_Esd_Layout_Fill.o ./FT_Esd_Framework/Ft_Esd_Layout_Fixed.o ./FT_Esd_Framework/Ft_Esd_Layout_Linear.o ./FT_Esd_Framework/Ft_Esd_Layout_Scroll.o ./FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o ./FT_Esd_Framework/Ft_Esd_Layout_Switch.o ./FT_Esd_Framework/Ft_Esd_Layout_Tag.o ./FT_Esd_Framework/Ft_Esd_Layout_Theme.o ./FT_Esd_Framework/Ft_Esd_Math.o ./FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o ./FT_Esd_Framework/Ft_Esd_Theme.o ./FT_Esd_Framework/Ft_Esd_Timer.o ./FT_Esd_Framework/Ft_Esd_Timer__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchArea.o ./FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchScrollLogic.o ./FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o ./FT_Esd_Framework/Ft_Esd_TouchTag.o ./FT_Esd_Framework/Ft_Esd_Widget.o ./FT_Esd_Framework/Ft_Esd_Widget_Utils.o   -lc -lg -lm -lstub -lft900
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/HelloWorld/AppScreen__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/HelloWorld/App__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/HelloWorld/MainPage__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Simulation/Ft_Esd_Elements__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_CheckBox__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Raised__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle_Sunken__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Circle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Clock__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ColorPicker__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_FixedPointNumericLabel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Gauge__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Gradient__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ImageButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Image_Rotate__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Image__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_IntCounter__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_LabelButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Label__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Line__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_NumericLabel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Color__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Raised__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel_Sunken__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Panel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_PosSizeToRadius__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ProgressBar__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_PushButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_RadioButton__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_RadioGroup__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Rectangle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollBar__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollPanel__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_ScrollableImageWidget__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Sketch__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Slider__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_SpinBox__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Theme_DarkOrange.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Theme_LightBlue.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Widgets/Ft_Esd_Toggle__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Simulation/FT_Esd_Primitives__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Simulation/Ft_Esd_CoCmd__h__Simulation.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_Layout_Stretch__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_RenderForwarder__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_Timer__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_TouchArea__Generated.o: No such file or directory
ft32-elf-gcc: error: ./Generated/ME812A\: No such file or directory
ft32-elf-gcc: error: WH50R/FT_Esd_Framework/Ft_Esd_TouchScrollLogic__Generated.o: No such file or directory
make: *** [HelloWorld.elf] Error 1

16:12:57 Build Finished (took 3s.587ms)


From Screen Designer I can actually compile and download it.
Now, I'm convinced, I really want to learn use the EVE without Screen Designer, is that possible?
Is there good documentation for that?
Regards,
Jack.

Pages: 1 [2] 3