chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領(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來進行打印,執(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一個如果添加額外的一個.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.(納斯達克股票代碼: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

    文章

    16

    瀏覽量

    11636
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    373

    瀏覽量

    24905
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    6439

原文標(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 進行配置。首先 CMake 通過
    發(fā)表于 05-23 09:19 ?1256次閱讀
    MCXN947與<b class='flag-5'>Zephyr</b>的跨界合作 嵌入式技術(shù)的新飛躍

    分享Zephyr調(diào)試技巧

    前面幾期中,我們著重給大家介紹了如何搭建Zephyr開發(fā)環(huán)境,以及如何添加自己的應(yīng)用代碼。今天讓我們開始一個新的篇章:Zephyr調(diào)試技巧以及介紹Ozone進行
    的頭像 發(fā)表于 03-13 09:05 ?1661次閱讀

    Zephyr的構(gòu)建工具

    給大家介紹一下Zephyr的構(gòu)建工具們:
    的頭像 發(fā)表于 12-05 09:51 ?1908次閱讀
    <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

    LOG112,LOG2112,pdf(Precision Logarithmic and Log Ratio Ampli

    The LOG112 and LOG2112 are versatile integrated circuits that compute the logarithm or log ratio
    發(fā)表于 09-26 01:10 ?38次下載

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

    LOG101/LOG104偏流調(diào)零電路 如圖所示為LOG101/LOG104的偏流調(diào)零電路。 LOG101/
    發(fā)表于 05-13 16:10 ?1775次閱讀
    <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 ?6229次閱讀

    嵌入式系統(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免費評估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中記錄的所有血淋淋的細節(jié),但底線是:這可能非常非常糟糕。
    的頭像 發(fā)表于 12-21 10:50 ?1941次閱讀

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

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

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

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

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

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

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

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

    Zephyr賦能安全可靠的嵌入式開發(fā)

    日前,聯(lián)手Zephyr實時操作系統(tǒng)成功舉辦了Zephyr Project Meetup上海站的活動,6場主題演講以及深入的現(xiàn)場技術(shù)交流
    的頭像 發(fā)表于 04-21 10:26 ?873次閱讀