Good day. I am trying to connect a display with a resolution of 800x480 via the RGB565 interface to the stm32f767zit controller without using external SRAM memory. I use a bunch of CubeMX and Keil uVision. When initializing a memory array:

volatile uint32_t RGB565[192000] = {0x00000000}; 

in the end, Keil produces compilation errors:

 767\767.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.bss). 767\767.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f767xx.o(STACK). 767\767.axf: Error: L6406E: No space in execution regions with .ANY selector matching stm32f7xx_hal.o(.data). 767\767.axf: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f7xx.o(.data). 767\767.axf: Error: L6407E: Sections of aggregate size 0xbf93c bytes could not fit into .ANY selector(s). Not enough information to list image symbols. Not enough information to list the image map. Finished: 2 information, 0 warning and 5 error messages. "767\767.axf" - 5 Error(s), 0 Warning(s). 

The size of the required buffer, if I'm not mistaken, is 480 * 800 * 2 = 6144000 bits. As far as I know, this microcontroller has the necessary memory. Is it possible to use it either, and if so, how?

  • one
    You need 480 * 800 * 2/1024 = 750kb of memory. And its controller has only 512kb. (192000 * 4/1024 is also 750kb) - KoVadim
  • See how video memory is organized by the ZX Spectrum. - nick_n_a
  • You need to process the image in parts, for example, interlaced video. - 0andriy
  • Thanks for answers. Now I understand that without external SRAM, this task cannot be performed. I got the mikruhu ( issi.com/WW/pdf/41C-LV16105C.pdf ). In CubeMX in the kernel settings in the "MPU Region Base Address" set 0xC0000000. From there, judging by the datasheet on my pebble, the 5th FMC bank begins. Nevertheless, the error remained. - Nowsan

0