TDD для Embedded.

На своей работе занимаюсь написанием кода для разных микроконтроллером. Но потом приходиться всё тестировать, и тестировать приходиться каждый раз когда идут даже самые простые изменения в прошивке, например смена значения константы и т.д. К примеру изменения в прошивке и компиляцию можно сделать меньше чем за 5 минут, а тестировать нужно примерно часа 5 или больше ( всё завысит от тестплана). Хочу автоматизировать процесс тестирования, так как например делают наши высокоуровневые коллеги — пишут автоматизирование тесты (TDD). Хочется чтобы запустил тестирование и через некоторое время увидел результ — тест такой — pass/fail.

Начал читать книгу: Test Driven Development for Embedded C пока понимаю не много…
Также понемного разбираюсь с библиотекойPySerial — очень просто работать с ком портом.

Само тестирование вижу так:
запустил скрипт или программу на компе, программа конектиться с МК по UART и обмениваеться данными. Программа (скрипт) на компе шлёт данные в МК, а сама знает заведомо правильный результат. МК обрабатывает принятый результат и посылает обратно на комп, программа сравнивает — если сошлось — pass, не сошлось — fail.

Кто нибудь делал подобное?
  • 0
  • 18 августа 2013, 20:53
  • Nemo

Тестирование и отладка кода для МК

Прочитал на лоре недавно как человек тестирует свое устройство на AVR даже не имея самого устройства. Использует simulavr для моделирования самого МК и собственную модель внешней периферии (двигатели, светодиоды, датчики, последовательные интерфейсы и т.п.). Собирается делать автоматические тесты. После этого захотелось улучшить свои методы тестирования и отладки.

У меня все несколько хуже. Тестируется только управляющий код, он включается в состав модели внешних устройств (у меня только двигатели), собирается под x86. Получаю программу которая из входных сигналов и каких-то заданных констант выдает много телеметрии, которую можно смотреть на графиках или пытаться делать автоматический анализ. Но остается много кода который не покрыт тестами, например все обработчики команд CLI. Их приходится отлаживать на живом МК.



Читать дальше

Обзор паяльной станции ATTEN AT8502D (технический)

И так, основные дела были сделаны (спасибо праздникам за выходные :) ) и я решил пощупать своё новое приобретение более детально. То есть, говоря русским языком, протестировать свою новую паяльную станцию. Ну и не удержался — заглянул во внутрь (что же там гудит?) :)
Если Вам тоже интересно — милости просим :)


Читать дальше

Внутренняя опора в ATMega8

AVR
Начало тут.
Провел пару экспериментов. Первый при комнатной температуре, второй — в морозилке, где -20.

Общие условия тестов таковы:

Продолжительность: 1 час.
Питание: 5V через 7805 от SLA аккумулятора. На питании конденсаторы на 470uF и 1uF (керамика).
Питание аналоговой части: через дроссель в 100мкГн. На AVCC и AREF конденсаторы по 1uF.
Импровизированый ИОН никуда не делся. Это многооборотный подстроечник на 10к, включенный потенциометром и выставленый на напряжение 0.5V

Тесты проводились так-же, как и в прошлый раз: записывалось значение при запуске, минимальное и максимальное.

Результаты

на этот раз ничего криминального.

Комнатная температура:
При старте: 2.721V
Минимум: — (не зафиксирован, т.е. то-же, что и при старте)
Максимум: 2.736V

Морозилка:
При старте: 2.750V
Минимум: — Максимум: 2.765V

Напомню, что обещали нам 2.56 Вольт с оговоркой, что может быть от 2.3 до 2.7. Получили чуть больше нормы. Это не страшно — юзать можно.

Что самое интересное — за час опора почти не уплыла. Я поставил всю конструкцию на ночь — еще один тест при комнатной температуре. Посмотрим, что будет. Пока все круто :)

С другой стороны, многие, увидев число 256 (2.56V) забывают про все на свете, ибо такое круглое число упрощает математику. Оказывается, что нифига не упрощает, ибо ни разу не круглое.

P.S. Хочу увидеть другие результаты, чтобы было понятно, насколько отличается опорное напряжение у разных МК той-же модели (Mega8 без буквы А, в дипе). Для этого надо повесить кондер на AREF, набросать программу, которая-бы включала АЦП с внутренней опорой и тупо замерить тестером напругу на AREF.

Немного о тестировании программ для МК

Тестирование программного обеспечения область очень сложная и обширная. По этой теме написано много работ применительно к различным методам разработки ПО и стекам технологий. Однако, большинство из них посвящено тестированию серверного ПО и прикладного ПО для ПК. Тема тестирования микроконтроллерных систем освещена крайне мало. Попробую немного восполнить этот пробел. В этой статье рассмотрены примеры модульного и интеграционного тестирования на примере МК семейства AVR.


Читать дальше