会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 恩智浦解读Zephyr log体系的运用 Zephyr的shell和log功用介绍!

恩智浦解读Zephyr log体系的运用 Zephyr的shell和log功用介绍

时间:2025-05-22 14:49:33 来源:锐评时讯 作者:生活 阅读:953次

之前咱们从0开端新建了一个简略的Zephyr运用-从0开端打造归于自己的HelloW。or。ld,本期就带着咱们了解一下Zephyr的shell和log体系。

首先给咱们介绍Zephyr log体系的运用,在运用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体系,并经过LOG_INF来进行打印,履行程序编译和。下载。后能够得到成果: 当然,还能够运用LOG_WRN和LOG_ERR来打印。信息。,咱们能够自行体会。

接下来是shell的运用,相同的首先要翻开shell功用:

1. 修改proj.conf文件:
CONFIG_LOG=y。
CONFIG_SHELL=y。
2. 从头构建下载程序检查作用: 3. 当然咱们也能够测验其他有用的shell选项:
CONFIG_LOG=yCONFIG_LOG_CMDS=yCONFIG_SHELL=yCONFIG_SHELL_PROMPT_。UART。="shell>"CONFIG_SHELL_VT100_COLORS=yCONFIG_KERNEL_SHELL=yCONFIG_THRE。AD。_MONITOR=y#add a reboot commandCONFIG_REBOOT=y。
4. 增加一个自定义shell指令, 复制如下内容到main.c:。
#include。 stat。ic。int monkey_handler(const struct shell *shell,                       size_t argc,                      char **argv){   ARG_UNUSED(argc);   ARG_UNUSED(argv);   shell_fprin。tf。(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的指令,其处理函数是monkey_handler, 会打印一个黄色山公:

这样,咱们就介绍完了shell和log体系的增加。在上一期中,咱们只增加了一个main.c,在本期咱们为咱们补一个假如增加额定的一个.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. 创立t2.c:。
#include。 #include。 // Thread configura。ti。on#define CONFIG__T2_TH_ST。AC。K_SIZE 2048#define CONFIG__T2_TH_PRIORITY 5void 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编译下载代码:

这样,即使咱们后边有更杂乱的工程需求增加更多的.c文件,咱们也能挥洒自如,处理妥当!!

恩智浦。半导体。NXP。Semiconductors N.V.(纳斯达克股票代码:NXPI)是轿车、。工业。物联网。、移动设备和。通讯。基础设施商场值得信任的合作伙伴,致力于供给立异解决方案。

内容来源:https://bachduy.com/app-1/xổ số quảng nam ngày 24 tháng 1,http://chatbotjud.saude.mg.gov.br/app-1/jogos-porno-apk

(责任编辑:社会)

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面发生异常错误,系统设置开启调试模式后,刷新本页查看具体错误!