feature(BL):修改BL文件为默认文件名,简化使用。

This commit is contained in:
2026-03-23 16:22:41 +08:00
parent fd8aa1b075
commit 08bba5f4e7
2 changed files with 19 additions and 7 deletions
+12 -6
View File
@@ -26,15 +26,15 @@
## 用法
```bash
python merge_bin.py <bootloader.bin> <app.bin> [-o 输出文件] [--app-addr 地址] [--flag-addr 地址]
python merge_bin.py <app.bin> [-b bootloader.bin] [-o 输出文件] [--app-addr 地址] [--flag-addr 地址]
```
### 参数说明
| 参数 | 必填 | 默认值 | 说明 |
|------|:----:|--------|------|
| `bootloader` | ✅ | — | Bootloader 的 .bin 文件路径 |
| `app` | ✅ | — | Application 的 .bin 文件路径 |
| `-b, --bootloader` | ❌ | `gd32e230f8_bootloader_hulk.bin` | Bootloader 的 .bin 文件路径 |
| `-o, --output` | ❌ | `<APP文件名>_BL.bin` | 输出文件路径 |
| `--app-addr` | ❌ | `0x08002000` | APP 在 Flash 中的起始地址 |
| `--flag-addr` | ❌ | `0x0800FFFC` | APP 有效标志位的地址 |
@@ -44,20 +44,27 @@ python merge_bin.py <bootloader.bin> <app.bin> [-o 输出文件] [--app-addr 地
**基本用法**(使用默认地址,输出自动命名为 `app_BL.bin`):
```bash
python merge_bin.py bootloader.bin app.bin
python merge_bin.py app.bin
```
默认会读取当前目录下固定文件名:`gd32e230f8_bootloader_hulk.bin`
**指定 Bootloader 文件**
```bash
python merge_bin.py app.bin -b bootloader.bin
```
**指定自定义地址**
```bash
python merge_bin.py bootloader.bin app.bin --app-addr 0x08002000 --flag-addr 0x0800FFFC -o merged.bin
python merge_bin.py app.bin -b bootloader.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
```
@@ -65,7 +72,6 @@ python merge_bin.py \
```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 custom_output.bin
```
+7 -1
View File
@@ -26,6 +26,7 @@ import os
FLASH_BASE = 0x08000000
FLASH_SIZE = 64 * 1024 # 64KB
DEFAULT_BOOTLOADER = "gd32e230f8_bootloader_hulk.bin"
def merge(bootloader_path, app_path, output_path, app_addr, flag_addr):
@@ -83,8 +84,13 @@ def merge(bootloader_path, app_path, output_path, app_addr, flag_addr):
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(
"-b",
"--bootloader",
default=DEFAULT_BOOTLOADER,
help=f"Bootloader bin 文件路径 (默认: {DEFAULT_BOOTLOADER})",
)
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)")