3.19.34 Параметры MSP430
Эти параметры определены для MSP430:
-masm-hex-
Вынужденный вывод ассемблера всегда использовать шестнадцатеричные константы. Обычно такие константы — это целые десятичные числа со знаком, но этот параметр доступен для тестов и/или эстетических целей.
-mmcu=-
Выберите целевой MCU. Это используется для создания символа препроцессора C на основе имени MCU, преобразованного в верхний регистр и префикс/постфикс с ‘__’. В свою очередь, это используется файлом заголовка msp430.h для выбора файла дополнительного заголовка, специфичного для MCU.
Этот параметр также устанавливает используемую ISA. Если имя MCU известно как поддерживающее только ISA 430, то она и выбирается, в противном случае выбирается ISA 430X. Также можно использовать общее имя MCU ‘msp430’ для выбора ISA 430. Аналогично, общее имя ‘msp430x’ выбирает ISA 430X.
Кроме того, в командную строку компоновщика добавляется скрипт компоновщика, специфичный для MCU. Имя скрипта — это имя MCU с добавленным .ld. Таким образом, указание -mmcu=xxx в командной строке определяет символ препроцессора C
__XXX__и заставляет компоновщик искать скрипт с именем xxx.ld.Поддерживаемые ISA и аппаратное умножение для различных MCU жестко закодированы в 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’, то данные MCU будут считаны. Как и выше, этот каталог также будет зарегистрирован как путь включения и путь поиска библиотек компоновщика.
Если ни один из вышеперечисленных методов поиска не найдёт ‘devices.csv’, то используются жестко закодированные данные MCU.
- Путь включения, указанный с помощью
-mwarn-mcu-mno-warn-mcu-
Этот параметр включает или отключает предупреждения о конфликтах между именем MCU, указанным параметром -mmcu, и ISA, заданной параметром -mcpu и/или поддержкой аппаратного умножения, заданной параметром -mhwmult. Он также включает/выключает предупреждения об ошибочно распознанных именах MCU. Этот параметр включён по умолчанию.
-mcpu=-
Указывает используемую ISA. Допустимые значения — ‘msp430’, ‘msp430x’ и ‘msp430xv2’. Этот параметр устарел. Следует использовать параметр -mmcu= для выбора ISA.
-msim-
Связь с библиотеками времени выполнения симулятора и скриптом компоновщика. Переопределяет любые скрипты, которые были бы выбраны параметром -mmcu=.
-mlarge-
Использование адресации большой модели (20-битные указатели, 20-битные
size_t). -msmall-
Использование адресации малой модели (16-битные указатели, 16-битные
size_t). -mrelax-
Этот параметр передаётся ассемблеру и компоновщику и позволяет компоновщику выполнять определённые оптимизации, которые не могут быть выполнены до окончательной компоновки.
mhwmult=-
Описание типа аппаратного умножения, поддерживаемого целевым устройством. Допустимые значения: ‘none’ для отсутствия аппаратного умножения, ‘16bit’ для оригинального 16-битного умножения, поддерживаемого ранними MCU, ‘32bit’ для 16/32-битного умножения, поддерживаемого более поздними MCU, и ‘f5series’ для 16/32-битного умножения, поддерживаемого MCU серии F5. Также может быть указано значение ‘auto’. Это сообщает GCC о выводе поддержки аппаратного умножения на основе имени MCU, предоставленного параметром -mmcu. Если параметр -mmcu не указан или имя MCU не распознаётся, то поддержка аппаратного умножения не предполагается.
auto— значение по умолчанию.Аппаратные умножения обычно выполняются вызовом библиотечной процедуры. Это экономит память в генерируемом коде. Однако при компиляции с -O3 или выше, аппаратный множитель вызывается внутри. Это создаёт больший, но более быстрый код.
Библиотечные процедуры аппаратного умножения отключают прерывания во время работы и восстанавливают предыдущее состояние прерывания по окончании. Это делает их безопасными для использования как внутри обработчиков прерываний, так и в обычном коде.
-minrt-
Включить использование минимальной среды выполнения — без статических инициализаторов или конструкторов. Это предназначено для устройств с ограниченной памятью. Компилятор включает специальные символы в некоторых объектах, которые сообщают компоновщику и среде выполнения, какие фрагменты кода необходимы.
-mtiny-printf-
Включить уменьшение размера кода
printfиputsфункций библиотеки. Реализации этих функций ‘tiny’ не являются реентерабельными, поэтому их следует использовать с осторожностью в многопоточных приложениях.Поддержка потоков была удалена, и строка, подлежащая печати, всегда отправляется в stdout через вызов
write. Строка не буферизуется перед отправкой на запись.Этот параметр требует Newlib Nano IO, поэтому GCC необходимо сконфигурировать с ‘--enable-newlib-nano-formatted-io’.
-mmax-inline-shift=-
Этот параметр принимает целое число от 0 до 64 включительно и устанавливает максимальное количество инструкций встраивания сдвига, которые должны быть выпущены для выполнения операции сдвига на заданное значение. Когда это значение превышено, вместо этого используется вспомогательная функция mspabi. Значение по умолчанию — 4.
Это затрагивает только случаи, когда сдвиг на несколько позиций не может быть завершён одной инструкцией (например, все сдвиги >1 в ISA 430).
Сдвиги 32-битного значения, по крайней мере, вдвое дороже, поэтому переданное значение для этого параметра делится на 2, и полученное значение используется вместо этого.
-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’ не найден или есть проблемы с его разбором (по умолчанию: включено).
Далее: Параметры NDS32, Предыдущий: Параметры Moxie, Вверх: Параметры Подмоделей [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/MSP430-Options.html