Есть ли способ имитировать запуск программы перед записью на доску?
24
Программы могут иногда иметь ошибки во время выполнения. Иногда их трудно найти, и их легко можно пропустить. Есть ли способ протестировать программу перед тем, как записать ее на плату?
На приведенной выше странице Virtronics также перечислены несколько других симуляторов Arduino, как бесплатных, так и платных.
Учитывая интерес, который вызывает Arduino, таких симуляторов, вероятно, будет гораздо больше, поэтому нет смысла пытаться перечислить их все в ответе здесь.
Arduino сам по себе является макетом для экспериментов. Он идеально подходит для программирования экспериментального кода, его отладки, изменения, а затем перепрошивки свежего кода - столько раз, сколько нужно . Если код зависает, перезагрузите и перепрошейте с любыми изменениями.
Следовательно, сомнительна заслуга использования симулятора, который никогда не сможет идеально имитировать различные временные характеристики или другие проблемы, с которыми может столкнуться приложение.
Если стоимость Arduino является проблемой, есть несколько открытых вариантов:
Недорогие Arduino Nano клонируют с eBay - у меня есть несколько плат Meduino Nano Enhancement , они отлично работают и стоят по цене менее $ 10, включая доставку по всему миру:
Создайте свой собственный Arduino - сайт Arduino поможет вам сделать его на макете , который вам даже не понадобится паять!
Спасибо, что поделились ссылкой на симулятор Virtronics!
Powtac
Да, гораздо проще отлаживать и перепрошивать. Флэш-память ATMega328 рассчитана на 10000 циклов перезаписи, поэтому даже если вы перезаписываете ее по 10 раз каждый день, у вас будет более двух лет веселья перед вами :-) Для любителя это очень весело. Если вы немного больше разбираетесь в этом, вы можете использовать более новые платы для отладки, а когда они начинают изнашиваться (скажем, после 5000 циклов?), Вы можете использовать их для стабильных приложений или купить новую для отладки.
Лоренцо Донати поддерживает Монику
8
Вы можете найти ошибки времени выполнения, если вы можете вручную пройтись по программе с подключенным Arduino и отладкой ( после загрузки кода в Arduino). Это доступно в Visual Micro, хотя для этого требуется Visual Studio. Вы можете установить точки останова, оценить переменные и изменить значения переменных. Вы также можете получить визуализацию памяти с течением времени:
Очень аккуратный. Насколько зрел этот проект - или, скорее, этот IDE прошел гладко в вашем опыте?
прикус
Я не использовал его для профилирования, и я использовал его только кратко, но он довольно хорошо интегрируется и отлично работает для меня. Я действительно ценю возможность отладки, не прибегая к Serial.print
4
Один из способов сделать это - создать программу-обертку для реального кода, которая имитирует все входные данные и принимает выходные данные (создавая тем самым цикл обратной связи) в соответствии с реальной средой. Это потребует различного количества усилий в зависимости от типа программы, степени тестирования и количества входов.
Имейте в виду, что при написании программы-оболочки вы должны следовать подходу черного ящика .
В противном случае, ваш внешний код не может протестировать программу , а также , насколько это возможно , как имея в виду фактический код при создании тестового кода может смещения игнорировать граничные случаи или проблемные области (Это наблюдалось случиться, делая White-Box Testing , который это альтернатива).
Вы знаете какие-нибудь примеры? Большая часть кода Arduino, который я видел, не содержит надлежащих модульных тестов даже для частей, которые не требуют ввода / вывода.
Якоб
@ Якоб Я обычно пишу свой собственный код для тестирования. Это практично для небольших проектов.
Ответы:
Есть несколько проектов Arduino Simulator.
Возможно, одним из наиболее зрелых из них является Virtronics Simulator для Arduino , видео на YouTube здесь .
На приведенной выше странице Virtronics также перечислены несколько других симуляторов Arduino, как бесплатных, так и платных.
Учитывая интерес, который вызывает Arduino, таких симуляторов, вероятно, будет гораздо больше, поэтому нет смысла пытаться перечислить их все в ответе здесь.
Стоит отметить, что есть также приложение для iPhone от Arduino Simulator : это не рекомендация, еще не увидев его в работе.
На примечании стороны:
Arduino сам по себе является макетом для экспериментов. Он идеально подходит для программирования экспериментального кода, его отладки, изменения, а затем перепрошивки свежего кода - столько раз, сколько нужно . Если код зависает, перезагрузите и перепрошейте с любыми изменениями.
Следовательно, сомнительна заслуга использования симулятора, который никогда не сможет идеально имитировать различные временные характеристики или другие проблемы, с которыми может столкнуться приложение.
Если стоимость Arduino является проблемой, есть несколько открытых вариантов:
источник
Вы можете найти ошибки времени выполнения, если вы можете вручную пройтись по программе с подключенным Arduino и отладкой ( после загрузки кода в Arduino). Это доступно в Visual Micro, хотя для этого требуется Visual Studio. Вы можете установить точки останова, оценить переменные и изменить значения переменных. Вы также можете получить визуализацию памяти с течением времени:
источник
Один из способов сделать это - создать программу-обертку для реального кода, которая имитирует все входные данные и принимает выходные данные (создавая тем самым цикл обратной связи) в соответствии с реальной средой. Это потребует различного количества усилий в зависимости от типа программы, степени тестирования и количества входов.
Имейте в виду, что при написании программы-оболочки вы должны следовать подходу черного ящика .
В противном случае, ваш внешний код не может протестировать программу , а также , насколько это возможно , как имея в виду фактический код при создании тестового кода может смещения игнорировать граничные случаи или проблемные области (Это наблюдалось случиться, делая White-Box Testing , который это альтернатива).
источник