2020-12-14 08:12 AM
I notice that ST has announced it's roll out of licenses for Azure RTOS on specific STM32 devices during 2021:
The limited documentation so far makes reference to ThreadX, FileX, NetX/NetX Duo and USBX. The only component not mentioned is GUIX. So my question is:
Will there be graphics driver support from ST for GUIX?
I know there is TouchGFX, but it would be a pity not to support the entire Azure infrastructure.
2023-10-03 03:13 PM
@SLimi.1 when I look at your function guix_thread_entry() vs my function tx_cm7_lcd_thread_entry() I notice that I define the canvas_memory field in the display table, but I fail to see where you define the canvas memory in your code, and so I wionder if maybe the GUIX system is trying to allocate that memory itself somewhere, and thus use your internal RAM rather than the expected external SDRAM.
2023-10-03 07:32 PM
Good catch. I added the following to the thread, and double checked the Buffer address location to be 0xD0000000
extern GX_STUDIO_DISPLAY_INFO hello_world_display_table[];
hello_world_display_table[MAIN_DISPLAY].canvas_memory = (GX_COLOR *) Buffers[0];
The build still hits a RAM overrun.
The .MAP file doesn't provide much information either. My board used the MB1166-A09 LCD daughter board, which uses the nt35510 LCD controller.
2023-10-04 02:58 AM
Ah, I think this is the culprit in your file named H747-GUIX/CM7/Core/Src/hello_world_specifications.c you have this :
ULONG main_display_canvas_memory[192000];
which is used in the following hello_world_display_table[1]
In my case I have a GX_NULL, in the file H747-WeighingStation/CM7/Core/Src/H747_WeighingStation_specifications.c
I do not remember offhand how this is defined, probably in the GUIX studio somewhere
2023-10-04 01:56 PM
@CIsel.1 Thank you!
That was it. In GUIX Studio, Configure-> Project / Displays are the settings to set the Target CPU, Toolchain, and uncheck allocate canvas memory.
2023-10-04 03:18 PM
@SLimi.1
You are welcome, glad it worked eventually :)
2023-10-04 04:18 PM
@CIsel.1 It is not working yet. I got past this issue Canvas issue, but I am getting a hardware fault when the buffer 0xD0000000 is being cleared.
2023-10-13 05:27 PM - edited 2023-10-13 05:28 PM
I cannot figure out why the code is crashing at clearing the memory area in gx_canvas_create.c. The buffer is pointing to the correct SRAM address, but the code faults on the memory clear as if there it was the wrong memory address.
2023-10-14 12:36 AM
I see your init code of the SDRAM (lines starting with + below) is quite different from mine (lines starting with -), are you convinced your parameters are ok ?
/* hsdram1.Init */
hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
- hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_9;
- hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_13;
hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_32;
hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
- hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_1;
hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
- hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
- hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_ENABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_DISABLE;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_0;
/* SdramTiming */
- SdramTiming.LoadToActiveDelay = 2;
- SdramTiming.ExitSelfRefreshDelay = 7;
- SdramTiming.SelfRefreshTime = 4;
- SdramTiming.RowCycleDelay = 7;
- SdramTiming.WriteRecoveryTime = 3;
- SdramTiming.RPDelay = 2;
- SdramTiming.RCDDelay = 2;
+ SdramTiming.LoadToActiveDelay = 16;
+ SdramTiming.ExitSelfRefreshDelay = 16;
+ SdramTiming.SelfRefreshTime = 16;
+ SdramTiming.RowCycleDelay = 16;
+ SdramTiming.WriteRecoveryTime = 16;
+ SdramTiming.RPDelay = 16;
+ SdramTiming.RCDDelay = 16;
2023-10-15 08:46 PM
I thought I made those changes, but the failure remains even after setting them correctly. TouchGFX is working so I am going to move on at this point. Thanks.
2023-10-16 01:37 AM
No worries. Good luck