Herramientas de Análisis Estático de Código Binario
Cálculo de Worst Case Execution Time (WCET)
Herramienta: TimingProfiler
Esta herramienta permite obtener un WCET aproximado durante las fases iniciales de desarrollo software exclusivamente mediante análisis estático del código binario.
Se basa en la exploración de todos los posibles caminos de ejecución de una tarea o programa y en un cálculo aproximado de los tiempo de ejecución de las instrucciones para esa arquitectura de procesadores.
El margen de error del cálculo del WCET es demasiado grande para ser considerado como evidencia de certificación de este objetivo, pero permite determinar al inicio los puntos críticos de ejecución y los cuellos de botella en cuanto a prestaciones a nivel de tarea.
Esto permite monitorizar los tiempos de ejecución conforme se desarrolla el código fuente, evitando problemas de última hora cuando se hace el cálculo formal del WCET.
También permite visualizar gráficos de llamadas a functiones y control de flujo. Con el plug-in ValueAnalyzer, además se permite monitorizar el uso de variables (lecturas y escrituras).
Toda esta funcionalidad se proporciona sin necesidad de disponer de la tarjeta de desarrollo, ni realizar ninguna instrumentalización del código.
Tampoco es necesario realizar una configuración compleja. Es muy fácil de usar desde el inicio del desarrollo y se puede integrar en entornos de integración continua, pudiendose obtener medidas de rendimiento en cada construcción de cualquier parte del código fuente.
Se basa en la exploración de todos los posibles caminos de ejecución de una tarea o programa y en un cálculo aproximado de los tiempo de ejecución de las instrucciones para esa arquitectura de procesadores.
El margen de error del cálculo del WCET es demasiado grande para ser considerado como evidencia de certificación de este objetivo, pero permite determinar al inicio los puntos críticos de ejecución y los cuellos de botella en cuanto a prestaciones a nivel de tarea.
Esto permite monitorizar los tiempos de ejecución conforme se desarrolla el código fuente, evitando problemas de última hora cuando se hace el cálculo formal del WCET.
También permite visualizar gráficos de llamadas a functiones y control de flujo. Con el plug-in ValueAnalyzer, además se permite monitorizar el uso de variables (lecturas y escrituras).
Toda esta funcionalidad se proporciona sin necesidad de disponer de la tarjeta de desarrollo, ni realizar ninguna instrumentalización del código.
Tampoco es necesario realizar una configuración compleja. Es muy fácil de usar desde el inicio del desarrollo y se puede integrar en entornos de integración continua, pudiendose obtener medidas de rendimiento en cada construcción de cualquier parte del código fuente.
Familias de procesadores y compiladores soportados
- ARM Compiler
- GCC Compiler
- Diab C or Ada
- Green Hills C/C++ or Ada
- IAR
- Keil ARM
- HighTec LLVM/Clang
- Tasking
- Texas Instruments
- CompCert (INRIA, AbsInt)
- Diab C
- Green Hills C/C
- GCC Compiler
- Diab C
- Green Hills C/C++ or Ada
- HighTec GCC
- Tasking
- Code Warrior Compiler
- GCC Compiler
- GNAT Pro C++ or Ada
- Diab C or Ada
- Green Hills C/C++ or Ada
- HighTec GCC
- Keil ARM
- CompCert (INRIA, AbsInt)
Otros procesadores
- 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