Программы могут иногда иметь ошибки во время выполнения. Иногда их трудно найти, и их легко можно пропустить. Есть ли способ протестировать программу перед тем, как записать ее на плату?
Программы могут иногда иметь ошибки во время выполнения. Иногда их трудно найти, и их легко можно пропустить. Есть ли способ протестировать программу перед тем, как записать ее на плату?
Ответы:
Есть несколько проектов Arduino Simulator.
Возможно, одним из наиболее зрелых из них является Virtronics Simulator для Arduino , видео на YouTube здесь .
На приведенной выше странице Virtronics также перечислены несколько других симуляторов Arduino, как бесплатных, так и платных.
Учитывая интерес, который вызывает Arduino, таких симуляторов, вероятно, будет гораздо больше, поэтому нет смысла пытаться перечислить их все в ответе здесь.
Стоит отметить, что есть также приложение для iPhone от Arduino Simulator : это не рекомендация, еще не увидев его в работе.
На примечании стороны:
Arduino сам по себе является макетом для экспериментов. Он идеально подходит для программирования экспериментального кода, его отладки, изменения, а затем перепрошивки свежего кода - столько раз, сколько нужно . Если код зависает, перезагрузите и перепрошейте с любыми изменениями.
Следовательно, сомнительна заслуга использования симулятора, который никогда не сможет идеально имитировать различные временные характеристики или другие проблемы, с которыми может столкнуться приложение.
Если стоимость Arduino является проблемой, есть несколько открытых вариантов:
Вы можете найти ошибки времени выполнения, если вы можете вручную пройтись по программе с подключенным Arduino и отладкой ( после загрузки кода в Arduino). Это доступно в Visual Micro, хотя для этого требуется Visual Studio. Вы можете установить точки останова, оценить переменные и изменить значения переменных. Вы также можете получить визуализацию памяти с течением времени:
Один из способов сделать это - создать программу-обертку для реального кода, которая имитирует все входные данные и принимает выходные данные (создавая тем самым цикл обратной связи) в соответствии с реальной средой. Это потребует различного количества усилий в зависимости от типа программы, степени тестирования и количества входов.
Имейте в виду, что при написании программы-оболочки вы должны следовать подходу черного ящика .
В противном случае, ваш внешний код не может протестировать программу , а также , насколько это возможно , как имея в виду фактический код при создании тестового кода может смещения игнорировать граничные случаи или проблемные области (Это наблюдалось случиться, делая White-Box Testing , который это альтернатива).