fix(output):修改默认输出名为APP文件名增加_BL标识

This commit is contained in:
2026-03-23 00:55:22 +08:00
parent e367b1f916
commit fd8aa1b075
2 changed files with 19 additions and 7 deletions
+14 -6
View File
@@ -35,16 +35,16 @@ python merge_bin.py <bootloader.bin> <app.bin> [-o 输出文件] [--app-addr 地
|------|:----:|--------|------|
| `bootloader` | ✅ | — | Bootloader 的 .bin 文件路径 |
| `app` | ✅ | — | Application 的 .bin 文件路径 |
| `-o, --output` | ❌ | `merged.bin` | 输出文件路径 |
| `-o, --output` | ❌ | `<APP文件名>_BL.bin` | 输出文件路径 |
| `--app-addr` | ❌ | `0x08002000` | APP 在 Flash 中的起始地址 |
| `--flag-addr` | ❌ | `0x0800FFFC` | APP 有效标志位的地址 |
### 示例
**基本用法**(使用默认地址):
**基本用法**(使用默认地址,输出自动命名为 `app_BL.bin`):
```bash
python merge_bin.py bootloader.bin app.bin -o merged.bin
python merge_bin.py bootloader.bin app.bin
```
**指定自定义地址**
@@ -53,19 +53,27 @@ python merge_bin.py bootloader.bin app.bin -o merged.bin
python merge_bin.py bootloader.bin app.bin --app-addr 0x08002000 --flag-addr 0x0800FFFC -o merged.bin
```
**实际项目示例**
**实际项目示例**(默认输出为 `CeramixNano-MB_V1.0.9_APP_2026-03-23_BL.bin`
```bash
python merge_bin.py \
gd32e23x_V1.0.0_bootloader_2026-03-23.bin \
CeramixNano-MB_V1.0.9_APP_2026-03-23.bin
```
**指定输出文件名**
```bash
python merge_bin.py \
gd32e23x_V1.0.0_bootloader_2026-03-23.bin \
CeramixNano-MB_V1.0.9_APP_2026-03-23.bin \
-o CeramixNano-MB_V1.0.9_APP_BL_2026-03-23.bin
-o custom_output.bin
```
### 输出示例
```
合成完成: merged.bin
合成完成: CeramixNano-MB_V1.0.9_APP_2026-03-23_BL.bin
Bootloader : 3272 字节 @ 0x08000000
Application: 25600 字节 @ 0x08002000
Flag : 0xEEEE @ 0x0800FFFC
+5 -1
View File
@@ -85,11 +85,15 @@ def main():
parser = argparse.ArgumentParser(description="合成 GD32E230 初始烧录固件 (bootloader + app)")
parser.add_argument("bootloader", help="Bootloader bin 文件路径")
parser.add_argument("app", help="Application bin 文件路径")
parser.add_argument("-o", "--output", default="merged.bin", help="输出文件路径 (默认: merged.bin)")
parser.add_argument("-o", "--output", default=None, help="输出文件路径 (默认: APP文件名_BL.bin)")
parser.add_argument("--app-addr", default="0x08002000", help="APP 起始地址 (默认: 0x08002000)")
parser.add_argument("--flag-addr", default="0x0800FFFC", help="标志位地址 (默认: 0x0800FFFC)")
args = parser.parse_args()
if args.output is None:
base, ext = os.path.splitext(os.path.basename(args.app))
args.output = f"{base}_BL{ext}"
app_addr = int(args.app_addr, 0)
flag_addr = int(args.flag_addr, 0)