恩智浦解读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
(责任编辑:社会)