Какую версию скетча я там оставил?

Есть ли способ «спросить» Arduino, какой скетч на нем был скомпилирован?

Существует несколько версий скетча, и мне нужно посмотреть, на какой версии работает Arduino.

, 👍2

Обсуждение

Нет, но если ты действительно этого хочешь, возможно, есть способ. Прежде всего, вам следует добавить в свой эскиз номер версии (текст или число). Если есть вывод на последовательный монитор или дисплей, отобразите имя и версию. Далее сделайте шапку и напишите в комментариях какая версия ардуино ide используется. О вашей проблеме: с помощью avrdude вы можете получить двоичный код. Когда вы также знаете, какая версия Arduino IDE использовалась для компиляции скетча, вы можете сравнивать бинарные версии скетча, пока не найдете нужную., @Jot


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-памяти и поиска строки версии. (Аналогично комментарию Джота выше)

,

0

Если вы не установили биты флэш-защиты, вы можете прочитать содержимое программной памяти. См. https://www.evilmadscientist.com/2011/avr-basics- чтение и запись-flash-содержимого/

Прочитав первые страницы, вы сможете сравнить различные версии скетча (шестнадцатеричный файл) и определить, какая версия установлена на устройстве. Первые страницы представляют собой разные векторы ISR и должны быть уникальными для скетчей.

Удачи!

,