Тут нужно понимать, что хотите. Переменные это то, что мы хотим изменять, а то что не хотим это константы. Ваш кэп.
А тепепь серьезно. Вы хотите, чтобы компилятор статически размещал константы при компиляции во флеш памяти. Я правильно Вас понял?
Нужно посмотреть в сторону скриптов для линкера. Это файл с расщирением .ld, там описываются карты памяти, куда какие данные компилятор положит.
Возможно, в вашем случае в IDE придется просто настроить адреса в памяти.
В худшем найти подходящий скрипт или написать вручную.
P.S.
Тут уже походу ответили про регионы и организацию FLASH памяти
У меня есть 1 мегабайт флешки.
Задача
Мне нужно калибровать компас, для этого я создаю три массива для х, у и z.
Процесс калибровки можно запускать в любое время.
Проблема.
Я инициализирую три глобальных буфера int32_t размером в 20000 значений каждый. Но при компиляции эти глобальные переменные записываются в ram , а я хочу во flash. Ну они не должны быть костантами