Cross-platform serial firmware burn tool with modern TUI interface
Project description
TBurn
TBurn 是一个跨平台串口固件烧录工具,提供现代化的终端用户界面(TUI),支持多种芯片类型的固件烧录。
功能特性
- 🔥 多芯片支持 - CSK6、ARCS、ARCS_DUAL、VENUSA
- 📦 多烧录目标 - SPI Flash、eMMC
- ⚡ 高速烧录 - 支持波特率切换,最高 3Mbps
- ✅ MD5 校验 - 烧录后自动验证固件完整性
- 🔁 自动烧录 - Wait 模式(等待设备)+ Repeat 模式(循环烧录)
- 💾 配置持久化 - 自动保存用户配置和固件列表
- 🎨 现代化 TUI - 基于 Textual 框架,全键盘操作
快速开始
安装
# pip 安装(推荐)
pip install TBurn
# 或从源码安装
git clone https://github.com/thierrycao/TBurn.git
cd TBurn
pip install -r requirements.txt
运行
# pip 安装后直接运行
tburn
# 或从源码运行
python run_tui.py
# 指定串口
python run_tui.py -p /dev/ttyUSB0
# 调试模式
python run_tui.py --debug
界面预览
TBurn 提供现代化的终端用户界面,主要包含以下面板:
| 面板 | 功能 |
|---|---|
| 状态面板 | 显示芯片类型、串口端口、波特率、连接状态 |
| 固件面板 | 管理固件列表,显示名称、地址、烧录状态 |
| 烧录面板 | 自动进入烧录模式开关、开始烧录按钮 |
| 日志面板 | 实时显示烧录过程日志 |
| 进度面板 | 烧录进度条显示 |
| 命令面板 | 快捷键提示 |
快捷键
| 键 | 功能 | 说明 |
|---|---|---|
C |
芯片选择 | 选择芯片类型(CSK6/ARCS/ARCS_DUAL/VENUSA) |
T |
目标选择 | 选择烧录目标(SPI Flash/eMMC) |
P |
端口选择 | 选择串口设备 |
B |
波特率选择 | 选择通信波特率 |
F |
固件管理 | 添加/编辑/删除固件 |
Space |
开始烧录 | 执行烧录流程 |
D |
调试模式 | 开启/关闭调试日志 |
Q / Esc |
退出 | 退出应用程序 |
平台支持
Linux
# 安装依赖
pip install TBurn
# 串口权限(需要添加用户到 dialout 组)
sudo usermod -a -G dialout $USER
# 重新登录后生效
macOS
# 安装依赖
pip install TBurn
# 串口设备通常为 /dev/tty.usbserial-* 或 /dev/cu.usbserial-*
Windows
# 安装依赖
pip install TBurn
# 串口设备通常为 COM3、COM4 等
芯片支持详情
| 芯片 | 烧录地址 | RTS/DTR | Flash擦除 | 特殊配置 |
|---|---|---|---|---|
| CSK6 | 0x0 | 标准 | 自动 | 无 |
| ARCS | 0x20040000 | 反向 | 需要 | 无 |
| ARCS_DUAL | 0x20040000 | 反向 | 需要 | 双Flash选择 |
| VENUSA | 0x20050000 | 反向 | 需要 | 时钟配置 |
配置文件
配置保存在用户目录:~/.tburn_config.json
{
"chip_type": "arcs",
"burn_target": "spi_flash",
"port": "/dev/ttyUSB0",
"baudrate": 1500000,
"firmwares": [
{"name": "master.bin", "path": "/path/to/master.bin", "addr": "0x0"}
]
}
烧录流程
- 初始化串口 - 打开指定端口(115200)
- 进入烧录模式 - RTS/DTR 序列控制
- 同步设备 - 多次 SYNC 命令确认连接
- 加载 Burner - 上传烧录器固件到 RAM
- 配置 Burner - 波特率切换、时钟配置
- 烧录固件 - 分段写入 Flash
- MD5 校验 - 验证烧录数据完整性
- 复位设备 - 重启设备运行新固件
开发与构建
本地开发
# 克隆仓库
git clone https://github.com/thierrycao/TBurn.git
cd TBurn
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest src/tests/mock/ -v
构建二进制
# 安装构建工具
pip install pyinstaller
# 构建单文件可执行程序
pyinstaller TBurn.spec
# 输出位于 dist/TBurn
发布到 PyPI
pip install build twine
python -m build
twine upload dist/*
文档
贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
License
MIT License - 详见 LICENSE 文件
作者
Thierry Cao - GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tburn-2.0.3.tar.gz
(237.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
tburn-2.0.3-py3-none-any.whl
(258.6 kB
view details)
File details
Details for the file tburn-2.0.3.tar.gz.
File metadata
- Download URL: tburn-2.0.3.tar.gz
- Upload date:
- Size: 237.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20ada3bc8bb1b44d021e1984418a55851150b387b433a873f7398f649e5350ce
|
|
| MD5 |
c731b0928f7d5d56068ca8383b6e7cbe
|
|
| BLAKE2b-256 |
f425f08427a6b305fae0bac98eea1fed88167294677edc228baf5ab1f00d01d6
|
File details
Details for the file tburn-2.0.3-py3-none-any.whl.
File metadata
- Download URL: tburn-2.0.3-py3-none-any.whl
- Upload date:
- Size: 258.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a652b279e20d94cbeeb1ec1f2db9eda87397280bd7908f441bc6af398f155ecf
|
|
| MD5 |
3245de531ed9ff55ee76d13175ca68f3
|
|
| BLAKE2b-256 |
b970cbc24dcb283634ec77598e086cdadd80f377b635f165413dee5d5da5ab07
|