在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

RT-Thread發布“超輕量級“日志組件ulog

RTThread物聯網操作系統 ? 來源:未知 ? 作者:李倩 ? 2018-11-02 09:45 ? 次閱讀

在介紹 ulog 前,我們先來了解一些日志的概念:

日志的定義:日志會將軟件運行的狀態、過程等信息,輸出到不同的介質中(例如:文件、控制臺、顯示屏等),并進行顯示和保存。為軟件調試、維護過程中的問題提供追溯、性能分析、系統監控、故障預警等功能,同時提供參考依據。可以說,日志的使用,幾乎占用了軟件生命周期至少 80% 的時間。

日志的重要性:對于操作系統而言,由于其軟件的復雜度非常大,單步調試在一些場景下并不適合,所以日志組件在操作系統上幾乎都是標配。完善的日志系統也能讓操作系統的調試事半功倍。

RT-Thread 一直缺少小巧、實用的日志組件,而 ulog 的誕生補全了這塊的短板。今天,它將作為 RT-Thread 的基礎組件被開源出來,讓我們的開發者也能用上簡潔易用的日志系統,提高開發效率。

ulog 介紹

ulog 是一個非常簡潔、易用的 C/C++ 日志組件,第一個字母 u 代表 μ,即微型的意思。它能做到最低ROM<1K, RAM<0.2K的資源占用。ulog 不僅有小巧體積,同樣也有非常全面的功能,其設計理念參考的是另外一款 C/C++ 開源日志庫:EasyLogger(簡稱 elog),并在功能和性能等方面做了非常多的改進。主要特性如下:

主要特性

線程安全

日志輸出被設計為是線程安全的方式,當前線程日志輸出不會被其他線程打斷干擾。不用再擔心像使用 rt_kprintf 那樣,多線程并發輸出日志時,日志顯示錯位、截斷等問題。

高可靠

日志系統可靠性高,在中斷 ISR中、Hardfault等復雜環境下依舊可用。不僅留給用戶的限制更少,還能夠保證系統在出錯場景下,記錄的日志依舊準確、全面,成為用戶的調試利器。而這點在其他常見的日志系統中是做不到的。

后端多樣化

ulog 可以將日志輸出到終端、串口、網絡,文件、閃存等位置,這些地方在 ulog 里統稱為后端。ulog 采用了前后端分離式設計,保證了日志的后端代碼的獨立性以及可擴展性。無論什么樣的后端,只要實現出來,都可以注冊上去。

當前 ulog 已經集成了兩種后端:

console 控制臺:即大家常用的 rt_kprintf 輸出的位置;

Flash 存儲:該后端已集成到 RT-Thread 的軟件包中,具體位置如下:

未來還將會有更多的后端加入進來,也期待大家一起參與,實現你們需要的后端,然后分享出來。

支持異步輸出

在 ulog 中,默認的輸出模式是同步模式,在很多場景下用戶可能還需要異步模式。用戶在調用日志輸出 API 時,會將日志緩存到緩沖區中,會有專門負責日志輸出的線程取出日志,然后輸出到后端。

這樣日志輸出不會阻塞當前線程,日志調試代碼也就不會影響當前線程運行時序。

靈活的過濾配置

支持運行階段/編譯階段開關控制全局的日志輸出級別;

各模塊的日志支持運行階段/編譯階段設置輸出級別;

日志內容支持按關鍵詞及標簽方式進行全局過濾;

以上運行階段的配置也都支持通過 Finsh/MSH 命令進行操作。

兼容 syslog

ulog 提供了 syslog 模式的支持,不僅僅前端 API 與 syslog API 完全一致,日志的格式也符合 RFC 標準,更好的兼容了來自 linux 平臺上的軟件代碼。

支持 hexdump

hexdump 也是日志輸出時較為常用的功能,通過 hexdump 可以將一段數據以 hex 格式輸出出來。大致效果如下:

支持浮點數打印

這個一直以來都是大家用 rt_kprintf 的痛點,現在在 ulog 上得到了徹底的解決。使用前,需要先在 menuconfig 中配置開啟 ulog 的浮點數支持。

兼容 rtdbg.h 及 elog

rtdbg 是 RT-Thread 早期的日志頭文件,當前 rtdbg 已完成無縫對接ulog ,開啟 ulog 后,舊項目中使用 rtdbg 的代碼無需做任何修改,即可使用 ulog 完成日志輸出。

elog 是 EasyLogger 的簡稱,對于 elog 來說,ulog 能完全做到 API 層面的兼容。使用時,只需要將舊項目源代碼中的 #include 更換為 #include 即可,其他代碼無需再做任何改動。

使用流程

ulog 的代碼目前開源在 RT-Thread 的 GitHub 倉庫中,代碼位于 rt-thread/components/utilities/ulog 下,大致使用流程如下:

開啟:通過 ENV 工具,在 menuconfig 中的 utilities 菜單下選中 ulog 組件;

使用:可以參考 ulog 的應用筆記,ulog 的主要日志 API 非常簡單,基本用法如下:

#define LOG_TAG "example" //定義當前文件的日志標簽,不定義默認為:`NO_TAG`#define LOG_LVL LOG_LVL_DBG //定義當前文件的日志輸出級別,不定義默認為:調試級別#include /* 使用 ulog API 輸出日志 */LOG_D("this is a debug log!");LOG_I("this is a info log!");LOG_W("this is a warning log!");LOG_E("this is a error log!");

獲取文檔

RT-Thread 為 ulog 組件提供了兩篇應用筆記,從由淺入深的角度幫助大家更好的使用該組件,文檔如下:(以下鏈接請復制至外部瀏覽器打開)

《RT-Thread ulog 日志組件應用筆記 - 基礎篇》:https://www.rt-thread.org/document/site/rtthread-application-note/debug/ulog/an0022-rtthread-debug-ulog-basic/

《RT-Thread ulog 日志組件應用筆記 - 進階篇》:https://www.rt-thread.org/document/site/rtthread-application-note/debug/ulog/an0024-rtthread-debug-ulog-advance/

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

    關注

    37

    文章

    6892

    瀏覽量

    123742
  • 代碼
    +關注

    關注

    30

    文章

    4825

    瀏覽量

    69049

原文標題:Debug神器 | RT-Thread發布“超輕量級“日志組件ulog

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于RT-Thread的RoboMaster電控框架設計

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包……很難不選擇 RT-Thread 進行項目開發。
    發表于 09-06 15:21 ?746次閱讀

    i.MX RT1170:VGLite移植RT-Thread Nano過程講解(上)

    RT-Thread 是國人自主研發的開源實時操作系統(RTOS),RT-Thread Nano 是極簡版的硬實時內核,內存占用小,移植簡單。VGLite 是 NXP 提供的輕量級 2D 圖形 API,基于 FreeRTOS 實現
    的頭像 發表于 11-09 11:20 ?2840次閱讀
    i.MX <b class='flag-5'>RT</b>1170:VGLite移植<b class='flag-5'>RT-Thread</b> Nano過程講解(上)

    簡潔易用的日志系統 ulog 日志

    操作系統上幾乎都是標配。完善的日志系統也能讓操作系統的調試事半功倍。ulog 的起源: RT-Thread 一直缺少小巧、實用的日志組件,而
    發表于 03-29 06:40

    如何使用RT-Thread AT組件

    文章目錄前言硬件準備軟件準備百問網STM32F103ESP8266 01SESP8266介紹ESP8266 01S 技術規格參數RT-Thread源碼RT-Thread AT組件前言本文介紹
    發表于 12-10 06:14

    RT-Thread v4.1.0 正式發布了!

    ://github.com/RT-Thread/rt-thread/commit/52d0dc691cf49828d49f835f2289424402aca8f1組件組件部分對Beta
    發表于 04-14 14:00

    不知道rt-threadulog為什么可以在中斷中使用?

    初學rt-thread,有點疑問,不知道rt-threadulog為什么可以在中斷中使用,ulog與fastlog的區別又在哪里呢感謝各位解答
    發表于 02-03 11:43

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運行于RT-Thread物聯網操作系統平臺上,面向不同應用領域的通用軟件組件RT-Thread 同時提供了開放的軟件包平臺,為開發者提供了眾多可重用軟件包
    的頭像 發表于 05-21 11:29 ?1.1w次閱讀
    <b class='flag-5'>RT-Thread</b>軟件包定義和使用

    RT-Thread 應用筆記 - RTC Alarm 組件的使用

    RT-Thread 應用筆記 - 不正確使用LOG也會引發hard faultRT-Thread 應用筆記 - RTC Alarm 組件的使用RT-Thread 應用筆記 - free
    發表于 01-25 18:18 ?10次下載
    <b class='flag-5'>RT-Thread</b> 應用筆記 - RTC Alarm <b class='flag-5'>組件</b>的使用

    RT-Thread全球技術大會:什么是電源管理組件

    RT-Thread全球技術大會:什么是電源管理組件? ? ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發表于 05-27 15:12 ?1195次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:什么是電源管理<b class='flag-5'>組件</b>?

    RT-Thread學習筆記 RT-Thread的架構概述

    的種種優越之處。RT-Thread 是一款完全由國內團隊開發維護的嵌入式實時操作系統(RTOS),具有完全的自主知識產權。經過 16 個年頭的沉淀,伴隨著物聯網的興起,它正演變成一個功能強大、組件豐富的物
    的頭像 發表于 07-09 11:27 ?4610次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    RT-Thread文檔_FAL 組件

    RT-Thread文檔_FAL 組件
    發表于 02-22 18:41 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_FAL <b class='flag-5'>組件</b>

    RT-Thread文檔_ulog 日志

    RT-Thread文檔_ulog 日志
    發表于 02-22 18:42 ?1次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>ulog</b> <b class='flag-5'>日志</b>

    RT-Thread v5.0.2 發布

    RT-Thread 代碼倉庫地址: ●? https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本
    的頭像 發表于 10-10 18:45 ?1565次閱讀
    <b class='flag-5'>RT-Thread</b> v5.0.2 <b class='flag-5'>發布</b>
    主站蜘蛛池模板: 天天综合天天做天天综合 | 综合色中色| 黄色一级毛片在线观看 | 黄色一级毛片在线观看 | 亚洲一卡二卡在线 | 国产特黄1级毛片 | 五月综合激情久久婷婷 | 婷婷久| 亚洲va国产日韩欧美精品色婷婷 | 四虎美女 | 国产精品免费拍拍1000部 | 亚洲最新黄色网址 | 人人爱天天操 | 免费看美女午夜大片 | 天天爽天天爽天天片a久久网 | 免费啪视频在线观看免费的 | 婷婷丁香花 | 综合伊人久久 | 窝窝视频成人影院午夜在线 | 天天干干干干 | 国产手机在线观看视频 | 国产午夜精品一区二区理论影院 | 丁香花五月婷婷 | 张柏芝三级无删减在线观看 | 国产精品午夜免费观看网站 | 一级片在线免费看 | 能看的黄色网址 | 视频高清正版在线观看 | 天天做夜夜做久久做狠狠 | 久久久夜 | 一级片 在线播放 | 五月婷婷激情综合 | 国产一级特黄aa大片在线 | 操女人免费视频 | 国产亚洲欧美一区 | 你懂的视频在线观看资源 | 午夜噜噜噜私人影院在线播放 | 色丁香婷婷 | 2016天天干| 琪琪see色原网一区二区 | chinese国产videoxx实拍 |