小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

高手常用的3個(gè)開源庫,讓單片機(jī)開發(fā)事半功倍!

 新用戶0118F7lQ 2022-03-17
日志系統(tǒng)在系統(tǒng)開發(fā)和調(diào)整過程中的重要性,想必大家應(yīng)該都清楚。特別是項(xiàng)目出問題之后,卻沒有日志可以幫忙定位問題,就非常令人痛苦。

因?yàn)槲覀儾豢赡芤恢蓖ㄟ^調(diào)試器去單步調(diào)試程序,所以設(shè)備的運(yùn)行日志顯得尤為重要。

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

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

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

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

以上這些需求不一定會(huì)全部實(shí)現(xiàn)。

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

rxi_log

項(xiàng)目地址:https://github.com/rxi/log.c

基于 C99 實(shí)現(xiàn)的簡單日志庫,具體輸出如下所示;

圖片
image-20211204142024466

具體用法

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

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, ...);

除了這些API,還有log_set_quietlog_set_lock,LOG_USE_COLOR等等,詳情請看原項(xiàng)目。

ulog

項(xiàng)目地址:https://github.com/rdpoor/ulog

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

uLog 的一些特點(diǎn):

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

EasyLogger

項(xiàng)目地址:https://github.com/armink/EasyLogger

圖片
TextColor

這個(gè)項(xiàng)目我用了很長時(shí)間,強(qiáng)烈推薦,是RT-Thread大佬的作品,已經(jīng)集成到RTOS的內(nèi)部了,支持的功能非常豐富,基本滿足各種開發(fā)的需求。

特點(diǎn)如下:

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

以上只是這個(gè)項(xiàng)目的其中一部分,具體可以參考項(xiàng)目地址。

summary

希望大家在平常的開發(fā)中,重視日志的使用,每一個(gè)開發(fā)階段設(shè)置不同級別的日志,不同的模塊也分別設(shè)置模塊的日志,這樣方便定位出現(xiàn)一些問題,快速解決,提高效率。

END

來源:小麥大叔

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多