Section for external SDRAM STM32F746 GCC
Hey guys,
I have a problem with defining a section for the external SDRAM on the STM32F746-Disco. I red many posts in different forums but I didn't find the way to a working code.
I initialized the SDRAM in the SystemInit() and it's working because I can use it in the main() function without additional initialisation. Afterwords I took the linker script and added a memory entry like followed:
MEMORY
{ FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 320K SDRAM (xrw) : ORIGIN = 0xC0000000, LENGTH = 8M }and a section entry like this:
...
.sdram_data (NOLOAD) : { . = ALIGN(8); _sdram_data_begin = .; *(.sdram_data) *(.sdram_data*) . = ALIGN(8); _sdram_data_end = .; } >SDRAM ...When I now declare a variable in the main file
const char picture1
http://www.openstm32.org/480%2a272%2a3
]__attribute__((section(''.sdram_data'')));and want to fill it afterwards with information
picture1[] = {
0x00, 0xFF, 0xFF; 0x00, 0xFF, 0xFF; 0x00, 0xFF, 0xFF; ... };I get the error:
../src/main.c:53:1: warning: data definition has no type or storage class
picture1[] = { ^ ../src/main.c:53:1: warning: type defaults to 'int' in declaration of 'picture1'http://www.openstm32.org/-Wimplicit-int
../src/main.c:53:1: error: conflicting types for 'picture1' ../src/main.c:52:12: note: previous declaration of 'picture1' was here const char picture1http://www.openstm32.org/480%2a272%2a3
__attribute__((section(''.sdram_data'')));When I declare the variable as followed I don't get an error but it's also not working.
__attribute__((section(''.sdram_data'')))
const char picture1[] = { 0x00, 0xFF, 0xFF; 0x00, 0xFF, 0xFF; 0x00, 0xFF, 0xFF; ... };I hope anybody of you can help me.
#sdram #gcc-linker-ccm #memory-sections