I was having some issue executing from SDRAM (now working) and looked into this support document:
http://www.keil.com/support/docs/3777.htm
For part 2 of this note - should:
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
SYSCFG->MEMRMP |= SYSCFG_MEMRMP_SWP_FMC_1;
actually be:
SYSCFG->MEMRMP |= SYSCFG_MEMRMP_SWP_FMC_0; // from "stm32f756xx.h" : #define SYSCFG_MEMRMP_SWP_FMC_0 0x00000400U // from "stm32f756xx.h" : #define SYSCFG_MEMRMP_SWP_FMC_1 0x00000800U
From the Ref' Manual: Bits 11:10 SWP_FMC[1:0]: FMC memory mapping swap Set and cleared by software. These bits are used to swap the FMC SDRAM banks and FMC NOR/PSRAM in order to enable the code execution from SDRAM Banks without modifying the default MPU attribute 00: No FMC memory mapping swapping SDRAM bank1 and Bank2 are mapped at 0xC000 0000 and 0xD000 0000 respectively (default mapping) NOR/RAM is accessible @ 0x60000000 (default mapping) 01: NOR/RAM and SDRAM memory mapping swapped, SDRAM bank1 and bank2 are mapped at 0x6000 0000 and 0x7000 0000, respectively NOR/PSRAM bank is mapped at 0xC000 0000 10: Reserved 11: Reserved