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

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

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

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

恩智浦解讀Zephyr log系統(tǒng)的使用 Zephyr的shell和log功能介紹

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2025-02-27 09:19 ? 次閱讀

之前我們從0開始新建了一個簡單的Zephyr應(yīng)用-從0開始打造屬于自己的HelloWorld,本期就帶著大家熟悉一下Zephyrshelllog系統(tǒng)。

首先給大家介紹Zephyr log系統(tǒng)的使用,在使用log前需要:

1. 修改proj.conf打開log功能:
CONFIG_LOG=y
2. 編輯main.c使用log功能:
#include 
#include 


LOG_MODULE_REGISTER(main);


int main(void)
{
    int32_t count = 0;


    printk("Hello Zephyr!
");


    while (1)
    {   
         LOG_INF("Hello from main : %d", count++);
         k_sleep(K_MSEC(1000));
    }
    
    return 0;
}

這里通過LOG_MODULE_REGISTER注冊了一個叫做main的log系統(tǒng),并通過LOG_INF來進(jìn)行打印,執(zhí)行程序編譯和下載后可以得到結(jié)果:

ee7f79e6-f4a5-11ef-9310-92fbcf53809c.png

當(dāng)然,還可以利用LOG_WRN和LOG_ERR來打印信息,大家可以自行體驗。

接下來是shell的使用,同樣的首先要打開shell功能:

1. 編輯proj.conf文件:

CONFIG_LOG=y
CONFIG_SHELL=y
2. 重新構(gòu)建下載程序查看效果:

ee9454ce-f4a5-11ef-9310-92fbcf53809c.png

3. 當(dāng)然我們也可以嘗試其他有用的shell選項:

CONFIG_LOG=y
CONFIG_LOG_CMDS=y
CONFIG_SHELL=y
CONFIG_SHELL_PROMPT_UART="shell>"
CONFIG_SHELL_VT100_COLORS=y
CONFIG_KERNEL_SHELL=y
CONFIG_THREAD_MONITOR=y
#add a reboot command
CONFIG_REBOOT=y

4. 添加一個自定義shell命令, 拷貝如下內(nèi)容到main.c:

#include 
static int monkey_handler(const struct shell *shell, 
                      size_t argc,
                      char **argv)
{
   ARG_UNUSED(argc);
   ARG_UNUSED(argv);
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"                 ██████████████████████████            
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"               ██??????????????????????????██          
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"               ██????????????????????????????██        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"             ██??????????????????????????????██        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"         ██████????????????????????????????????██      
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"       ██??????????????????????????????????????██████  
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"       ██??????????????????????????????????????██????██
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"       ██??????????????????██????????██????????██????██
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"         ████??????????????██????????██????????██████  
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"             ██????????????????????????????????██      
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"     ████      ██????????????????????????????██        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"   ██    ██      ██????????????????????????██          
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"   ██  ██      ██????????????????????????????██        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"   ██          ██????????????????????????????██        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"     ████    ██????????????????????????????????██      
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"         ██████????????????????????????????????██      
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"             ██????██????????????????????██????██      
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"               ██████????????????????????██████        
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"                   ██??????████████??????██            
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"                   ██????██        ██????██            
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"                   ██████            ██████            
");
   shell_fprintf(shell,SHELL_VT100_COLOR_YELLOW,"
");
   shell_fprintf(shell,SHELL_VT100_COLOR_CYAN,"                          I'm Super
");
      
   return 0;
}
SHELL_CMD_REGISTER(monkey, NULL, "I'm super.", monkey_handler);



這里我們通過SHELL_CMD_REGISTER聲明了一個叫做monkey的指令,其處理函數(shù)是monkey_handler, 會打印一個黃色猴子:

eebd19ea-f4a5-11ef-9310-92fbcf53809c.png

這樣,我們就介紹完了shell和log系統(tǒng)的添加。在上一期中,我們只添加了一個main.c,在本期我們?yōu)榇蠹已a(bǔ)一個如果添加額外的一個.c文件,需要干兩件事兒:

1. 編輯CMakeLists.txt 添加c文件:
cmake_minimum_required(VERSION 3.20.0)


find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})


project(hello_world)


target_sources(app PRIVATE src/main.c)
target_sources(app PRIVATE src/t2.c)

2. 創(chuàng)建t2.c:
#include 
#include 


// Thread configuration
#define CONFIG__T2_TH_STACK_SIZE 2048
#define CONFIG__T2_TH_PRIORITY 5


void t2_thread_task(void *, void *, void *);


K_THREAD_DEFINE(t2_thread, CONFIG__T2_TH_STACK_SIZE,
                t2_thread_task, NULL, NULL, NULL,
                CONFIG__T2_TH_PRIORITY, 0, 0);


LOG_MODULE_REGISTER(t2);


void t2_thread_task(void *, void *, void *)
{
    while (1)
    {
        LOG_INF("Hello from T2!");
        k_sleep(K_MSEC(500));
    }
}

3. 使用west build + west flash編譯下載代碼:

eed7f5bc-f4a5-11ef-9310-92fbcf53809c.png

這樣,即便我們后面有更復(fù)雜的工程需要添加更多的.c文件,我們也能游刃有余,處理得當(dāng)!!

恩智浦半導(dǎo)體NXP Semiconductors N.V.(納斯達(dá)克股票代碼:NXPI)是汽車、工業(yè)物聯(lián)網(wǎng)、移動設(shè)備和通信基礎(chǔ)設(shè)施市場值得信賴的合作伙伴,致力于提供創(chuàng)新解決方案。


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

    關(guān)注

    0

    文章

    15

    瀏覽量

    11364
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    367

    瀏覽量

    23514
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    6028

原文標(biāo)題:Zephyr的shell和log功能介紹

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MCXN947與Zephyr的跨界合作 嵌入式技術(shù)的新飛躍

    的架構(gòu),理解其如何工作。在此處僅對其簡單介紹,便于理解后續(xù)內(nèi)容。 構(gòu)建系統(tǒng) Zephyr 使用 CMake 作為其構(gòu)建系統(tǒng),使用 Kconfig 進(jìn)行配置。首先 CMake 通過
    發(fā)表于 05-23 09:19 ?712次閱讀
    MCXN947與<b class='flag-5'>Zephyr</b>的跨界合作 嵌入式技術(shù)的新飛躍

    Zephyr的構(gòu)建工具

    給大家介紹一下Zephyr的構(gòu)建工具們:
    的頭像 發(fā)表于 12-05 09:51 ?876次閱讀
    <b class='flag-5'>Zephyr</b>的構(gòu)建工具

    Zephyr與FreeRTOS實時性測試比較

    時間是其它指標(biāo)的基礎(chǔ),因此以任務(wù)切換時間為例,分析兩個系統(tǒng)在實現(xiàn)上的差異。目前Zephyr任務(wù)切換時間為6.9微秒,F(xiàn)reeRTOS為2.2微秒。分析比較代碼后得出,Zephyr設(shè)計時考慮到了時間片等因素,實現(xiàn)上比較復(fù)雜,暫時找
    發(fā)表于 08-19 16:12

    MIMXRT595-EVK是否可以在SRAM中運(yùn)行hello_world zephyr示例?

    專家,我知道 MIMXRT1xxx 能夠在 ITCM 中運(yùn)行 hello_world 但是 MIMXRT595 中沒有 ITCM 只有 SRAM。MIMXRT595-EVK是否可以在SRAM中運(yùn)行hello_world zeph
    發(fā)表于 03-30 06:38

    LOG101/LOG104偏流調(diào)零電路

    LOG101/LOG104偏流調(diào)零電路 如圖所示為LOG101/LOG104的偏流調(diào)零電路。 LOG101/
    發(fā)表于 05-13 16:10 ?1640次閱讀
    <b class='flag-5'>LOG</b>101/<b class='flag-5'>LOG</b>104偏流調(diào)零電路

    Android中Log相關(guān)介紹

    本文檔內(nèi)容介紹了基于Android中Log相關(guān)介紹及源代碼,供參考
    發(fā)表于 03-15 11:03 ?4次下載

    淺析Zephyr應(yīng)用的代碼結(jié)構(gòu)中的自定義驅(qū)動

    本篇是《《Zephyr應(yīng)用的代碼結(jié)構(gòu)》》系列的終篇和下面兩篇文章一起可以構(gòu)建出一個有app獨立管理的zephyr項目 Zephyr應(yīng)用的代碼結(jié)構(gòu)--West提貨單: zephyr
    的頭像 發(fā)表于 08-18 09:08 ?4938次閱讀

    嵌入式系統(tǒng)log模塊設(shè)計

    對于開發(fā)嵌入式系統(tǒng)的工程師來說,log功能無疑是非常重要的功能模塊。這里講講嵌入式系統(tǒng)log模塊
    發(fā)表于 11-03 17:51 ?13次下載
    嵌入式<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>log</b>模塊設(shè)計

    使用Keysight免費(fèi)評估Log4j/Log4Shell零日漏洞

    在過去72小時左右的時間里,網(wǎng)絡(luò)安全領(lǐng)域的大多數(shù)人已經(jīng)意識到Log4j/Log4Shell零日漏洞及其對大多數(shù)web服務(wù)器、云應(yīng)用程序、互聯(lián)網(wǎng)設(shè)備和嵌入式設(shè)備的廣泛影響。你可以閱讀CVE-2021-44228中記錄的所有血淋淋的細(xì)節(jié),但底線是:這可能非常非常糟糕。
    的頭像 發(fā)表于 12-21 10:50 ?1614次閱讀

    Zephyr中斷服務(wù)類型及實際應(yīng)用

    說完中斷類型,介紹一下Zephyr中的中斷向量表的概念,除了硬件中斷向量表,Zephyr中還有一個較為新的概念,我們在上文中也有所提及,叫做軟件中斷向量表,那么他們都各自負(fù)責(zé)什么呢?我們來一一
    的頭像 發(fā)表于 03-10 11:53 ?2636次閱讀

    泰凌微電子Zephyr編譯環(huán)境搭建

    如上文所介紹,Telink Zephyr是由社區(qū)的Zephyr倉庫fork而來的,用于維護(hù)我們在社區(qū)的內(nèi)容,并開發(fā)新的功能。若要查看 Telink
    的頭像 發(fā)表于 01-30 11:28 ?3373次閱讀

    瑞薩正式加入Zephyr項目

    近日,瑞薩正式加入Zephyr項目,成為銀級會員。Zephyr是Linux基金會的開源項目,旨在為面向未來且資源受限的設(shè)備建立安全、互聯(lián)且靈活的實時操作系統(tǒng)Zephyr設(shè)計來源于開發(fā)
    的頭像 發(fā)表于 03-09 17:43 ?1929次閱讀

    深入解析Zephyr RTOS的技術(shù)細(xì)節(jié)

    Zephyr是一個針對資源受限設(shè)備優(yōu)化的小型、可縮放、多體系架構(gòu)實時操作系統(tǒng)(RTOS)。Zephyr由Linux基金會維護(hù)[1],是一個以構(gòu)建業(yè)界最佳的RTOS為目標(biāo)的開源合作項目。近年來
    的頭像 發(fā)表于 10-22 16:47 ?906次閱讀
    深入解析<b class='flag-5'>Zephyr</b> RTOS的技術(shù)細(xì)節(jié)

    使用MCUXPresso插件開發(fā)Zephyr

    應(yīng)廣大讀者朋友的熱情邀請,我們特別策劃了“Zephyr領(lǐng)進(jìn)門”系列介紹(共十篇),旨在為大家深度剖析Zephyr OS——這一備受矚目的開源實時操作系統(tǒng)。從使用MCUXPresso插件
    的頭像 發(fā)表于 11-28 09:41 ?446次閱讀

    IAR正式加入Zephyr項目

    全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR宣布,正式加入Zephyr項目,成為銀牌會員。Zephyr是由Linux基金會托管并廣泛應(yīng)用于嵌入式行業(yè)的開源實時操作系統(tǒng)(RTOS),
    的頭像 發(fā)表于 02-12 14:19 ?214次閱讀
    主站蜘蛛池模板: 欧美成人天天综合在线视色 | 亚洲人成a在线网站 | 久久成人免费网站 | aa国产| 有一婷婷色 | 激情六月婷婷 | 欧美在线播放 | 四虎www. | 亚洲精品在线免费观看视频 | 操操操综合网 | 538porm在线看国产亚洲 | 亚洲男人天堂2021 | 精品一区亚洲 | 日本三级视频在线 | 日本丰满毛茸茸熟妇 | 日日天天夜夜 | 国产精品夜夜春夜夜爽久久 | 99热久| 久久sp| 在线视频免费播放 | 欲色啪| 日本免费色视频 | videsgratis欧美另类 | 午夜免费视频 | 欧美黑人xxxx猛牲大交 | 成人欧美一区二区三区小说 | 在线观看亚洲人成网站 | 成人看片在线观看 | 俄罗斯美女69xxxxxx | 午夜视频网站 | 久久久久久久影院 | 国产亚洲卡二卡3卡4卡乱码 | 一级特黄女人生活片 | 夜夜操操操 | 中国一级特黄真人毛片免费看 | 天天干天天拍 | 亚洲伊人成人网 | 色天使网 | se色成人亚洲综合 | 欧美一级视频高清片 | 夜夜操天天爽 |