Azure GUIX remote display

matt boland 6 Reputation points

Hi, I'm doing the hardware for a new design and because of legacy reasons I have an existing microcontroller connected to a screen and a new processor connected to the legacy processor via SPI.

Would it be possible to run GUIX (on the new processor) with no canvas memory and to use the display driver functions to send the requests over SPI to the legacy processor? Resources such as jpegs and bitmaps could be sent over at display initialisation and stored on the legacy processor.

The issues I see are:
Maybe it is not possible to run GUIX with no canvas memory (though I think I read that can be done)
Getting access to all the resources at display initialisation from my display driver so I can send them over SPI
If GUIX can run with no canvas, how does it reference resources? As a pointer or some other type of unique reference? I could send the pointer or unique reference over SPI and the legacy processor could access the resource using the pointer or unique reference as a lookup (binary tree). I know the pointer would be meaningless a pointer on the remote processor, it would simply be used as a lookup to find which resource is being referenced.

I'm just doing the hardware now for the new product and I just need to know if this is possible or if it has been done before. Otherwise, I'm going to have to attach the display to both processors (legacy processor is always on the PCB, new processor is on there for some version, and absent from others) meaning 0R links loaded for the PCB assembly version and a lot of extra tracks.

One benefit of this approach would be that with a bit of manipulation, the data could be sent over TCP/IP and the screens displayed on say a windows machine for testing.

Azure RTOS
Azure RTOS
An Azure embedded development suite including a small but powerful operating system for resource-constrained devices.
324 questions
{count} votes

1 answer

Sort by: Most helpful
  1. matt boland 6 Reputation points

    The function doco for:
    UINT gx_canvas_create( GX_CANVAS *canvas, GX_CONST GX_CHAR *name, GX_DISPLAY *display, UINT type, UINT width, UINT height, GX_COLOR *memory_area, ULONG memory_size);

    says "memory_area: Memory area for canvas. This value can by GX_NULL at the time of canvas creation and later initialized using the gx_canvas_memory_define function." Is it an error to start drawing without assigning memory if all my display driver functions know they are not drawing to physical memory and will send commands over SPI. Is that a GX_CANVAS_SIMPLE type?

    0 comments No comments