3.19.33 Параметры MSP430 ¶
Эти параметры определены для MSP430:
-masm-hex-
Принудительно использовать шестнадцатеричные константы в выходном ассемблерном коде. Обычно такие константы представляют собой знаковые десятичные числа, но этот параметр доступен для целей тестирования и/или эстетики.
-mmcu=-
Выберите целевой микроконтроллер. Это используется для создания символа препроцессора C, основанного на имени микроконтроллера, преобразованного в верхний регистр и префикс/постфикс с '__'. Это, в свою очередь, используется файлом заголовка msp430.h для выбора файла дополнительного заголовка, специфичного для микроконтроллера.
Этот параметр также задаёт используемую ISA. Если имя микроконтроллера известно как поддерживающий только ISA 430, то она и выбирается, в противном случае выбирается ISA 430X. Также можно использовать общее имя микроконтроллера 'msp430' для выбора ISA 430. Аналогично, общее имя 'msp430x' выбирает ISA 430X.
Кроме того, в командную строку компоновщика добавляется скрипт компоновщика, специфичный для микроконтроллера. Имя скрипта — имя микроконтроллера с приставкой .ld. Таким образом, указание -mmcu=xxx в командной строке определяет символ препроцессора C
__XXX__и заставляет компоновщик искать скрипт с именем xxx.ld.ISA и поддерживаемая аппаратная умножение для различных микроконтроллеров жёстко закодированы в GCC. Однако, внешний файл ‘devices.csv’ может использоваться для расширения поддержки устройств за пределами жёстко закодированных.
GCC ищет файл ‘devices.csv’ с помощью следующих методов в заданном порядке приоритетов, где первый метод имеет приоритет над вторым, который имеет приоритет над третьим.
- Путь, указанный с помощью
-Iи-L Файл ‘devices.csv’ будет искаться в каждом из каталогов, указанных путями включения и путями поиска библиотек компоновщика.
- Путь, указанный переменной среды ‘MSP430_GCC_INCLUDE_DIR’
Определите значение глобальной переменной среды ‘MSP430_GCC_INCLUDE_DIR’ до полного пути к каталогу, содержащему devices.csv, и GCC будет искать devices.csv в этом каталоге. Если devices.csv найден, этот каталог также будет зарегистрирован как путь включения и путь поиска библиотек компоновщика. Файлы заголовков и скрипты компоновщика в этом каталоге могут поэтому использоваться без ручного указания
-Iи-Lв командной строке.- Каталог ‘msp430-elf{,bare}/include/devices’
-
Наконец, GCC проверит ‘msp430-elf{,bare}/include/devices’ из корневого каталога инструментария. Этот каталог не существует в стандартной установке, но если пользователь его создал и скопировал туда ‘devices.csv’, то данные о микроконтроллере будут считаны. Как и выше, этот каталог также будет зарегистрирован как путь включения и путь поиска библиотек компоновщика.
Если ни один из вышеуказанных методов поиска не найдёт ‘devices.csv’, будут использованы жёстко закодированные данные о микроконтроллере.
- Путь, указанный с помощью
-mwarn-mcu-mno-warn-mcu-
Этот параметр включает или отключает предупреждения о конфликтах между именем микроконтроллера, указанным параметром -mmcu, и ISA, заданной параметром -mcpu и/или поддержкой аппаратного умножения, заданной параметром -mhwmult. Он также переключает предупреждения об неизвестных именах микроконтроллеров. Этот параметр включен по умолчанию.
-mcpu=-
Указывает используемую ISA. Допустимые значения: ‘msp430’, ‘msp430x’ и ‘msp430xv2’. Этот параметр устарел. Для выбора ISA следует использовать параметр -mmcu=.
-msim-
Связь с библиотеками времени выполнения симулятора и скриптом компоновщика. Переопределяет любые скрипты, которые были бы выбраны параметром -mmcu=.
-mlarge-
Использовать адресацию с большим размером модели (указатели 20 бит,
size_t32 бит). -msmall-
Использовать адресацию с маленьким размером модели (указатели 16 бит,
size_t16 бит). -mrelax-
Этот параметр передаётся ассемблеру и компоновщику и позволяет компоновщику выполнять определённые оптимизации, которые не могут быть выполнены до окончательной компоновки.
mhwmult=-
Описание типа аппаратного умножения, поддерживаемого целевым устройством. Допустимые значения: ‘none’ для отсутствия аппаратного умножения, ‘16bit’ для исходного 16-битного умножения, поддерживаемого ранними микроконтроллерами, ‘32bit’ для 16/32-битного умножения, поддерживаемого более поздними микроконтроллерами, и ‘f5series’ для 16/32-битного умножения, поддерживаемого микроконтроллерами серии F5. Также можно указать значение ‘auto’. Это говорит GCC вывести поддержку аппаратного умножения на основе имени микроконтроллера, предоставленного параметром -mmcu. Если параметр -mmcu не указан или если имя микроконтроллера не распознано, предполагается отсутствие аппаратной поддержки умножения.
auto— значение по умолчанию.Аппаратные умножения обычно выполняются путём вызова библиотечной функции. Это экономит место в сгенерированном коде. Однако, при компиляции с -O3 или выше аппаратный умножитель вызывается inline. Это приводит к более крупному, но более быстрому коду.
Библиотечные функции аппаратного умножения отключают прерывания во время выполнения и восстанавливают предыдущее состояние прерывания по завершении. Это делает их безопасными для использования как внутри обработчиков прерываний, так и в обычном коде.
-minrt-
Включить использование минимальной среды выполнения — без статических инициализаторов или конструкторов. Предназначено для устройств с ограниченным объёмом памяти. Компилятор включает специальные символы в некоторых объектах, которые сообщают компоновщику и среде выполнения, какие фрагменты кода требуются.
-mtiny-printf-
Включить уменьшение размера кода
printfиputsфункций библиотеки. Реализации этих функций ‘tiny’ не являются реентерабельными, поэтому их необходимо использовать с осторожностью в многопоточных приложениях.Поддержка потоков была удалена, и строка, которую необходимо напечатать, всегда отправляется в stdout через вызов
write. Строка не буферизуется перед отправкой на запись.Этот параметр требует Newlib Nano IO, поэтому GCC должен быть сконфигурирован с ‘--enable-newlib-nano-formatted-io’.
-mcode-region=-mdata-region=-
Эти параметры указывают компилятору, где разместить функции и данные, у которых нет атрибутов
lower,upper,eitherилиsection. Возможные значения:lower,upper,eitherилиany. Первые три ведут себя как соответствующие атрибуты. Четвёртое возможное значение —any— является значением по умолчанию. Оно оставляет размещение полностью на усмотрение скрипта компоновщика и того, как он назначает стандартные секции (.text,.data, и т. д.) областям памяти. -msilicon-errata=-
Этот параметр передаёт запрос ассемблеру для включения исправлений для указанных ошибок в кремнии.
-msilicon-errata-warn=-
Этот параметр передаёт запрос ассемблеру о включении сообщений об ошибках, когда может потребоваться применение исправлений для ошибок в кремнии.
-mwarn-devices-csv-mno-warn-devices-csv-
Выдавать предупреждение, если ‘devices.csv’ не найден или при возникновении проблем с его разбором (по умолчанию: включено).
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/MSP430-Options.html