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-09-27 08:49 AM
Thanks @CIsel.1 for the response.
The linker file is understood. What did you add from the GUIX repository? Did you add all the source files from the common directory?
2023-09-27 09:41 AM
I add guix as a git submodule
In practice it means a guix subdirectory of the Middlewares directory of my project
This subdirectory is a checkout of this github project: https://github.com/azure-rtos/guix
Yes, I added the whole source
And I used the GUIX Studio app to design the interface
2023-09-27 11:41 AM - edited 2023-09-27 12:00 PM
My result is very different. I used GUIX studio to create an application with a button and textbox. Nothing fancy. Included the full GUIX library and the app. The build says RAM overrun .bss section of 271KB. see attached results. This is for a STM32F769I-DISCO platform. I get the same result for the STM32H747I-DISCO.
I am clearly doing something wrong. Looking at your project, it doesn't look like you move anything to external memories like SDRAM or QSPI.
2023-09-27 12:01 PM
@CIsel.1 I have had no success rebuilding your project.
2023-09-27 12:55 PM
It sounds as if you put the frame buffer in RAM
It should go in SDRAM, this is what I have in my code:
#define SDRAM_BANK_0 0xD0000000UL
#define SDRAM_BANK_1 0xD0800000UL
#define SDRAM_BANK_2 0xD1000000UL
#define SDRAM_BANK_3 0xD1800000UL
#define LCD_LAYER_0_ADDRESS SDRAM_BANK_0
And you need something like this to configure the LCD:
/* USER CODE END LTDC_Init 1 */
hltdc.Instance = LTDC;
hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = 63;
hltdc.Init.VerticalSync = 4;
hltdc.Init.AccumulatedHBP = 131;
hltdc.Init.AccumulatedVBP = 43;
hltdc.Init.AccumulatedActiveW = 851;
hltdc.Init.AccumulatedActiveH = 619;
hltdc.Init.TotalWidth = 863;
hltdc.Init.TotalHeigh = 624;
hltdc.Init.Backcolor.Blue = 0;
hltdc.Init.Backcolor.Green = 0;
hltdc.Init.Backcolor.Red = 0;
if (HAL_LTDC_Init(&hltdc) != HAL_OK)
{
Error_Handler();
}
pLayerCfg.WindowX0 = 0;
pLayerCfg.WindowX1 = 720;
pLayerCfg.WindowY0 = 0;
pLayerCfg.WindowY1 = 576;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
pLayerCfg.Alpha = 255;
pLayerCfg.Alpha0 = 0;
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
pLayerCfg.FBStartAdress = LCD_LAYER_0_ADDRESS;
pLayerCfg.ImageWidth = 720;
pLayerCfg.ImageHeight = 576;
pLayerCfg.Backcolor.Blue = 0;
pLayerCfg.Backcolor.Green = 0;
pLayerCfg.Backcolor.Red = 0;
if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
{
Error_Handler();
}
2023-09-27 12:57 PM
Any specific error message you could share ?
2023-09-27 01:34 PM
@CIsel.1 I thought I did, but I will look closer at your example.
2023-09-27 01:35 PM
2023-09-27 01:41 PM
I was looking at the H47-Test example. You also have a WeighingStation example. I will look at that one.
2023-10-03 11:14 AM
@CIsel.1 I was able to build your Weighing Station example. Trying to follow it closely to build my own with some difference. The same get the RAM overrun. I have isolated the problem to when I add the creation of the guix thread in app_thread.c. If I comment this out, the build is fine, but when added in the build blows up the RAM. I am just not seeing where the increase in memory is coming from. Project attached if anyone has time to look.
if(tx_thread_create(&guix_thread_ptr, "guix_thread", guix_thread_entry,0, pointer, DEFAULT_STACK_SIZE, TX_APP_THREAD_PRIO, TX_APP_THREAD_PREEMPTION_THRESHOLD, TX_APP_THREAD_TIME_SLICE, TX_APP_THREAD_AUTO_START) != TX_SUCCESS){
return TX_THREAD_ERROR;
}