Ferramentas de análise estática de código binário
Cálculo do tempo de execução no pior dos casos (WCET)
Ferramenta: TimingProfiler
Esta ferramenta permite obter um WCET aproximado durante as fases iniciais do desenvolvimento de software exclusivamente através da análise estática do código binário.
Baseia-se na exploração de todos os caminhos de execução possíveis de uma tarefa ou programa e num cálculo aproximado dos tempos de execução das instruções para essa arquitetura de processador.
A margem de erro do cálculo do WCET é demasiado grande para ser considerada como prova de certificação deste objetivo, mas permite determinar, desde o início, os pontos críticos de execução e os estrangulamentos de desempenho ao nível da tarefa.
Isto permite monitorizar os tempos de execução à medida que o código-fonte é desenvolvido, evitando problemas de última hora ao efetuar o cálculo formal do WCET.
Também permite visualizar gráficos de chamadas de função e fluxo de controlo. Com o plug-in ValueAnalyzer, também é possível monitorizar a utilização de variáveis (leituras e escritas).
Toda esta funcionalidade é fornecida sem a necessidade da placa de desenvolvimento ou de qualquer instrumentação de código.
Também não é necessário efetuar uma configuração complexa. É muito fácil de utilizar desde o início do desenvolvimento e pode ser integrado em ambientes de integração contínua, podendo obter medições de desempenho em cada construção de qualquer parte do código fonte.
Baseia-se na exploração de todos os caminhos de execução possíveis de uma tarefa ou programa e num cálculo aproximado dos tempos de execução das instruções para essa arquitetura de processador.
A margem de erro do cálculo do WCET é demasiado grande para ser considerada como prova de certificação deste objetivo, mas permite determinar, desde o início, os pontos críticos de execução e os estrangulamentos de desempenho ao nível da tarefa.
Isto permite monitorizar os tempos de execução à medida que o código-fonte é desenvolvido, evitando problemas de última hora ao efetuar o cálculo formal do WCET.
Também permite visualizar gráficos de chamadas de função e fluxo de controlo. Com o plug-in ValueAnalyzer, também é possível monitorizar a utilização de variáveis (leituras e escritas).
Toda esta funcionalidade é fornecida sem a necessidade da placa de desenvolvimento ou de qualquer instrumentação de código.
Também não é necessário efetuar uma configuração complexa. É muito fácil de utilizar desde o início do desenvolvimento e pode ser integrado em ambientes de integração contínua, podendo obter medições de desempenho em cada construção de qualquer parte do código fonte.
Famílias de processadores e compiladores suportados
- Compilador ARM
- Compilador GCC
- Diab C ou Ada
- Green Hills C/C++ ou Ada
- IAR
- Keil ARM
- HighTec LLVM/Clang
- Atribuição de tarefas
- Texas Instruments
- CompCert (INRIA, AbsInt)
- Diab C
- Green Hills C/C
- Compilador GCC
- Diab C
- Green Hills C/C++ ou Ada
- HighTec GCC
- Atribuição de tarefas
- Compilador Code Warrior
- Compilador GCC
- GNAT Pro C++ ou Ada
- Diab C ou Ada
- Green Hills C/C++ ou Ada
- HighTec GCC
- Keil ARM
- CompCert (INRIA, AbsInt)
Outros processadores
- ERC32
- Leão2, Leão3/4
- x86
- MIPS32
- Nios II
- Renesas RX, SuperH
- C16x, ST10
- C28x
- C33
- dsPIC33E
- FR81S
- HCS 12
- M68K
- x86
- MCS 51
- MCS 251
- MSP430
- S12Z