当前位置: 首页 > news >正文

苏州做门户网站的公司平面设计工作

苏州做门户网站的公司,平面设计工作,个人微信网站建设,wordpress主题zhixina本文深入讲解 Zephyr 的调试利器,包括统一日志系统(logging subsystem)、内置命令行(Shell CLI)、与 GDB 调试集成方法,帮助开发者快速定位问题、分析运行时行为,实现高效开发与排障。 一、日志…

本文深入讲解 Zephyr 的调试利器,包括统一日志系统(logging subsystem)、内置命令行(Shell CLI)、与 GDB 调试集成方法,帮助开发者快速定位问题、分析运行时行为,实现高效开发与排障。


一、日志系统 Logging Subsystem

1.1 功能概述

Zephyr 提供统一的日志系统,支持多模块、分级、异步/同步、后端可插拔等特性,是系统级调试的重要入口。

1.2 启用配置

CONFIG_LOG=y
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_LOG_DEFAULT_LEVEL=4  # 默认 INFO 级别
CONFIG_LOG_BACKEND_UART=y

1.3 使用方式

#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(my_module, LOG_LEVEL_DBG);
LOG_INF("Hello Zephyr");
LOG_DBG("value=%d", x);

1.4 后端选择

  • CONFIG_LOG_BACKEND_UART:串口输出(默认)

  • CONFIG_LOG_BACKEND_RTT:J-Link RTT 输出(调试方便)

  • CONFIG_LOG_BACKEND_NET:通过网络传输日志

1.5 性能优化建议

  • 使用 CONFIG_LOG_MODE_DEFERRED 提升性能

  • 禁用不必要模块日志:CONFIG_LOG_DEFAULT_LEVEL=2

  • 可通过 menuconfig 精细控制模块级别


二、Shell 命令行调试 CLI

2.1 概述

Zephyr 自带内建 shell CLI,可通过 UART/USB/RTT 接口访问,支持线程查看、栈空间、内存、驱动、GPIO 等命令。

2.2 启用配置

CONFIG_SHELL=y
CONFIG_SHELL_BACKENDS=y
CONFIG_SHELL_BACKEND_SERIAL=y
CONFIG_UART_CONSOLE=n

2.3 常用命令示例

kernel threads      # 查看线程栈空间/状态
log enable dbg main # 打开主模块 DEBUG 日志
device list         # 查看驱动设备注册
uptime              # 系统运行时间

2.4 自定义命令

#include <zephyr/shell/shell.h>
static int hello_cmd(const struct shell *sh, size_t argc, char **argv) {shell_print(sh, "Hello from Zephyr shell!");return 0;
}
SHELL_CMD_REGISTER(hello, NULL, "Print hello", hello_cmd);

2.5 多后端支持

  • CONFIG_SHELL_BACKEND_RTT=y

  • CONFIG_SHELL_BACKEND_SERIAL=y

  • CONFIG_SHELL_BACKEND_TELNET=y


三、GDB 调试

3.1 原理说明

使用 GDB 可连接到运行中的 Zephyr 系统,通过断点、单步、变量查看等调试方式进行深入排查。

3.2 配置与启动

west build -b your_board
west debug  # 启动 GDB + openocd/jlink session

3.3 常用 GDB 命令

break main
continue
print my_var
backtrace
info threads

3.4 与 VSCode 集成

可通过 .vscode/launch.json 配置,结合 cortex-debug 插件实现图形化调试。

{"type": "cortex-debug","request": "launch","name": "Zephyr Debug","executable": "build/zephyr/zephyr.elf","servertype": "openocd","device": "STM32F103C8","configFiles": ["interface/stlink.cfg", "target/stm32f1x.cfg"]
}

四、调试实战与最佳实践

4.1 崩溃排查技巧

  • 启用 CONFIG_ASSERT=y,开启断言机制

  • 配置 CONFIG_FAULT_DUMP=2,打印详细异常信息

  • 打开 CONFIG_THREAD_NAME=y,利于日志定位线程

4.2 GPIO 打点调试

gpio_pin_set(gpio_dev, 5, 1); // 高电平打点

4.3 profiling 工具链

  • 使用 Tracealyzer、SystemView 等配合 RTT 输出分析任务调度

  • 使用 shell 的 uptime + log 时间戳测算逻辑耗时


五、总结

调试方式优点适用场景
Logging快速输出、异步可控程序逻辑追踪
Shell CLI命令式操作、高级监控实时线程/资源观察
GDB断点/变量/堆栈分析内存异常、崩溃排查

Zephyr 提供了工业级的多层调试能力,结合使用日志、shell 和 GDB,可实现高效的问题定位与系统分析,是构建高可靠嵌入式系统的必备技能。

http://www.dtcms.com/a/488649.html

相关文章:

  • 自己做的网站实现扫码跳转网站建设公司前台
  • 代理记账网站模板阿里巴巴logo设计含义
  • 安卓游戏模板下载网站做网站活动
  • 扬中网站建设开发梅州做网站公司
  • 怎么自己做刷赞网站网站建设对企业的发展
  • 网站开发交付营销型网站案例易网拓
  • 企业网站建设计划书wordpress 同分类评论调用
  • 基于YOLO11深度学习的人流量检测系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
  • 做门户网站的营业范围为什么建设银行网站
  • 境外网站做网站涉黄网络设计与制作课程
  • re一下--day3--运算符--经验贴
  • wordpress快速建站五个常见的电子商务网站
  • 北京专门做网站的公司网站是用虚拟机做还是服务器
  • 建站平台工具字体 安装到wordpress
  • 网站不显示域名解析错误怎么办百度知道小程序
  • 如何解决pip install -r requirements.txt Windows 反斜杠转义导致路径解析失败 问题
  • 【机器学习入门】7.4 随机森林:一文吃透随机森林——从原理到核心特点
  • Linux C/C++ 学习日记(24):UDP协议的介绍:广播、多播的实现
  • SEO参与网站建设注意wordpress小机巧
  • 网站搭建公司案例网址wordpress 缓存文件 手动删除
  • 贵阳营销型网站建设为什么wordpress安装成了英文版
  • 【avalonia教程】11字符串格式化、avalonia自带绑定值的转换
  • 岐山县住房和城市建设局网站软文范例大全100
  • 网站建设概南宁seo网络优化公司
  • 视频网站设计与开发上海建设银行网站
  • 最精品网站建设做国际贸易都用什么网站
  • 专业团队张伟原图广东seo加盟
  • 外贸自建站平台怎么选海口网站建设哪家好
  • 即墨哪里有做网站的二手商城网站建设论文
  • 网站网页不对称平台营销策略都有哪些