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 para 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 identificar, à partida, os pontos críticos de desempenho e os estrangulamentos de desempenho ao nível da tarefa.
Isto permite que os tempos de execução sejam monitorizados à medida que o código fonte é desenvolvido, evitando problemas de última hora ao efetuar o cálculo formal do WCET.
Também permite apresentar gráficos de chamadas de função e controlo de fluxo. 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 ferramenta de código.
Também não há necessidade de configurações complexas. É muito fácil de utilizar desde o início do desenvolvimento e pode ser integrado em ambientes de integração contínua, sendo possível obter medições de desempenho em cada compilação de qualquer parte do código-fonte.
Baseia-se na exploração de todos os caminhos de execução possíveis para 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 identificar, à partida, os pontos críticos de desempenho e os estrangulamentos de desempenho ao nível da tarefa.
Isto permite que os tempos de execução sejam monitorizados à medida que o código fonte é desenvolvido, evitando problemas de última hora ao efetuar o cálculo formal do WCET.
Também permite apresentar gráficos de chamadas de função e controlo de fluxo. 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 ferramenta de código.
Também não há necessidade de configurações complexas. É muito fácil de utilizar desde o início do desenvolvimento e pode ser integrado em ambientes de integração contínua, sendo possível obter medições de desempenho em cada compilaçã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