<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

3個開源庫讓單片機開發更簡單

TopSemic嵌入式 ? 來源:TopSemic嵌入式 ? 作者:TopSemic嵌入式 ? 2022-04-26 09:36 ? 次閱讀

大家好,我是小麥,日志系統在系統開發和調整過程中的重要性,

大家應該都清楚,特別是項目出問題之后,卻沒有日志可以幫忙定位問題,就非常令人痛苦。

因為我們不可能一直通過調試器去單步調試程序,所以設備的運行日志顯得尤為重要。

通常我們對日志有這些要求:

  • 不同的日志級別(Debug,Warning, Info, Error, Fatal);
  • 日志打印要和printf一樣簡單易用;
  • 能夠設置日志級別;
  • 占用空間??;
  • 可配置,甚至可以禁用日志;
  • 基于不同日志級別,支持顏色高亮;
  • 可以自定義配置,時間戳;
  • 支持RTOS;

以上是比較基本的功能,但是在嵌入式設備中,有的時候我們希望可以保存設備的運行日志,我們需要以下的一些功能;

  • 支持多種訪問方式,比如串口終端,保存到嵌入式文件系統中;
  • 支持shell命令行通過串口終端進行訪問;

以上這些需求不一定會全部實現。

除了常用的log4c,log4cpp,下面給大家推薦3個非常不錯的開源日志庫,比較適合用在單片機的項目中。從開始的輕量,到后面的功能豐富,最后一個很強大,所以請耐心看到最后。

rxi_log

項目地址:https://github.com/rxi/log.c

基于 C99 實現的簡單日志庫,具體輸出如下所示;

a7922fac-c4f5-11ec-bce3-dac502259ad0.pngimage-20211204142024466

具體用法

將源碼中的log.clog.h集成到你的項目中即可,需要打印日志的話,調用下面的API即可,如下所示;

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

除了這些API,還有log_set_quiet,log_set_lock,LOG_USE_COLOR等等,詳情請看原項目。

ulog

項目地址:https://github.com/rdpoor/ulog

uLog 為嵌入式微控制器或任何資源有限的系統提供結構化的日志記錄機制。它繼承了流行的 Log4cLog4j 平臺背后的一些概念,但開銷更低。

uLog 的一些特點:

  • uLog 易于集成到幾乎任何環境中,由一個頭文件和一個源文件組成,并且是用純 C 編寫的。
  • uLog 提供熟悉的嚴重級別(CRITICAL、ERROR、WARNING、INFO、DEBUG、TRACE)。
  • uLog 支持多個用戶定義的輸出(控制臺、日志文件、內存緩沖區等),每個輸出都有自己的報告閾值級別。
  • uLog 是具有最小依賴性的“積極獨立”,僅需要 stdio.h、string.h 和 stdarg.h。
  • 當您不使用 uLog 時,它不會妨礙您:如果 ULOG_ENABLED 在編譯時未定義,則不會生成日志記錄代碼。
  • uLog 已經過很好的測試。有關詳細信息,請參閱隨附的 ulog_test.c 文件。
a7ac75d8-c4f5-11ec-bce3-dac502259ad0.pngcolor coding

EasyLogger

項目地址:https://github.com/armink/EasyLogger

a7c67dd4-c4f5-11ec-bce3-dac502259ad0.pngTextColor

這個項目我用了很長時間,強烈推薦,是RT-Thread大佬的作品,已經集成到RTOS的內部了,支持的功能非常豐富,基本滿足各種開發的需求。

特點如下:

  • 輕量,ROM<1.6K, RAM<0.3K;
  • 支持多種訪問模式(例如:終端、文件、數據庫、串口、485、Flash...);
  • 日志內容可包含級別、時間戳、線程信息、進程信息等;
  • 線程安全,并支持 異步輸出緩沖輸出 模式;
  • 支持多種操作系統(RT-Thread、UCOS、Linux、Windows...),也支持裸機平臺;
  • 日志支持 RAW格式 ,支持 hexdump ;
  • 支持按 標簽 、 級別 、 關鍵詞 進行動態過濾;
  • 各級別日志支持不同顏色顯示;
  • 擴展性強,支持以插件形式擴展新功能。

以上只是這個項目的其中一部分,具體可以參考項目地址。

summary

希望大家在平常的開發中,重視日志的使用,每一個開發階段設置不同級別的日志,不同的模塊也分別設置模塊的日志,這樣方便定位出現一些問題,快速解決,提高效率。本期的文章就到這里,我們下期再見。

—— The End—

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    4982

    文章

    18281

    瀏覽量

    288440
  • 日志系統
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6950
  • 開源
    +關注

    關注

    3

    文章

    2985

    瀏覽量

    41718

原文標題:高手常用的3個開源庫,讓單片機開發事半功倍

文章出處:【微信號:TopSemic,微信公眾號:TopSemic嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何提升單片機開發技術?

    單片機開發是現代電子技術中的重要分支,其在各個領域都有著廣泛的應用。單片機開發技術的提升不僅可以提高工作效率,還可以提高工作質量和創新能力。那么,如何提升
    發表于 01-05 10:14

    stm32和51單片機的區別

    開發環境比51單片機更加成熟和完善,具有更多的工具和。同時,STM32單片機的資料和文檔也更加豐富。 總結 總體來說,STM32單片機
    發表于 11-20 13:18

    單片機實現更簡單的LCD設計

    電子發燒友網站提供《單片機實現更簡單的LCD設計.pdf》資料免費下載
    發表于 11-17 09:29 ?0次下載
    <b class='flag-5'>單片機</b>實現更<b class='flag-5'>簡單</b>的LCD設計

    FPGA和單片機的區別

    ,哪怕是常用的M3系列流水線也是單線程執行,程序語句需要等待單片機周期才能執行。 本質上的區別 FPGA和單片機的區別,本質上是軟件和硬件的區別,FPGA偏向于硬件電路,而
    發表于 11-14 15:30

    單片機加OLED做一簡單的顯示字符?

    最近想通過單片機加OLED做一簡單的顯示字符的可以通過按鍵選中的GUI界面,可是有時候要按好多下才會有反應。有沒有比較好用的代碼?
    發表于 11-03 07:33

    51單片機如何led燈閃爍?

    51單片機如何led燈閃爍?
    發表于 11-01 06:32

    如何將開源Helix MP3解碼算法移植到AT32F4xx單片機方法

    本應用筆記介紹了如何將開源Helix MP3解碼算法移植到AT32F4xx單片機方法。本文檔提供的源代碼演示了使用Helix MP3解碼算法的MP3
    發表于 10-24 07:20

    怎么STM32或其他的單片機死機?

    怎么STM32或其他的單片機死機
    發表于 09-26 06:38

    單片機怎么用簡單按鍵控制LED燈呢?

    器件,例如LED燈。在這篇文章中,我們將詳細探討如何通過簡單按鍵來控制LED燈。 單片機的基礎 在我們開始探討具體細節之前,我們需要先了解一些基礎知識,包括什么是單片機以及如何安裝和配置集成
    的頭像 發表于 09-02 17:05 ?2605次閱讀

    求分享NUC472VI8AE單片機的原理圖和pcb封裝?

      請問官方有沒有提供NUC472VI8AE單片機的原理圖和pcb封裝?   希望官方或者大家能提供所有的新唐家族的單片機原理圖和pcb 封裝,保證大家設計的時的便利和準確性, 加
    發表于 08-30 06:34

    單片機學到什么程度可以找到工作?

    STM32是意法半導體公司推出一款32位的單片機,其具有超低的價格、超多的外設、豐富的型號、優異的實時性、極低的開發成本等優勢,并且stm32相關資料都非常全面和細致,所以很適合小白的學習。對于
    發表于 08-10 15:19

    試讀報告《Proteus實戰攻略從簡單電路到單片機電路的仿真》仿真有效的實驗報告

    。 這就是為什么會受人歡迎,降低開源成本;有效的仿真,簡單的電路到單片機電路,大大的提供工作效率,降低開發項目的時間。 proteus實戰攻略這本書講到了什么? 當我拿到這本書后開始
    發表于 08-04 10:58

    求助,求推薦一簡單的小小的開發傳統51單片機的組合

    推薦一簡單的小小的開發傳統51單片機的組合
    發表于 06-27 08:18

    單片機學到什么程度可以找到工作?

    依自身經歷來說,首先我們可以以strm32系列單片機開始入手。 STM32是意法半導體公司推出一款32位的單片機,其具有超低的價格、超多的外設、豐富的型號、優異的實時性、極低的開發成本等優勢,并且
    發表于 05-11 10:46

    單片機的上位機簡單開發(2)

    單片機的上位機簡單開發(2) 界面設計增加了GroupBox控件和radio按鈕,我們設置其默認的enabled為false在連接串口之后enabled變為true groupBox1
    發表于 05-10 09:36 ?0次下載
    <b class='flag-5'>單片機</b>的上位機<b class='flag-5'>簡單開發</b>(2)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>