Какую версию скетча я там оставил?
Есть ли способ «спросить» Arduino, какой скетч на нем был скомпилирован?
Существует несколько версий скетча, и мне нужно посмотреть, на какой версии работает Arduino.
@Joshua, 👍2
Обсуждение2 ответа
Во-первых, вам необходимо сохранить нужную информацию в скетче.
#define VERSION F("0.01 4-Apr-2019")
void setup() {
Serial.begin(9600);
Serial.print(F("Test Sketch V"));
Serial.println(VERSION);
}
void loop() {
}
Конечно, любой другой способ тоже может сработать:
Распечатывайте его только в том случае, если при сбросе нажата тестовая кнопка
Проверьте последовательную команду и ответьте на информацию о версии.
Не распечатывайте его, а используйте avrdude и программатор для чтения FLASH-памяти и поиска строки версии. (Аналогично комментарию Джота выше)
Если вы не установили биты флэш-защиты, вы можете прочитать содержимое программной памяти. См. https://www.evilmadscientist.com/2011/avr-basics- чтение и запись-flash-содержимого/
Прочитав первые страницы, вы сможете сравнить различные версии скетча (шестнадцатеричный файл) и определить, какая версия установлена на устройстве. Первые страницы представляют собой разные векторы ISR и должны быть уникальными для скетчей.
Удачи!
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- устаревшее преобразование из строковой константы в 'char*'
Нет, но если ты действительно этого хочешь, возможно, есть способ. Прежде всего, вам следует добавить в свой эскиз номер версии (текст или число). Если есть вывод на последовательный монитор или дисплей, отобразите имя и версию. Далее сделайте шапку и напишите в комментариях какая версия ардуино ide используется. О вашей проблеме: с помощью avrdude вы можете получить двоичный код. Когда вы также знаете, какая версия Arduino IDE использовалась для компиляции скетча, вы можете сравнивать бинарные версии скетча, пока не найдете нужную., @Jot