По вопросу тестов и э(си?)муляции реальных объектов. Это правильно и здорово, но по моей практике отлаженный таким образом код после встречи с реальным объектом управления требует дополнительно 15...30% от уже потраченного на отладку времени (иначе будет "Фобос->Дно"). Дело тут в том, что: 1 Не все тонкости взаимодействия ясны заранее. 2 Тесты пишут тоже люди. Итого, JTAG и иже с ним приветствуется.