Хотя на целевом оборудовании могут работать разные системы модульного тестирования, у меня совершенно другой вопрос.
Я хочу провести модульное тестирование синхронизации данных между ISR и основным (и только) поток, возможно на стороне P C.
Концепция довольно проста: поскольку ISR не может быть прерван, я строю небольшую магистраль, чем использую / создаю данные, которые ISR хочет получить во всех oop, и для каждого l oop основное будет прервано в следующей строке (или лучше для каждой инструкции atomi c), а результат / согласованность результата проверены.
Грубое принуждение всех возможных комбинаций должно занять очень мало времени и дать достойное тестовое покрытие, без необходимости работать на аппаратном обеспечении и пропустить некоторую ситуацию «почти никогда, но когда это случается, это идет бум».
Пока у меня была пара идей :
- в двоичном файле сборки, для каждой строки «главного», добавьте переход к функции батута, которая решит, нужно ли запускать ISR
- каким-то образом взаимодействовать с эмулятором, таким как qemu (это также должно гарантировать, что если инструкция ASM не является атомарной по своей природе c может быть разделена)
Есть ли что-нибудь там? Если нет, то в его подходе что-то не так?