Contexte:Testing Code pour l'application Embarqués
Je développe un projet à l'aide largish ATmega2560 Atmel AVR. Ce projet contient beaucoup de fonctions matérielles (7 périphériques SPI, 2 I2C, 2 ports MODBUS RS485, beaucoup d'E/S analogiques et numériques). J'ai développé des "pilotes" pour tous ces périphériques qui fournissent à la boucle principale de l'application une interface pour accéder aux données requises.
Question:
Le projet que je développe finira par répondre à des normes SIL. Je voudrais pouvoir tester le code et fournir un bon niveau de couverture de code. Cependant, je suis incapable de trouver des informations pour me lancer sur la façon dont un tel cadre de test devrait être mis en place.
L'idée est que je peux avoir une suite de tests automatisés qui permettront de tester de futures corrections de bugs et ajouts de fonctionnalités pour voir si elles cassent le code. La chose est que je ne comprends pas comment le code peut être testé sur puce. Ai-je besoin de matériel pour surveiller les E/S sur l'appareil et émuler les périphériques connectés de l'extérieur? Tous les pointeurs qui pourraient être fournis seraient très appréciés.
--Steve
SRoe, je vous suggère fortement de faire abstraction de la logique de couche supérieure, des algorithmes, des fonctionnalités, etc. Efforcez-vous d'isoler véritablement le code matériel ou spécifique au périphérique dans un petit nombre de modules. Cela facilitera le suivi des conseils d'Aaron. Cela améliorera également la testabilité des bits indépendants du matériel. –
Vous devez exécuter les tests unitaires sur le matériel cible réel après l'exécution sur l'hôte, mais simulez l'accès au matériel externe. Cela attrape le compilateur et les bogues matériels sur la plate-forme cible. Cela peut même être nécessaire pour des niveaux de SIL plus élevés. – starblue