2017-04-06 5 views
0

Nous utilisons PCLint pour analyser notre code généré par Rhapsody et aimerions ignorer les erreurs du code du framework, qui n'est pas écrit par nous. Cela signifie que PCLint doit analyser certains fichiers en utilisant partiellement les annotations générées par Rhapsody. Par exemple, toutes les trois fonctions ci-dessous se trouvent dans le même fichier source.PCLint analyser certains fichiers en partie

Cette fonction est entièrement générée automatiquement et doit être ignorée.

static void initStatechart(SomeClass* const me) { 
    me->rootState_subState = SomeClass_RiCNonState; 
    me->rootState_active = SomeClass_RiCNonState; 
} 

Dans cette fonction, seule la partie taggés avec « Notre code est ici » est écrit par nous et doivent être analysés par PCLint.

static void rootState_entDef(void * const void_me) { 
    SomeClass * const me = (SomeClass *)void_me; 
    { 
     me->rootState_subState = SomeClass_InitState; 
     me->rootState_active = SomeClass_InitState; 
     { 
      /*#[ state InitState.(Entry) */ 

      ..... Our code is here .... 

      /*#]*/ 
     } 
     RiCReactive_schedTm(&(me->ric_reactive), 1000, SomeClass_Timeout_InitState_id); 
    } 
} 

Cette fonction est entièrement écrite par nous et doit être analysée.

/*## operation someFunction() */ 
static void someFunction(SomeClass* const me) { 
    /*#[ operation someFunction() */ 
    .... This function is fully written by us .... 
    /*#]*/ 
} 

Est-ce possible? Peut-être utiliser des trucs de regex?

+0

Les options -save et -restore font probablement partie de la solution. Vous pourriez, par exemple, Appelez PC-lint avec l'option -w0 pour désactiver tous les avertissements. Vous pouvez ensuite mettre/* lint -save -w3 */et/* lint -restore */autour de votre code (ou quel que soit le niveau d'avertissement que vous souhaitez utiliser) pour activer les avertissements pour ces parties. –

Répondre

0

avez-vous essayé de charger le profil MISRA? Rhapsody génère alors au moins les instructions que PC-Lint utilise pour ignorer les violations des règles MISRA.

Walter

-1

Le code écrit par vous est facile. Vous avez juste besoin de vous assurer que le fichier est vérifié. -lesym (#, sym) supprime le message # pour le symbole sym -efunc (#, funcname) supprime le message # émanant de la fonction be -efunc (960, * :: initStatechart) pour supprimer l'avertissement 960 pour toutes les fonctions initStatechart de votre projet.

La partie difficile est le code mixte. Là vous devriez travailler avec -save et -restore comme déjà mentionné. Vous devez trouver les bonnes propriétés ou insérer la commande dans votre code.