Точки розриву - прекрасний спосіб побачити, як компілятор працює до вашого коду. Тепер моє запитання полягає в тому, чи існує можливість використовувати точки прориву при налагодженні коду?
Точки розриву - прекрасний спосіб побачити, як компілятор працює до вашого коду. Тепер моє запитання полягає в тому, чи існує можливість використовувати точки прориву при налагодженні коду?
Відповіді:
Як зазначається у відповіді Маєнко, IDE Arduino не забезпечує механізм точки перерви, але Atmel Studio підтримує точки прориву . [*]
Однак якщо у вас є вимикач та світлодіод, ви можете відстежувати хід вашої програми таким чином, що забезпечує деякі переваги точок перерви. Ви б додали підпрограму, скажімо BPReport()
, що через послідовний вихід або РК-дисплей повідомляє про значення критичних змінних, потім запалює світлодіод і чекає, поки вимикач буде натиснений і відпущений, з розблокуванням. Зателефонуйте до свого BPReport()
розпорядку, де хочете беззастережної точки перерви. Для умовних точок перерви у вас може бути розпорядок, BPReportIf(cond)
який викликає, BPReport()
якщо cond
це правда. Якщо ви не хочете виводити послідовно, ви можете використовувати декілька світлодіодів або РК-дисплей, а також, якщо ви хочете зовнішнього регулювання вимикання, ви можете скористатися декількома перемикачами (наприклад, це cond
може бути тест одного з додаткових комутаторів).
[*] Деякі апаратні налагоджувачі змінюють завантажений код щоразу, коли точки пробою додаються, змінюються або видаляються. Це використання зносить флеш-пам’ять швидше, ніж просто час від часу завантажуючи на неї. Якщо чіп активно використовувався для такої налагодження, не використовуйте цей чіп у виробничій системі.
Хоча Маєнко його відповідь правильний, є деякі інші варіанти.
Щодо справжньої апаратної налагодження, як заявив majenko, я би сказав:
Інший варіант налагодження з абсолютно іншої категорії полягає в тому, щоб організувати свій код таким чином, щоб логіка рішення (від апаратного забезпечення) та дії (залежно від апаратних засобів) були повністю розділені.
Потім складіть свій ескіз як локальну програму і налагодьте «логіку рішення» на локальній машині. Цей метод не дозволяє проводити "апаратну налагодження". Цей метод також дозволяє тестувати одиниці.
Зауважте, що ваша локальна машина, ймовірно, 32 або 64 гіркі, а у більшості Arduino 8 гірок, що призведе до відмінностей у типах даних, що є додатковою увагою при використанні цього методу.
Бібліотека Arduino-Debug надає простий налагоджувальний налагоджувач для ескізів Arduino. Команда налагодження додається безпосередньо до ескізу. Оболонка команд налагодження запускається на точках розриву та твердженнях.
На екрані, показаному вище, показаний приклад ескізу на Arduino Mega з монітором послідовного виводу, який використовується додатком, і Serial1, який використовується для оболонки налагодження.
Ескізні команди налагодження
Налагодження команд оболонки
Всі команди оболонки налагодження можуть бути скорочені до команд одного символу. Будь ласка, дивіться README для отримання більш детальної інформації; деталі встановлення, приклад ескізу та бенчмаркінгу.