Ответ на вопрос - никак. Вообще, полная симуляция устройства это тупиковый путь: чем сложнее схема, тем непредсказуемее становится влияние погрешностей симуляции на результат, и тогда его ценность теряется.
Потому на самом деле устройства как правило разрабатываются следующим образом:
- сложный функционал разбивается на простые задачи;
- конкретным задачам сопоставляются типовые решения, например, для источников питания, усилителей, узлов согласования уровней и прочих блоков в составе устройства;
- при наличии сомнений в работоспособности конкретного узла выполняется его симуляция (только одного узла); при этом выполняется его проверка во всех интересующих режимах, с заданием управляющих воздействий с помощью примитивов симуляции (идеальные источники тока/напряжения и т.п.); также может проводиться макетирование отдельного узла в реальности;
- прошивка тоже отлаживается отдельно и по частям; для этого создается проект на ПК, в котором отлаживаются модули, не имеющие отношения к железу (например, шифрование, различные кодировщики и т.п.).
- на финальном этапе все собирается вместе, дописывается HAL и производится отладка в железе.
Выше описан "максимальный" вариант разработки для сложного устройства. В конкретных случаях некоторые этапы могут пропускаться или переставляться местами. Я, например, чаще всего начинаю разработку прошивки уже при наличии собранной платы, и тестирую ее прямо в железе, причем сначала пишу HAL (если он предполагается). Тестирование на ПК требуется в основном тогда, когда прошивка содержит в себе какие-то сложные алгоритмы, не поддающиеся разработке без основательной отладки и не имеющие прямого отношения к железу (изначально кросс-платформенные).