Вы пишете;
«Большая часть кода, написанного для микроконтроллеров, вращается вокруг записи конфигурации и значений данных в регистры, чтения входящих данных из регистров и реагирования на события прерывания».
Я согласен, что на практике это часто встречается, но на самом деле я не думаю, что это хорошо, и я думаю, что переосмысление вещей немного поможет вам в ваших целях тестирования.
Возможно, из-за того, что программисты микроконтроллеров могут протягивать руку и касаться аппаратных средств в любое время, когда они захотят, многие (большинство?) Привыкли делать именно это в своем коде. Часто за этой привычкой безоговорочно следуют, может быть потому, что так много людей, занимающихся подобной работой, являются ЭЭ, а не учеными-компьютерщиками по образованию и склонности. Я знаю, что сам начал с этого.
Смысл, который я пытаюсь подчеркнуть, заключается в том, что проекты микроконтроллеров могут и должны быть хорошо спроектированы, как и любой другой программный проект. Действительно важной частью хорошего дизайна является ограничение доступа к драйверам оборудования! Разбейте весь код, который записывает регистры, реагирует на прерывания и т. Д., На модули, которые обеспечивают остальной части вашего программного обеспечения хороший, чистый, абстрагированный доступ к оборудованию. Протестируйте эти модули драйвера на цели, используя логические анализаторы, осциллографы, специальные испытательные стенды или что-либо еще.
Действительно важным моментом является то, что теперь остальная часть вашего программного обеспечения, надеемся, что подавляющее большинство его, теперь представляет собой просто код C, который вы можете запускать и тестировать на хост-системе. В хост-системе аппаратные модули заглушены таким образом, чтобы обеспечить видимость того, что делает тестируемый код. Вы можете использовать основные подходы модульного тестирования к этому коду. Это требует некоторой подготовки и работы, но если вы хорошо организованы, вы можете создать систему многократного использования, которая может применяться ко всем вашим проектам. Потенциальные выгоды огромны. Я написал немного больше об этих идеях здесь;
[http://discuss.joelonsoftware.com/default.asp?joel.3.530964.12][1]