Таблица синуса на 4096 точек съела 8 КБ оперативной памяти
На МК с 20 КБ RAM добавили генератор сигнала:
uint16_t sine_table[4096] = { 2048, 2051, 2054, /* ... */ };
Таблица только читается. После сборки arm-none-eabi-size показывает, что секция .data выросла на 8 КБ, и свободной RAM под стек и кучу почти не осталось. Как это исправить?
- Объявить static const, чтобы таблица жила во flash
- Объявить таблицу внутри функции как локальную
- Сменить тип на int, чтобы убрать выравнивание
- Инициализировать таблицу в main() циклом
