我们嵌入式开发中,常常会遇到如下问题:
- 调试工具分散,切换繁琐。
- 缺乏可视化数据分析工具。
- 多设备协同调试困难。
在 Github 上有一个开源的 Exlink_Tool 项目,能解决这些问题。
开源地址:
https://github.com/physicsexp...
Exlink_Tool 简介
Exlink_Tool 是一个基于 ESP32S3+LVGL 的嵌入式多功能调试器。
这款多功能调试器具有 DAPlink、逻辑分析仪、串口助手、数控电源、无线下载器、无线串口、电压表、i2c 扫描、PWM 输出、简易示波器、数字频率计等十余种不同的功能,涵盖了大部分嵌入式的调试场景:
1、系统框图
(1)功率控制板
主控芯片是 ESP32S3 ,它通过 SPI 协议连接屏幕,I2C 协议连接屏幕触摸模块、MCP4017 数字电位器和 INA226 功率监测芯片,PWM 控制蜂鸣器(BUZZER)。
电源部分由电池和电源系统组成,提供 5v 和 3.3v 的电压输出。通过 TYPEC 接口连接,还经过 USBHUB 与 ESP32S3 主控芯片相连,用于数据传输和供电。
Connector 接口可用于连接其他外部设备 。
(2)信号板
主要通过 USB 接口分别连接 TYPEA 接口、RP2040 芯片和 CH549 芯片,再通过 Connector 接口与外部设备连接,可能是用于数据信号的处理与传输。
2、实物图
3、排针引脚
4、整体切换逻辑
这是一个前后台系统,当我们未启动这个应用时,应用此时处于后台状态,标志位为 0,不占用系统资源。当我们选中这个应用时(如点击这个应用图标),标志位置 1,系统执行一系列初始化,应用进入前台运行。
整体前后台任务调度状态图:
状态分层:
- GUI 层:处理用户交互和任务调度。
- 后台层:监控标志位变化并管理任务队列。
- 前台层:执行具体任务的核心逻辑。
单个任务生命周期:
代码结构:
Exlink 项目文件夹下包含以下几个文件:
.pio (pio 配置文件)
.vscode (vscode 配置文件)
build (编译生成的文件)
include (包含的头文件)
lib (包含的库文件)
- Arduino-CST816T-Library (CST816T 库)
- INA-master(INA226 库)
- lvgl(lvgl 库)
- TFT_eSPI(屏幕驱动库)
src(源文件)
- main.cpp(主程序文件)
- ui.c(ui 文件)
- ui.h(ui 头文件)
- main_png.c(图片数组文件)
- event.c(事件回调文件)
- event.h(事件回调头文件)
test (测试文件)
.gitignore (屏蔽文件)
my.csv (ESP32S3 内存分配表)
platformio.ini(pio 项目配置文件)
代码如:
更多关于 Exlink_Tool 的介绍可进入 Github 项目地址。
https://github.com/physicsexp...
END
来源:strongerHuang
推荐阅读
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。