6.34.10 Атрибуты Переменных MSP430 ¶
noinit-
Любые данные с атрибутом
noinitне будут инициализированы кодом запуска C-runtime или загрузчиком программы. Такой способ избежания инициализации может сократить время запуска программы. persistent-
Любая переменная с атрибутом
persistentне будет инициализирована кодом запуска C-runtime. Вместо этого её значение будет установлено один раз при загрузке приложения и затем никогда не будет инициализировано повторно, даже если процессор сброшен или программа перезапущена. Постоянные данные предназначены для размещения в FLASH ОЗУ, где их значение будет сохранено после сброса. Скрипт компоновщика, используемый для создания приложения, должен гарантировать правильное размещение постоянных данных. uppereither-
Эти атрибуты идентичны атрибутам функций MSP430 с таким же названием (см. Атрибуты Функций MSP430).
lower-
Этот параметр в основном работает так же, как атрибут функции MSP430 с тем же именем (см. Атрибуты Функций MSP430), но обладает некоторыми дополнительными функциями.
Если был передан -mdata-region={
upper,either,none} или к переменной применён атрибутsection, компилятор сгенерирует инструкции 430X для его обработки. Это связано с тем, что компилятор должен предположить, что переменная может быть размещена в верхней области памяти (выше адреса 0xFFFF). Отмечая переменную атрибутомlower, вы сообщаете компилятору, что переменная будет размещена в нижней области памяти, поэтому можно безопасно использовать инструкции 430 для её обработки.В случае с атрибутом
section, будет использовано указанное имя секции, а префикс.lowerне будет добавлен.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/MSP430-Variable-Attributes.html