Краткий ответ - нет: данные PROGMEM доступны только для чтения.
Ограничения флэш-памяти
Первое, что нужно понять, это то, что флэш-память (где находится пространство программы) предназначена для длительного фиксированного хранения. Чтение с него очень быстрое и точное. Однако, вообще говоря, вы не можете изменять его побайтово (например, изменять конкретную переменную). Вы обычно должны стереть и переписать это большими блоками. Это делает его совершенно непрактичным для манипуляций во время выполнения, потому что вам придется хранить много избыточной информации в другом месте, пока вы выполняете цикл стирания и записи.
Что на самом деле делает PROGMEM
Любые литеральные данные, указанные в вашем коде (например, строки и числа), всегда сначала находятся в программном пространстве (то есть во Flash). Однако, когда ваш эскиз на самом деле хочет использовать эти данные во время выполнения, он обычно должен выделить для него некоторое пространство в SRAM и скопировать его. Это означает, что вы получите две копии: фиксированный оригинал во Flash и временную копию в SRAM.
Когда вы используете модификатор PROGMEM, вы говорите ему не делать эту вторую копию в SRAM. Вместо этого ваш эскиз просто получит доступ к оригиналу во Flash. Это очень полезно, если вам когда-либо нужно только прочитать данные, поскольку это позволяет избежать операций выделения и копирования.
Однако копирование его в SRAM необходимо, если вы хотите изменить данные. Помимо ограничений Flash, о которых я упоминал выше, это также вопрос безопасности кода.
Если вы можете изменять данные, хранящиеся в программном пространстве, то логически следует, что вы также можете изменить код, хранящийся в программном пространстве. Это будет означать, что простая ошибка (или теоретически злонамеренная атака) может привести к тому, что ваш эскиз будет частично или полностью переписан во время выполнения. Это может привести к очень непредсказуемым результатам, от простого прекращения работы до повреждения / разрушения любого подключенного оборудования.
Больше информации
Вы можете узнать больше о низкоуровневых материалах PROGMEM здесь:
Старая версия того же учебника PROGMEM доступна здесь: