2016-09-29 6 views
1

Je souhaite utiliser un cadre de test dans mon projet IAR. Le processeur est un STM32L0.Test de l'unité cible pour STM32L0x3 en utilisant IAR

Ce que j'ai essayé:

  • https://github.com/cpputest/cpputest suivi du turoial à: https://cpputest.github.io/stories.html Ça n'a pas marché parce qu'il n'y a que 64K flash & 8K RAM

    enter image description here

    et son non assez pour ce cadre

  • https://github.com/ThrowTheSwitch/Unity.git J'ai essayé de m'intégrer dans l'atelier IAR Embedded mais j'ai eu beaucoup d'erreurs de compilation et je n'ai pas assez d'espace. J'ai donc essayé de l'exécuter sur mon bureau. Cela ne fonctionne pas car il y a trop de dépendances matérielles dans le code.

  • Ensuite, j'ai essayé de faire des tests unitaires "Pseudo" en mettant une routine de test au démarrage de l'appareil qui peut être activée et désactivée par les directives precompiler.

Vous aimez cette (non fini):

#if PREFORM_TESTS 
    TEST_run(); 
#endif 

Et puis avec les fichiers:

#include "testAll.h" 
#include "testEvent.h" 
#include "stm32l0xx_hal.h" 

void TEST_run(){ 
    TEST_EVENT_run(); 
} 
void assert_failed(uint8_t* file, uint32_t line){ 
    while(1); 
} 

#include "testEvent.h" 
#include "testAll.h" 
#include "event.h" 
#include "stm32l0xx_hal.h" 

void test_add_event(); 

void TEST_EVENT_run(){ 
    test_add_event(); 
} 

void test_add_event(){ 
    ASSERT(1); 
} 

Comment puis-je effectuer des tests unitaires sur mon STM32L0x3?

+0

IAR EWARM dispose d'un simulateur ARM. Ceci combiné avec des macros et des points d'arrêt CSPY et vous pouvez simuler davantage le matériel et implémenter des tests unitaires. Je crois qu'ils ont un moyen d'appeler les fonctions C à partir des macros CSPY, mais je peux me tromper (ne pas avoir le manuel à portée de main). – rjp

Répondre

1

Généralement, même pour les cibles intégrées, les 'modules' de code sont compilés sur votre cible de bureau. Ainsi, vous insérerez les modules dans vos tests et vous en sortirez/falsifierez ceux spécifiques au matériel.

S'il n'y a pas assez d'espace pour mettre un cadre de test sur le périphérique, alors peut-être que vous ne devriez pas (ou en trouver un plus minimal). Vous devrez ensuite écrire vos tests dans le code de l'application sans cadre de test, comme si vous écriviez du code d'application normal.