ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
63366 Топик полностью
Evgeny_CD (20.07.2006 18:16, просмотров: 1) ответил Evgeny_CD на TDD (Test-driven Development) применительно к embedded системам: похоже, я догнал, как это должно быть устроено.
Догнал - II: все то же самое, но гораздо проще :) Пишем функцию или кучку функций. На нашем специальном макроязыке описываем, какие у всего этого хозяйства входные и выходные переменные. При помощи COG http://www.nedbatc …code/cog/index_ru.html http://www.onembed …m/articles/cog-n-make/ http://www.onembed …og-n-make/examples.htm автоматически (по заранее разработанной универсальной программе) генерим test unit, который: * принимает по внешнему каналу связи от пЫсюка данные, запихивает их во входные переменные * тестирует код с этим набором данных * выгружает переменные во внешний пЫсюк. * повторяет, если надо Вся эта загрузка-разгрузка данных может быть довольно геморройной (пример - структуры, они могут быть по разному упакованы; индейцы), но в общем это конечной сложности задача. Тогда задача для тестировочного скрипта на пЫсюке выглядит так: * генерация кода test unit * сборка тестового проекта (make и пр.) * обресетить плату * длождаться загрузки монитора * по TFTP загрузить модуль, запустить * по заданному каналу связи установить связь с test unit * передать/принять данные * анализ, новые данные. Работа с данными тестирования производится "подскриптом", который разработан в процессе разработки тестируемого модуля. Основной кайф такого подхода состоит в том, что он не зависит ни от чего: ни от отладчиков, ни от ОСей, ни от компилеров. Гавное, чтобы на целевой плате были: * Ethernet * памяти побольше * монитор, который TFTP понимает. Что касается работы с Ethernet из тестируемого приложения, то либо использовать функции монитора, либо прикрутить LwIP - не так уж он страшен. В результате можно создать совершенно монстровую тестовую конструкцию без обращения к тяжелым ОСям (eCos, RTEMS). В качестве скриптового языка для автоматизации всего этого процесса Python подходит просто идеально. При некотором усердии, полагаю, можно полностью автоматизировать тестирование целого проекта. Есть списком модулей, далее автоматически запускаются и собираются тесты.... "Нас не догонят...!"