Skip to main content

Cross-platform serial firmware burn tool with modern TUI interface

Project description

TBurn

Python License Version Platform

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"}
  ]
}

烧录流程

  1. 初始化串口 - 打开指定端口(115200)
  2. 进入烧录模式 - RTS/DTR 序列控制
  3. 同步设备 - 多次 SYNC 命令确认连接
  4. 加载 Burner - 上传烧录器固件到 RAM
  5. 配置 Burner - 波特率切换、时钟配置
  6. 烧录固件 - 分段写入 Flash
  7. MD5 校验 - 验证烧录数据完整性
  8. 复位设备 - 重启设备运行新固件

开发与构建

本地开发

# 克隆仓库
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!

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

License

MIT License - 详见 LICENSE 文件

作者

Thierry Cao - GitHub

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tburn-2.0.2-py3-none-any.whl (258.8 kB view details)

Uploaded Python 3

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

Hashes for tburn-2.0.2.tar.gz
Algorithm Hash digest
SHA256 76b999e8662077c837864fcaf91f0b40efb2cacc0b926d53778044a4aa185206
MD5 21e72f4d0e8f3aba7f18510f572d5783
BLAKE2b-256 7e0c0c01480ccb6b0e5abf55ce254542bde04a6faa981a9ad24eb8e1b030611c

See more details on using hashes here.

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

Hashes for tburn-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 34504abd04a45626cdf5caa80821f94e056cab62c7e354ed1b8165ce127632f3
MD5 9ae8f73de678e704a684b8c1d8ea7a84
BLAKE2b-256 40351b39e226b3ae0731fc110c5d0a91f9e1fb33420cbef68be8b026de7628d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page