Почему Arduino IDE игнорирует мой заменяющий код запуска?
Я пытаюсь заменить стандартный код запуска, чтобы сэкономить место на флэш-памяти.
Я поместил новый файл startup.s
в свой каталог core
и добавил параметр -nostartfiles
в рецепт компоновщика в моем
код>platform.txt.
Когда я компилирую с помощью IDE, мой стартовый код вообще не включается.
Когда я использую Atmel Studio или make-файл, код легко ассемблируется и включается.
Как заставить Arduino IDE использовать мой новый стартовый код?
@bigjosh, 👍1
Обсуждение1 ответ
Сборщик Arduino чувствителен к регистру и будет видеть только файлы, оканчивающиеся на .S
, но не файлы, оканчивающиеся на .s
.
Проблему устранило переименование нового файла запуска в startup.S
и последующее удаление предварительно скомпилированного основного архива.
Обратите внимание, что фиксация этого изменения в git немного сложно!
к какому пакету плат это относится? У меня нет файла Startup.S ни в одном из множества установленных пакетов., @Juraj
@Juraj Я использую специальную плату AVR, но это относится к любой плате с архитектурой, требующей файла запуска — это все, что я знаю. Стандартный файл запуска обычно включается как уже скомпилированный файл
.o
. Например, стартовый код AVR находится в дереве «hardware/tools/avr/lib» как «crtXXXX.o», где подкаталог и «XXXX» зависят от выбранной платформы/платы/чипа/варианта. Этот файл автоматически включается компоновщиком, если не указан параметр-nostartfiles
., @bigjoshэто ошибка в сборщике Arduino?, @Juraj
@Юрай Я бы назвал это скорее «неожиданным, недокументированным и нежелательным поведением», чем ошибкой. :), @bigjosh