Где ядро Arduino содержит название скетча?

Я пытаюсь просмотреть ядро Arduino, чтобы найти, где включен или реализован «mySketch.ino». В «Arduino.h» определены прототипы void setup(void) и voidloop(void), в «main.cpp» — setup(void ) и loop(void), но я не уверен, где «main.cpp» или любые другие связанные файлы ссылаются на скетч.

Где это происходит?

, 👍0

Обсуждение

Файлы не ссылаются на эскиз. Им это не нужно. Компиляция C работает не так. Чтобы узнать больше, посмотрите «Связывание (компиляция)» в Google., @Majenko

Вот исходный файл «main()» для ядра Arduino. https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp, @Mikael Patel


1 ответ


2

Компиляция не начинается с Arduino.h или файлов ядра; скорее, он начинается с вашего собственного скетча «whatever.ino». Ваш файл .ino включает в компиляцию Arduino.h, который ссылается на основные модули. Эта компиляция оставляет много ссылок, которые необходимо удовлетворить, и сама удовлетворяет нескольким - setup() и цикл(), например. Во время компоновки компоновщику приказывают читать не только скомпилированные модули, но и скомпилированные файлы ядра, из которых он может извлечь модули, необходимые для удовлетворения ссылок, сделанных вашим скомпилированным кодом. Затем он объединяет ваш модуль и необходимые ему модули в загрузочный файл, который avrdude загружает в Arduino.

,

Просто хочу добавить, что Arduino IDE также объединяет все файлы .ino в одном эскизе; .cpp файлы также компилируются автоматически, но не изменяются, как файлы .ino., @esoterik