在設計之初我們希望通過調試程序完成我們需要的代碼設計,這些都需要我們進行調試,進入degug模式,往往系統(tǒng)運行起來我們無法判斷程序運行哪一步因此需要通過打印功能顯示關鍵步驟的程序運行節(jié)點,同樣在rt-thread操作系統(tǒng)中依然可以進行此過程 的代碼實現(xiàn)。下面就此進行討論。
作為打印函數(shù)它提供了我們對應的函數(shù)接口,我們調用時其實與printf是相同的用法,但是看底層的函數(shù)描述我們就知道其實還是存在差異的。
首先粘貼出函數(shù)的實際項目中的用法:
rt_kprintf("the producer generates a number: %d\n", array[set%MAXSEM]);
運行起來我們看到相應的打印結果

相比于之前我們接觸到的重定義函數(shù),rt_kprintf定義為:void rt_kprintf(const char *fmt, ...)
下面我們看一下具體函數(shù)的描述(看注釋):
void rt_kprintf(const char *fmt, ...)
{
va_list args;
rt_size_t length;
static char rt_log_buf[RT_CONSOLEBUF_SIZE];
va_start(args, fmt);
/* the return value of vsnprintf is the number of bytes that would be
* written to buffer had if the size of the buffer been sufficiently
* large excluding the terminating null byte. If the output string
* would be larger than the rt_log_buf, we have to adjust the output
* length. */
length = rt_vsnprintf(rt_log_buf, sizeof(rt_log_buf) - 1, fmt, args); //計算長度
if (length > RT_CONSOLEBUF_SIZE - 1)
length = RT_CONSOLEBUF_SIZE - 1;
#ifdef RT_USING_DEVICE
if (_console_device == RT_NULL) //判斷控制臺設備是否為空
{
rt_hw_console_output(rt_log_buf);
}
else
{
rt_uint16_t old_flag = _console_device->open_flag;
_console_device->open_flag |= RT_DEVICE_FLAG_STREAM;
rt_device_write(_console_device, 0, rt_log_buf, length); //設備寫線程
_console_device->open_flag = old_flag; //控制臺設備狀態(tài)
}
#else
rt_hw_console_output(rt_log_buf); 0 //控制臺輸出buf
#endif
va_end(args);
}
RTM_EXPORT(rt_kprintf);
其中包含的幾個線程大家可以自行觀看官方文件庫。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
操作系統(tǒng)
+關注
關注
37文章
7402瀏覽量
129359 -
函數(shù)
+關注
關注
3文章
4417瀏覽量
67560 -
RT-Thread
+關注
關注
32文章
1615瀏覽量
44912
發(fā)布評論請先 登錄
相關推薦
熱點推薦
RT-Thread內部機制大揭秘,帶你深入操作系統(tǒng)內核
一、RT-Thread概述RT-Thread是一款具有顯著優(yōu)勢的開源嵌入式實時操作系統(tǒng)。它不僅具備輕量級、實時性強的特點,還擁有廣泛的開源社區(qū)支持和豐富的應用場景。在輕量級方面,
基于RT-Thread操作系統(tǒng)衍生rt-smart實時操作系統(tǒng)簡介
1、rt-smart 實時操作系統(tǒng)簡介RT-Thread Smart(簡稱 rt-smart)嵌入式實時操作系統(tǒng)是基于
發(fā)表于 06-22 17:56
RT-Thread編程指南
RT-Thread編程指南——RT-Thread開發(fā)組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統(tǒng),本文是RT
發(fā)表于 11-26 16:06
?0次下載
RT-Thread用戶手冊
RT-Thread用戶手冊——本書是RT-Thread的編程手冊,用于指導在RT-Thread實時操作系統(tǒng)環(huán)境下如何進行編
程。
發(fā)表于 11-26 16:16
?0次下載
RT Thread操作系統(tǒng)教程及資料
## RT-Thread 簡介 ##
RT-Thread RTOS是一款來自中國的開源實時操作系統(tǒng),
由國內一些專業(yè)開發(fā)人員開發(fā)、維護。
它不僅僅是一款高效、穩(wěn)定的實時核心,也是一套
發(fā)表于 05-11 14:54
?3次下載
RT-Thread Smart微內核操作系統(tǒng)發(fā)布!
9月1日,由上海睿賽德電子科技有限公司舉辦的RT-Thread Smart微內核操作系統(tǒng)發(fā)布會于北京圓滿落幕,發(fā)布會以見微為主題,邀請到中國工程院院士、產業(yè)專家、高校教授及行業(yè)從業(yè)人員100余位蒞臨
國民技術攜手RT-Thread共同推進MCU與RT-Thread操作系統(tǒng)廣泛適配
日前,國民技術股份有限公司與知名物聯(lián)網操作系統(tǒng)廠商睿賽德科技(RT-Thread)簽署會員合作協(xié)議,正式成為RT-Thread高級會員。國民技術將基于通用MCU和RT-Thread物聯(lián)
RT-Thread實時操作系統(tǒng)安裝向導
RT-Thread 是一個集實時操作系統(tǒng)(RTOS)內核、中間件組件和開發(fā)者社區(qū)于一體的技術平臺,由熊譜翔先生帶領并集合開源社區(qū)力量開發(fā)而成,RT-Thread 也是一個組件完整豐富、高度可伸縮
發(fā)表于 04-02 09:43
?7次下載
2022 RT-Thread全球技術大會:實時嵌入式操作系統(tǒng)概述
RT-Thread全球技術大會:嵌入式實時操作系統(tǒng)的昨天、今天和明天 主要從四個方面進行介紹,首先對實時嵌入式系統(tǒng)進行概述。
RT-Thread學習筆記 RT-Thread的架構概述
聯(lián)網操作系統(tǒng)。 RT-Thread 概述 RT-Thread,全稱是 Real Time-Thread,顧名思義,它是一個嵌入式實時多線程
RT-Thread操作系統(tǒng)已經成功部署至芯馳E3
近日,國內領先的車規(guī)芯片企業(yè)芯馳科技與國內領先的車載RTOS(實時操作系統(tǒng))企業(yè)睿賽德科技(RT-Thread)共同宣布:RT-Thread操作系統(tǒng)全面支持芯馳科技E3系列 MCU芯片
RT-Thread操作系統(tǒng)的FreeRTOS兼容層
的兼容項目中。 1 概述 這是一個針對RT-Thread國產操作系統(tǒng)的FreeRTOS操作系統(tǒng)兼容層,可以讓原有基于FreeRTOS操作系統(tǒng)
RT-Thread榮獲“最具影響力IoT操作系統(tǒng)獎”
2024年3月30日,第十一屆開源操作系統(tǒng)年度技術會議(OS2ATC)在西郊賓館舉辦!RT-Thread作為國內領先的開源操作系統(tǒng)斬獲了“最具影響力IoT操作系統(tǒng)獎”。該獎項是對
新書發(fā)布——《實時操作系統(tǒng)應用技術:RT-Thread與ARM編程實踐》
RT-Thread又一本新書《實時操作系統(tǒng)應用技術——基于RT-Thread與ARM的編程實踐》發(fā)布,標志著RT-Thread生態(tài)和實時操作系統(tǒng)
RT-Thread操作系統(tǒng)應用開發(fā)寒假師資培訓
隨著物聯(lián)網和智能系統(tǒng)的快速發(fā)展,嵌入式成為當前最熱門最有發(fā)展前途的IT應用領域之一。為進一步提升全國大學生在嵌入式芯片及系統(tǒng)設計領域的創(chuàng)新能力,特別是針對物聯(lián)網應用開發(fā)中RT-Thread操作
RT-Thread操作系統(tǒng)打印函數(shù)概述
評論