Outils d'analyse statique du code binaire
Calcul du pire temps d'exécution (WCET)
Outil : TimingProfiler
Cet outil permet d'obtenir un WCET approximatif au cours des phases initiales du développement de logiciels, exclusivement par analyse statique du code binaire.
Il est basé sur l'exploration de tous les chemins d'exécution possibles d'une tâche ou d'un programme et sur un calcul approximatif des temps d'exécution des instructions pour cette architecture de processeur.
La marge d'erreur du calcul du WCET est trop importante pour être considérée comme une preuve de certification de cet objectif, mais elle permet de déterminer dès le départ les points d'exécution critiques et les goulets d'étranglement au niveau de la tâche.
Cela permet de surveiller les temps d'exécution au fur et à mesure du développement du code source, en évitant les problèmes de dernière minute lors du calcul formel du WCET.
Il permet également de visualiser les graphiques des appels de fonction et du flux de contrôle. Avec le plug-in ValueAnalyzer, il est également possible de surveiller l'utilisation des variables (lectures et écritures).
Toutes ces fonctionnalités sont fournies sans qu'il soit nécessaire d'utiliser une carte de développement ou d'instrumenter le code.
Il n'est pas non plus nécessaire d'effectuer une configuration complexe. Il est très facile à utiliser dès le début du développement et peut être intégré dans des environnements d'intégration continue, permettant d'obtenir des mesures de performance à chaque construction de n'importe quelle partie du code source.
Il est basé sur l'exploration de tous les chemins d'exécution possibles d'une tâche ou d'un programme et sur un calcul approximatif des temps d'exécution des instructions pour cette architecture de processeur.
La marge d'erreur du calcul du WCET est trop importante pour être considérée comme une preuve de certification de cet objectif, mais elle permet de déterminer dès le départ les points d'exécution critiques et les goulets d'étranglement au niveau de la tâche.
Cela permet de surveiller les temps d'exécution au fur et à mesure du développement du code source, en évitant les problèmes de dernière minute lors du calcul formel du WCET.
Il permet également de visualiser les graphiques des appels de fonction et du flux de contrôle. Avec le plug-in ValueAnalyzer, il est également possible de surveiller l'utilisation des variables (lectures et écritures).
Toutes ces fonctionnalités sont fournies sans qu'il soit nécessaire d'utiliser une carte de développement ou d'instrumenter le code.
Il n'est pas non plus nécessaire d'effectuer une configuration complexe. Il est très facile à utiliser dès le début du développement et peut être intégré dans des environnements d'intégration continue, permettant d'obtenir des mesures de performance à chaque construction de n'importe quelle partie du code source.
Familles de processeurs et compilateurs pris en charge
- Compilateur ARM
- Compilateur GCC
- Diab C ou Ada
- Green Hills C/C++ ou Ada
- IAR
- Keil ARM
- HighTec LLVM/Clang
- Tâches
- Texas Instruments
- CompCert (INRIA, AbsInt)
- Diab C
- Green Hills C/C
- Compilateur GCC
- Diab C
- Green Hills C/C++ ou Ada
- HighTec GCC
- Tâches
- Compilateur Code Warrior
- Compilateur GCC
- GNAT Pro C++ ou Ada
- Diab C ou Ada
- Green Hills C/C++ ou Ada
- HighTec GCC
- Keil ARM
- CompCert (INRIA, AbsInt)
Autres transformateurs
- ERC32
- Leon2, Leon3/4
- x86
- MIPS32
- Nios II
- Renesas RX, SuperH
- C16x, ST10
- C28x
- C33
- dsPIC33E
- FR81S
- HCS 12
- M68K
- x86
- MCS 51
- MCS 251
- MSP430
- S12Z