99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

恩智浦MCU加油站 ? 來(lái)源:恩智浦MCU加油站 ? 2025-02-27 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

1. 修改proj.conf打開(kāi)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;
}

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

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

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

接下來(lái)是shell的使用,同樣的首先要打開(kāi)shell功能:

1. 編輯proj.conf文件:

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

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

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

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. 添加一個(gè)自定義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);



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

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

這樣,我們就介紹完了shell和log系統(tǒng)的添加。在上一期中,我們只添加了一個(gè)main.c,在本期我們?yōu)榇蠹已a(bǔ)一個(gè)如果添加額外的一個(gè).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)是汽車(chē)、工業(yè)物聯(lián)網(wǎng)、移動(dòng)設(shè)備和通信基礎(chǔ)設(shè)施市場(chǎng)值得信賴(lài)的合作伙伴,致力于提供創(chuàng)新解決方案。


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

    關(guān)注

    0

    文章

    16

    瀏覽量

    11526
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24140
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    6269

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

    Zephyr的構(gòu)建工具

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

    Zephyr與FreeRTOS實(shí)時(shí)性測(cè)試比較

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

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

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

    LOG 100電路功能電路圖

    LOG 100電路功能電路圖
    發(fā)表于 06-29 10:01 ?2024次閱讀
    <b class='flag-5'>LOG</b> 100電路<b class='flag-5'>功能</b>電路圖

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

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

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

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

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

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

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

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

    Zephyr中斷服務(wù)類(lèi)型及實(shí)際應(yīng)用

    說(shuō)完中斷類(lèi)型,介紹一下Zephyr中的中斷向量表的概念,除了硬件中斷向量表,Zephyr中還有一個(gè)較為新的概念,我們?cè)谏衔闹幸灿兴峒?,叫做軟件中斷向量表,那么他們都各自?fù)責(zé)什么呢?我們來(lái)一一
    的頭像 發(fā)表于 03-10 11:53 ?2955次閱讀

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

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

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

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

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

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

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

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