3 bibliotecas de código aberto comumente usadas por especialistas, tornando o desenvolvimento de MCU mais eficiente

Clique em "Uncle Wheat" acima e selecione "Top/Star Public Account"

Produtos secos de bem-estar, entregues o mais rápido possível

Olá a todos, eu sou Trigo, a importância do sistema de log no processo de desenvolvimento e ajuste do sistema,

Todos devem saber que, especialmente depois que ocorre um problema no projeto, é muito doloroso que não haja log para ajudar a localizar o problema.

Como nem sempre podemos percorrer o depurador para depurar o programa, o log de execução do dispositivo é particularmente importante.

Normalmente temos estes requisitos para logs:

  • diferentes níveis de log ( Debug, Warning, Info, Error, Fatal);

  • A impressão de log deve ser printftão fácil de usar quanto;

  • Capacidade de definir o nível de log;

  • Pequena pegada;

  • Configurável, até mesmo o registro pode ser desabilitado;

  • Suporta realce de cores com base em diferentes níveis de log;

  • Você pode personalizar a configuração, timestamp;

  • Suporte RTOS;

As funções acima são relativamente básicas, mas em dispositivos embarcados, às vezes queremos salvar o log de execução do dispositivo, precisamos de algumas das seguintes funções;

  • Suporte a vários métodos de acesso, como terminal serial, salve no sistema de arquivos incorporado;

  • Suporte a linha de comando do shell para acessar através do terminal serial;

Nem todos esses requisitos serão atendidos.

Além das comumente usadas log4c, log4cppaqui estão três bibliotecas de log de código aberto muito boas recomendadas para você, que são mais adequadas para uso em projetos de chip único. Do leve no início, ao rico em recursos na parte de trás, o último é muito poderoso, então seja paciente até o final.

rxi_log

endereço do projeto:https://github.com/rxi/log.c

Uma biblioteca de log simples implementada com base em C99, a saída específica é a seguinte;

6f40e2fc6665e54a2635700f8ddfe998.png
imagem-20211204142024466

uso específico

log.cVocê pode integrar o e no código-fonte log.hem seu projeto.Se precisar imprimir o log, você pode chamar a seguinte API, conforme mostrado abaixo;

log_trace(const char *fmt, ...);
log_debug(const char *fmt, ...);
log_info(const char *fmt, ...);
log_warn(const char *fmt, ...);
log_error(const char *fmt, ...);
log_fatal(const char *fmt, ...);

Além dessas APIs, existem log_set_quiet, log_set_lock, LOG_USE_COLORetc. Consulte o projeto original para obter detalhes.

estaca

endereço do projeto:https://github.com/rdpoor/ulog

O uLog fornece um mecanismo de registro estruturado para microcontroladores incorporados ou qualquer sistema com recursos limitados. Ele herda alguns dos conceitos por trás do popular Log4ce plataformas, mas com menor sobrecarga.Log4j

Algumas funcionalidades do uLog:

  • O uLog é fácil de integrar em quase qualquer ambiente, consiste em um cabeçalho e um arquivo de origem e é escrito em C puro.

  • O uLog fornece níveis de gravidade conhecidos (CRÍTICO, ERRO, AVISO, INFORMAÇÕES, DEBUG, TRACE).

  • O uLog suporta várias saídas definidas pelo usuário (console, arquivo de log, buffer de memória, etc.), cada uma com seu próprio nível de limite de relatório.

  • uLog é "positivamente independente" com dependências mínimas, exigindo apenas stdio.h, string.he stdarg.h.

  • Quando você não usa o uLog, ele não atrapalha: se ULOG_ENABLED for indefinido em tempo de compilação, nenhum código de log será gerado.

  • uLog é bem testado. Consulte o arquivo ulog_test.c anexo para obter detalhes.

20f5be4ab0e2e637db344e2ac7738d87.png
código de cores

EasyLogger

endereço do projeto:https://github.com/armink/EasyLogger

063ef0759fe744db4006d1dcddb22a81.png
Cor do texto

Já utilizo este projeto há muito tempo e recomendo fortemente. É o trabalho do RT-Thread, que foi integrado ao RTOS. As funções suportadas são muito ricas e atendem basicamente às necessidades de diversos desenvolvimentos.

As características são as seguintes:

  • Peso, ROM <1,6K, RAM <0,3K ;

  • Suporta vários modos de acesso (por exemplo: terminal, arquivo, banco de dados, porta serial, 485, Flash...);

  • O conteúdo do log pode incluir nível, carimbo de data/hora, informações de thread, informações de processo, etc.;

  • Thread-safe e suporta saída assíncrona e modos de saída em buffer ;

  • Suporta uma variedade de sistemas operacionais (RT-Thread, UCOS, Linux, Windows...), e também suporta plataformas bare metal ;

  • O log suporta o formato RAW e suporta hexdump ;

  • Suporte a filtragem dinâmica por tags , níveis , palavras- chave ;

  • Cada nível de log suporta exibição de cores diferentes;

  • É altamente extensível e suporta a extensão de novas funções na forma de plug-ins.

O acima é apenas uma parte deste projeto, você pode consultar o endereço do projeto para obter detalhes.

resumo

Espero que todos prestem atenção ao uso de logs no desenvolvimento normal, definam diferentes níveis de logs em cada estágio de desenvolvimento e configurem logs de módulo para diferentes módulos, de modo a facilitar a localização de alguns problemas, resolvê-los rapidamente e melhorar a eficiência . O artigo desta edição está aqui, nos vemos na próxima edição.

-- O fim --

Recomendado no passado

Código aparentemente simples, mas segredos escondidos...

Como evitar rachaduras? Tecnologia de criptografia MCU revelada

Aconselho você a parar de ser escravo do tráfico...

A universidade no arquivo de cabeçalho pede que a linguagem C preste atenção a esses princípios...

7 programas C resumidos em combate real, as coisas boas não estão escondidas

Clique no cartão acima para me seguir

4332a0cf7bab8c9a9e968bbe89446d8d.png

Tudo o que você pediu parece bom , eu levo a sério como eu gosto

Acho que você gosta

Origin blog.csdn.net/u010632165/article/details/123196402
Recomendado
Clasificación