Top.Mail.Ru
Уведомления
Очистить все

Переопределение размера массива?

(@yuriy)
Level 2

Программа должна работать в двух режимах: Режим1 или Режим2. Режим задаётся с ПК по USB. При этом для меня встала новая, мной не освоенная задача, связанная с памятью. Дело в том, что для каждого режима используется свой набор массивов в том числе и двумерных, размер которых желательно иметь максимальным по отношению к оставшейся от собственно программы памяти. (В дебри определения размера оставшейся памяти лезть не надо, это должно решаться на этапе проектирования). Для первого режима значения массивов могут меняться по ходу дела с ПК по USB, во втором - массивы статические, задаются один раз при переходе в этот режим и не меняются до его конца. По сегодняшнему состоянию моего понимания вопроса вижу такой вариант: Сразу определять массивы и первого и второго вариантов. Но в зависимости от варианта одни массивы делать с нулевым размером, а другие с требуемым. Вот как это делать я не представляю и, ели это возможно, то подскажите, пожалуйста, как. Ещё такой вариан крутится в голове: иметь вообще две программы и загружать их из с ПК по необходтимости. Что скажете? Но для этого надо как-то USB порт переопределять для использования его в качестве загрузчика. Этот вопрос надо ещё изучать, но есть надежда, что для моего МК (STM32h723) это возможно. 

Цитата
Создатель темы Размещено : 10.01.2025 22:29
Aveal
(@aveal)
Top level Admin

Добавлю пару вариантов навскидку:

  • объявить один (или сколько требуется) массивов и переиспользовать их в разных режимах, то есть объявить массив(ы) максимально возможного/требуемого размера и одни и те же массивы использовать в разных режимах
  • значения, которые не меняются во время работы разместить во flash-памяти
ОтветитьЦитата
Размещено : 11.01.2025 12:05
(@yuriy)
Level 2

Запись от: @aveal

Добавлю пару вариантов навскидку:

  • объявить один (или сколько требуется) массивов и переиспользовать их в разных режимах, то есть объявить массив(ы) максимально возможного/требуемого размера и одни и те же массивы использовать в разных режимах

Изначально так и думалось. Но массивы в одном случае двумерные, а в другом одномерные. Кроме того тип данных у них разный - вещественный и целый.

 

ОтветитьЦитата
Создатель темы Размещено : 11.01.2025 19:52
Поделиться: