Почему Arduino IDE игнорирует мой заменяющий код запуска?

startup

Я пытаюсь заменить стандартный код запуска, чтобы сэкономить место на флэш-памяти.

Я поместил новый файл startup.s в свой каталог core и добавил параметр -nostartfiles в рецепт компоновщика в моем

код>platform.txt.

Когда я компилирую с помощью IDE, мой стартовый код вообще не включается.

Когда я использую Atmel Studio или make-файл, код легко ассемблируется и включается.

Как заставить Arduino IDE использовать мой новый стартовый код?

, 👍1

Обсуждение

к какому пакету плат это относится? У меня нет файла Startup.S ни в одном из множества установленных пакетов., @Juraj

@Juraj Я использую специальную плату AVR, но это относится к любой плате с архитектурой, требующей файла запуска — это все, что я знаю. Стандартный файл запуска обычно включается как уже скомпилированный файл .o. Например, стартовый код AVR находится в дереве «hardware/tools/avr/lib» как «crtXXXX.o», где подкаталог и «XXXX» зависят от выбранной платформы/платы/чипа/варианта. Этот файл автоматически включается компоновщиком, если не указан параметр -nostartfiles., @bigjosh

это ошибка в сборщике Arduino?, @Juraj

@Юрай Я бы назвал это скорее «неожиданным, недокументированным и нежелательным поведением», чем ошибкой. :), @bigjosh


1 ответ


1

Сборщик Arduino чувствителен к регистру и будет видеть только файлы, оканчивающиеся на .S, но не файлы, оканчивающиеся на .s.

Проблему устранило переименование нового файла запуска в startup.S и последующее удаление предварительно скомпилированного основного архива.

Обратите внимание, что фиксация этого изменения в git немного сложно!

,