Вопрос возможно дурацкий, но все же... Подключаю внешнюю SRAM к STM32 через FMC, компилятор arm-none-eabi. Параметры расположения данных в памяти настраиваю через файлa линковки. Расположить объявленный, например, массив во внешней SRAM труда не составит, но как сделать так, чтобы этот массив можно было инициализировать объявлением?
Пусть есть файл someFile.c, переменные внутри которого расположены во внешней SRAM c помощью файл линковки.
Код
int data[20] = {1,2,3...20};
Инициализация к массиву data[] осуществляется после инициализации SDRAM в файле main.c
Код
extern int *data;
int main (void)
{
SDRAM_init(); /*< Вот тут память инициализаруется */
printf ("data: %d\r", data[5]);
while (1)
{
...
}
}
int main (void)
{
SDRAM_init(); /*< Вот тут память инициализаруется */
printf ("data: %d\r", data[5]);
while (1)
{
...
}
}
Есть ли способ переиницилизировать все массивы данными, которыми они были инициализированы при объявлении, не прибегая к рукопашному присваиванию?