ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
323952 Топик полностью
bialix (18.04.2012 17:53, просмотров: 109) ответил orgazmator на Спасибо за подсказки!
разделяй и властвуй. обработчик прерывания по приему байта - это отдельный драйвер, у которого есть какие-то точки соприкосновения с остальной программой (свой интерфейс). обработчик собственно события "байт принят" и значения байта - это отдельный модуль, со своим интерфейсом. Для тестирования совсем не нужно проверять всю цепочку насквозь. Если интерфейсы между драйвером и модулем обработки четко определены, то появляется возможность независимо тестировать одно от другого. Если очень надо проверить как они вместе живут - строится интеграционный тест. Собственно необходимость в нем будет определятся только сложностью интерфейса между драйвером и обработчиком. Сделайте этот интерфейс проще и дуболомнее. Например, используйте fifo для передачи данных между прерыванием и основной программой, или переменную с семафором. Тогда метод передачи данных можно будет опять таки протестировать отдельно. Директивы условной компиляции неизбежно понадобятся, но лучше делать подмену каких-то платформенно-зависимых частей при сборке программы. При компиляции для тестирования на ПК линкуете платформенно-зависимые части из отдельной реализации, при сборке для заливки в устройство линкуется МК-специфичная реализация. Выделите независимое от платформы в общие модули, а зависимое -- в минимальный набор модулей с минимумом кода и минимумом зависимостей. Для тестирования на ПК это нужно будет подменить.