I have a problem on st cubeide

I developed a analog clock module for my final project, the module work on visual studio, but i get a error at cube ide.
This is error code “Description Resource Path Location Type make: *** [makefile:115: stm32f746_disco_no_os.elf] Error 1 stm32f746_disco_no_os C/C++ Problem cubeide”
Please help me, i dont know the solution.
This screenshot from visual studio simulation

Hi, go to the properties->c/c++ build->logging
the Enable build logging should be checked. if it is, open the log file by using the log file location.
Take look at this file and see if it can help you to find the problem in more details.

i checked, properties->c/c++ build->logging the Enable build logging is checked. and there is file stm32f746_disco_no_os.build, but error repeated. i upload my build output please help me

build output; https://github.com/nesetaydinn/lvglanaloguedialdesing/commit/8cdf660715844642b61e12b7aa3cd2d969773953

Relevant output:

ld.exe: stm32f746_disco_no_os.elf section `.bss' will not fit in region `RAM'
ld.exe: region `RAM' overflowed by 57276 bytes

It looks like you are using too much SRAM. You should move some data to SDRAM if you have that available, or try to reduce the amount of SRAM being used. You could try shrinking your display buffer, at the cost of reduced performance.

This is right, found the problem me too, i think on how can i solve about since 5 hours. i changed some variabels, overflowed dropped from 54kb to22kb now.but i dont know how can i move some data to SDRAM, help me. thank you from now :slight_smile:

It depends on how your particular linker script is configured.

If there is a section that places its contents in SDRAM, you can use that. Or, if the heap is stored in SDRAM, allocating your large structures using malloc during initialization will place them in SDRAM.

thank you again, i’ll try this method.

i investigated the problem cause and i found the source of problem, static variable kept at bss, i use a canvas at my module but if i define a static buffer then size of .bss is growing, buffer create code;
static lv_color_t cbuf[LV_CANVAS_BUF_SIZE_TRUE_COLOR(272, 272)];
and tryed another code but my problem dont solve.
lv_color_t bg_color = LV_COLOR_MAKE(0x00, 0x00, 0x00);
static lv_color_t cbuf[sizeof(lv_color_t) * 272 * 272];
for(uint32_t cbuf_sayac = 0; cbuf_sayac < sizeof(cbuf) / sizeof(cbuf[0]); cbuf_sayac++) { cbuf[cbuf_sayac] = bg_color; }
but this methods dont solve for my problem, and i investigated sram and sdram, but i don’t find a solve for transport from sram to sdram. Thank u from now.

It’s platform/IDE-specific exactly how you move variables from SRAM to SDRAM, so I suggest you do some research for your particular setup.

Essentially, you need to find a way of telling the linker to put all variables marked a certain way into SDRAM, or, if your heap is located in SDRAM, you should just allocate large structures from the heap instead of defining them as static buffers.