Где ядро Arduino содержит название скетча?
Я пытаюсь просмотреть ядро Arduino, чтобы найти, где включен или реализован «mySketch.ino». В «Arduino.h» определены прототипы void setup(void)
и voidloop(void)
, в «main.cpp» — setup(void )
и loop(void)
, но я не уверен, где «main.cpp» или любые другие связанные файлы ссылаются на скетч.
Где это происходит?
@RabbitsInMyHat, 👍0
Обсуждение1 ответ
Компиляция не начинается с Arduino.h или файлов ядра; скорее, он начинается с вашего собственного скетча «whatever.ino». Ваш файл .ino включает в компиляцию Arduino.h, который ссылается на основные модули. Эта компиляция оставляет много ссылок, которые необходимо удовлетворить, и сама удовлетворяет нескольким - setup() и цикл(), например. Во время компоновки компоновщику приказывают читать не только скомпилированные модули, но и скомпилированные файлы ядра, из которых он может извлечь модули, необходимые для удовлетворения ссылок, сделанных вашим скомпилированным кодом. Затем он объединяет ваш модуль и необходимые ему модули в загрузочный файл, который avrdude загружает в Arduino.
Просто хочу добавить, что Arduino IDE также объединяет все файлы .ino в одном эскизе; .cpp файлы также компилируются автоматически, но не изменяются, как файлы .ino., @esoterik
- Как получить исходные файлы для библиотек Arduino?
- Wire.h не найден!
- Может ли плагин Arduino Eclipse использовать библиотеки, установленные Arduino IDE?
- Tone() конфликтует с библиотекой IRremote (множественное определение `__vector_7')
- Невозможно использовать библиотеку клавиатуры с Arduino UNO даже после смены прошивки.
- Где параметры avrdude определяются в Arduino IDE?
- Как передать переменные в пользовательские функции обратного вызова
- ESP8266 - ошибка после обновления платы до 3.1.1
Файлы не ссылаются на эскиз. Им это не нужно. Компиляция C работает не так. Чтобы узнать больше, посмотрите «Связывание (компиляция)» в Google., @Majenko
Вот исходный файл «main()» для ядра Arduino. https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp, @Mikael Patel