Народ, я откровенно говоря, не могу догнать - а почему так мало пишется и обсуждается про синтетиские порты? Ведь это же гениальная штука! С компилер на хост машине позволяет решить любые задачи! Я не верю, что я первый до этого додумался!
Если постепенно написать development framework, в котором наша разрабатываемая задачка будет лишь маленьким кусочком :) то кардинально изменится сам подход к разработке!
Ведь в рамках описывемой системы я могу организовать гибридное исполнение кода!!!! И тогда кристал нахрен не надо будет эмулировать программно.
Смотрите. Есть у меня прога. В общем С, но некоторые куски надо на АСМ жестко оптимайзить. Про JIT технологию я уже писал
http://caxapa.ru/94740.html Дальше все примитивно.
Вот идет С код на хост машине. В силу того, что он С, он будет одинакого идти на любой машине. И дошел он до точки, где асмачить надо.
Есть блок кода, написанный под целевой проц. С асмом и пр. Собираем только этот блок кода, вместе с махонькой оськой (скорее даже монитором), и грузим в кристалл :))
Так вот, там где на хост машине у меня должно управление передаться моему супер асмовому коду, срабатывает макрос, описывающий мой программынй блок :))
Макрос передает набор данных, который необходимы для моего блока кода, другой фнкции. Та берет и запихивает их по COM порту в ATmega48, куда предварительно был прошит мой код с монитором. По ком порту даем команду FIRE!, оно отрабатывает блок кода и передает управление монитору. монитор сливает по COM порту на host машину содержимое всех необходимых переменных, заодно со значением времени, которое было затрачего на выполнение куска. На хост машине (основная нить embedded системы все это время стоит!!!) я принимаю эти данные, раскладываю их по памяти (индианность и все такое), и разрешаю работать основной нити! Для всего остального кода полная иллюзия, что реально отработал асмовый кусок кода на ATmega48, причем в ней же XP как-то уместилась...
Это будет достаточно быстро. Вместо штатных COM портов поставить USB мосты или даже Ethernet дорогие мосты, чтобы мегабит+ был. Для небольших наборов данных несколько к итераций в секунду получится.
При все при этом, у нас тестируется реальный код вместе со всеми глюками реального компилера и реального проца. Полностью тестируется, автоматически, самым крутым test suite.