One possibility is that you are using SDRAM before the SDRAM controller has been initialized. From what you describe, .data and .bss both reside in SDRAM.. and probably also the stack. The stack is used very early in initialization and .bss and ..data are initialized very early, all before the the board initialization function is called.
What I have done in other architectures is:
1. Move the initial stack (only) back into internal SRAM, keeping .bss and .data in SDRAM, and
2. Add another board initialization function just to initialize SDRAM (see, for example, arch/arm/src/armv7-a/arm-head.S).
A much simpler thing to do is:
1. Restore .bss and .data to internal SRAM.
2. Make sure that SDRAM is added to the stack, and then
3. Allocate your 8Mb array dynamically using malloc().
Good luck!
Also, most of the technical discussion these days occurs on the Apache NuttX mail list of
d...@nuttx.apache.org. You can subscribe to the list by sending an email to
dev-su...@nuttx.apache.org. Subscribing to github repository notifications can also be interesting. That is where I do most of my ranting these days.
The are a lot of people familiar with STM32 F7 there who might have other thoughts.