Цитата
В какой момент должна быть инициализирована SDRAM - до создания любых задач РТОС, до запуска планировщика или до момента первого выделения памяти из кучи?
Если куча FreeRTOS размещена в SDRAM, то до любого из указанных действий.
Цитата
Почему нельзя работать с массивом данных, присвоив указателю на первый элемент адрес в пространстве SDRAM, или нужно обязательно выделять память под него динамически через malloc/free?
1) Можно работать с памятью, как с массивом данных через указатель. Дополнительных действий не требуется
2) Можно объявить статические массивы во внешней памяти. При этом или память должна быть инициализирована перед инициализацией сегментов памяти (в IAR в функции __low_level_init) или массивы должны быть объявлены как не инициализируемые (в IAR ключевое слово __no_init). Старт программы без инициализации больших массивов произойдет быстрее.