"htop" no FreeRTOS

Intro

No FreeRTOS, não há uma ferramenta integrada diretamente comparável ao htop do Linux, que monitora a execução de tarefas e a carga do sistema em tempo real. No entanto, existem várias abordagens e ferramentas que você pode usar para monitorar a execução das tarefas e a carga do sistema em um ambiente FreeRTOS. Algumas dessas ferramentas são fornecidas pela própria biblioteca do FreeRTOS, enquanto outras são utilitários de terceiros.

1. Funções de Monitoramento do FreeRTOS

uxTaskGetSystemState()

Essa função permite obter informações sobre todas as tarefas do sistema, como seu estado, prioridade, e uso da pilha. Pode ser usada para criar seu próprio monitor de tarefas.

Exemplo de uso:

Você pode usar vTaskList() para obter uma lista das tarefas e suas informações em um buffer de saída.

Chame printTaskList() em algum ponto do seu código (por exemplo, no loop principal) para imprimir a lista de tarefas.

vTaskGetRunTimeStats()

Essa função fornece estatísticas de tempo de execução para todas as tarefas do sistema, mostrando o tempo de CPU utilizado por cada tarefa.

Exemplo de uso:

Assim como vTaskList(), vTaskGetRunTimeStats() preenche um buffer de saída com informações sobre o tempo de execução das tarefas.

Chame printRunTimeStats() periodicamente para monitorar a carga do sistema.

2. Integrando com o Tracealyzer

Tracealyzer é uma ferramenta poderosa de rastreamento e análise para FreeRTOS que fornece uma visão detalhada do comportamento do sistema em tempo real. Com o Tracealyzer, você pode visualizar:

Para usar o Tracealyzer, você precisa integrar a biblioteca de rastreamento com o seu projeto FreeRTOS e capturar os dados de rastreamento. A Percepio fornece documentação detalhada sobre como fazer isso.

3. Utilização do SystemView

SEGGER SystemView é outra ferramenta de rastreamento e análise que pode ser usada com FreeRTOS. SystemView captura e analisa eventos do sistema em tempo real, oferecendo insights detalhados sobre o comportamento das tarefas e a utilização da CPU.

Exemplo de Implementação Básica

Aqui está um exemplo básico de como configurar a coleta de estatísticas de tempo de execução usando as funções do FreeRTOS:

Conclusão

Embora o FreeRTOS não forneça uma ferramenta integrada semelhante ao htop, ele oferece várias funções para monitorar tarefas e a utilização da CPU. Ferramentas de terceiros, como Tracealyzer e SystemView, podem proporcionar uma análise ainda mais detalhada e visual do comportamento do sistema. Utilizando essas ferramentas, você pode obter uma visão abrangente da execução das tarefas e da carga do sistema em um ambiente FreeRTOS.