Reputation: 644
I currently have a working prototype running FreeRTOS and 128x128 dots graphical display. With -O1 optimization it fitted inside a ATmega4809 with 6 KiB RAM
> Program Memory Usage : 46114 bytes 93,8 % Full
> Data Memory Usage : 4789 bytes 77,9 % Full
My new prototype has a 8KiB STM32G030C8 but already FreeRTOS via HAL/CMSIS_V2 did't fit. I turned off all features I did not use and had heap_1 selected like my previous project.
Only with CMSIS_V1 I managed to program a bare FreeRTOS project.
But adding the LCD display code, already compiled to the same issue. I had fonttables with PROGMEM on the AVR project, using const puts them in flash on the STM32 project.
I also have one LCD framebuffer made:
uint8_t buffer[2048];
Does this compiles to 2048 32-bit values?
I'm not even close to moving all my AVR code to STM32 and already out of RAM, I'm really curious how this is possible.
UPDATE: This is FreeRTOS stripped out with only lcd code:
arm-none-eabi-size STM32G030C8-48pin.elf
text data bss dec hex filename
33136 180 6804 40120 9cb8 STM32G030C8-48pin.elf
So my 2kB buffer is there, but 1,5kB .user_heap_stack?
Doesn't heap_1 of FreeRTOS aready manage heap stack?
Upvotes: 0
Views: 126