I am using IAR, not MCUExpresso, but may be it is related to Your problem. In NXP examples sdram_debug/sdram_release there are section .data in SDRAM, but section .text is in ITCM.
From IAR's .icf file:
define symbol m_text_start = 0x00000400;
define symbol m_text_end = 0x0001FFFF;
Of course it's not enough for 3Mb executable. So I just relocated section .text to SDRAM.
So I advise you to check if .text is really in SDRAM too.
May be it helps.