Question

Je suis en train d'écrire du code C pour une puce AVR. Le code est lourd sur les routines serivce d'interruption qui attendent sur les ports série, et minuteries ADCs. Les ISRs écrire à tampons la boucle principale examine quand il arrive à eux.

Je dessine les tampons afin que ISRs peut les mettre à jour alors que la boucle principale est de les lire. Je veux vérifier que cela fonctionne. J'ai des tests unitaires pour valider le fonctionnement de base, mais je ne suis pas clair sur la façon de tester ce qui se passe si un feu d'interruption alors que la boucle principale est lu un tampon.

Mon test unitaire de base sont vraiment - un code dans un finction de main(). Je lance des tests sur ma boîte Linux.

Était-ce utile?

La solution

Fils?

Lancement d'un thread de haute priorité qui appelle votre ISR à un taux similaire à la vraie chose. Ensuite, dans votre principale, ne la mémoire tampon de lecture encore et encore dans une boucle. Valider que la lecture de la mémoire tampon ne soit pas corrompu.

(Peut-être est plus d'un test d'intégration d'un test unitaire pur.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top