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 v2.0.0 [Header]│
├──────────────────────┬──────────────────────────────────────┤
│ 📡 状态面板 │ 📋 日志面板 │
│ 芯片: ARCS │ 08:30:00 📝 初始化串口 │
│ 端口: /dev/ttyUSB0 │ 08:30:01 ✅ 同步成功 │
│ 波特率: 1500000 │ 08:30:02 🔥 开始烧录 │
│ 状态: 已连接 │ ... │
├──────────────────────┼──────────────────────────────────────┤
│ 📦 固件面板 │ │
│ master.bin @0x0 │ │
│ resp.bin @0x40000 │ │
├──────────────────────┼──────────────────────���───────────────┤
│ 🔥 烧录面板 │ │
│ [自动进入烧录模式] │ │
│ [开始烧录] │ │
├──────────────────────┴──────────────────────────────────────┤
│ C:芯片 T:目标 P:端口 B:波特率 F:固件 Space:烧录 Q:退出 [Footer]│
└─────────────────────────────────────────────────────────────┘
快捷键
| 键 | 功能 | 说明 |
|---|---|---|
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/
构建二进制
# 安装构建工具
pip install pyinstaller
# 构建单文件可执行程序
pyinstaller --onefile --add-data "src/res:src/res" run_tui.py
# 输出位于 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.2.tar.gz
(237.4 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.2-py3-none-any.whl
(258.8 kB
view details)
File details
Details for the file tburn-2.0.2.tar.gz.
File metadata
- Download URL: tburn-2.0.2.tar.gz
- Upload date:
- Size: 237.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76b999e8662077c837864fcaf91f0b40efb2cacc0b926d53778044a4aa185206
|
|
| MD5 |
21e72f4d0e8f3aba7f18510f572d5783
|
|
| BLAKE2b-256 |
7e0c0c01480ccb6b0e5abf55ce254542bde04a6faa981a9ad24eb8e1b030611c
|
File details
Details for the file tburn-2.0.2-py3-none-any.whl.
File metadata
- Download URL: tburn-2.0.2-py3-none-any.whl
- Upload date:
- Size: 258.8 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 |
34504abd04a45626cdf5caa80821f94e056cab62c7e354ed1b8165ce127632f3
|
|
| MD5 |
9ae8f73de678e704a684b8c1d8ea7a84
|
|
| BLAKE2b-256 |
40351b39e226b3ae0731fc110c5d0a91f9e1fb33420cbef68be8b026de7628d4
|