0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread操作系統(tǒng)打印函數(shù)概述

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-07-21 15:18 ? 次閱讀

在設(shè)計之初我們希望通過調(diào)試程序完成我們需要的代碼設(shè)計,這些都需要我們進(jìn)行調(diào)試,進(jìn)入degug模式,往往系統(tǒng)運行起來我們無法判斷程序運行哪一步因此需要通過打印功能顯示關(guān)鍵步驟的程序運行節(jié)點,同樣在rt-thread操作系統(tǒng)中依然可以進(jìn)行此過程 的代碼實現(xiàn)。下面就此進(jìn)行討論。

作為打印函數(shù)它提供了我們對應(yīng)的函數(shù)接口,我們調(diào)用時其實與printf是相同的用法,但是看底層的函數(shù)描述我們就知道其實還是存在差異的。

首先粘貼出函數(shù)的實際項目中的用法:

rt_kprintf("the producer generates a number: %d\n", array[set%MAXSEM]);

運行起來我們看到相應(yīng)的打印結(jié)果

pYYBAGLY-8OAIzh1AAAFpixkKu0340.png

相比于之前我們接觸到的重定義函數(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)                        //判斷控制臺設(shè)備是否為空
    {
        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);   //設(shè)備寫線程
        _console_device->open_flag = old_flag;     //控制臺設(shè)備狀態(tài)
    }
#else
    rt_hw_console_output(rt_log_buf); 0           //控制臺輸出buf
#endif
    va_end(args);
}
RTM_EXPORT(rt_kprintf);

其中包含的幾個線程大家可以自行觀看官方文件庫。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6889

    瀏覽量

    123642
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62901
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1305

    瀏覽量

    40331
收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread內(nèi)部機制大揭秘,帶你深入操作系統(tǒng)內(nèi)核

    一、RT-Thread概述RT-Thread是一款具有顯著優(yōu)勢的開源嵌入式實時操作系統(tǒng)。它不僅具備輕量級、實時性強的特點,還擁有廣泛的開源社區(qū)支持和豐富的應(yīng)用場景。在輕量級方面,
    的頭像 發(fā)表于 08-01 08:11 ?3947次閱讀
    <b class='flag-5'>RT-Thread</b>內(nèi)部機制大揭秘,帶你深入<b class='flag-5'>操作系統(tǒng)</b>內(nèi)核

    基于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做為國內(nèi)有較大影響力的開源實時操作系統(tǒng),本文是RT
    發(fā)表于 11-26 16:06 ?0次下載

    RT-Thread用戶手冊

    RT-Thread用戶手冊——本書是RT-Thread的編程手冊,用于指導(dǎo)在RT-Thread實時操作系統(tǒng)環(huán)境下如何進(jìn)行編 程。
    發(fā)表于 11-26 16:16 ?0次下載

    RT Thread操作系統(tǒng)教程及資料

    ## RT-Thread 簡介 ## RT-Thread RTOS是一款來自中國的開源實時操作系統(tǒng), 由國內(nèi)一些專業(yè)開發(fā)人員開發(fā)、維護。 它不僅僅是一款高效、穩(wěn)定的實時核心,也是一套
    發(fā)表于 05-11 14:54 ?2次下載

    RT-Thread Smart微內(nèi)核操作系統(tǒng)發(fā)布!

    9月1日,由上海睿賽德電子科技有限公司舉辦的RT-Thread Smart微內(nèi)核操作系統(tǒng)發(fā)布會于北京圓滿落幕,發(fā)布會以見微為主題,邀請到中國工程院院士、產(chǎn)業(yè)專家、高校教授及行業(yè)從業(yè)人員100余位蒞臨
    的頭像 發(fā)表于 09-09 10:49 ?2719次閱讀

    國民技術(shù)攜手RT-Thread共同推進(jìn)MCU與RT-Thread操作系統(tǒng)廣泛適配

    日前,國民技術(shù)股份有限公司與知名物聯(lián)網(wǎng)操作系統(tǒng)廠商睿賽德科技(RT-Thread)簽署會員合作協(xié)議,正式成為RT-Thread高級會員。國民技術(shù)將基于通用MCU和RT-Thread物聯(lián)
    的頭像 發(fā)表于 12-16 09:56 ?2422次閱讀

    RT-Thread實時操作系統(tǒng)安裝向?qū)?/a>

    RT-Thread 是一個集實時操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺,由熊譜翔先生帶領(lǐng)并集合開源社區(qū)力量開發(fā)而成,RT-Thread 也是一個組件完整豐富、高度可伸縮
    發(fā)表于 04-02 09:43 ?7次下載

    2022 RT-Thread全球技術(shù)大會:實時嵌入式操作系統(tǒng)概述

    RT-Thread全球技術(shù)大會:嵌入式實時操作系統(tǒng)的昨天、今天和明天 主要從四個方面進(jìn)行介紹,首先對實時嵌入式系統(tǒng)進(jìn)行概述。
    的頭像 發(fā)表于 05-27 10:42 ?1472次閱讀
    2022 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會:實時嵌入式<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>概述</b>

    RT-Thread學(xué)習(xí)筆記 RT-Thread的架構(gòu)概述

    聯(lián)網(wǎng)操作系統(tǒng)RT-Thread 概述 RT-Thread,全稱是 Real Time-Thread,顧名思義,它是一個嵌入式實時多線程
    的頭像 發(fā)表于 07-09 11:27 ?4604次閱讀
    <b class='flag-5'>RT-Thread</b>學(xué)習(xí)筆記 <b class='flag-5'>RT-Thread</b>的架構(gòu)<b class='flag-5'>概述</b>

    RT-Thread操作系統(tǒng)已經(jīng)成功部署至芯馳E3

    近日,國內(nèi)領(lǐng)先的車規(guī)芯片企業(yè)芯馳科技與國內(nèi)領(lǐng)先的車載RTOS(實時操作系統(tǒng))企業(yè)睿賽德科技(RT-Thread)共同宣布:RT-Thread操作系統(tǒng)全面支持芯馳科技E3系列 MCU芯片
    的頭像 發(fā)表于 09-09 09:15 ?1303次閱讀

    RT-Thread操作系統(tǒng)的FreeRTOS兼容層

    的兼容項目中。 1 概述 這是一個針對RT-Thread國產(chǎn)操作系統(tǒng)的FreeRTOS操作系統(tǒng)兼容層,可以讓原有基于FreeRTOS操作系統(tǒng)
    的頭像 發(fā)表于 01-14 00:55 ?1687次閱讀

    RT-Thread榮獲“最具影響力IoT操作系統(tǒng)獎”

    2024年3月30日,第十一屆開源操作系統(tǒng)年度技術(shù)會議(OS2ATC)在西郊賓館舉辦!RT-Thread作為國內(nèi)領(lǐng)先的開源操作系統(tǒng)斬獲了“最具影響力IoT操作系統(tǒng)獎”。該獎項是對
    的頭像 發(fā)表于 04-12 08:37 ?459次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲“最具影響力IoT<b class='flag-5'>操作系統(tǒng)</b>獎”

    新書發(fā)布——《實時操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實踐》

    RT-Thread又一本新書《實時操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和實時操作系統(tǒng)
    的頭像 發(fā)表于 05-11 08:35 ?864次閱讀
    新書發(fā)布——《實時<b class='flag-5'>操作系統(tǒng)</b>應(yīng)用技術(shù):<b class='flag-5'>RT-Thread</b>與ARM編程實踐》

    RT-Thread操作系統(tǒng)應(yīng)用開發(fā)寒假師資培訓(xùn)

    隨著物聯(lián)網(wǎng)和智能系統(tǒng)的快速發(fā)展,嵌入式成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。為進(jìn)一步提升全國大學(xué)生在嵌入式芯片及系統(tǒng)設(shè)計領(lǐng)域的創(chuàng)新能力,特別是針對物聯(lián)網(wǎng)應(yīng)用開發(fā)中RT-Thread操作
    的頭像 發(fā)表于 12-06 01:06 ?177次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統(tǒng)</b>應(yīng)用開發(fā)寒假師資培訓(xùn)