diff --git a/README.md b/README.md index 3a3d6f6..24d3c89 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,15 @@ ## 用法 ```bash -python merge_bin.py [-o 输出文件] [--app-addr 地址] [--flag-addr 地址] +python merge_bin.py [-b bootloader.bin] [-o 输出文件] [--app-addr 地址] [--flag-addr 地址] ``` ### 参数说明 | 参数 | 必填 | 默认值 | 说明 | |------|:----:|--------|------| -| `bootloader` | ✅ | — | Bootloader 的 .bin 文件路径 | | `app` | ✅ | — | Application 的 .bin 文件路径 | +| `-b, --bootloader` | ❌ | `gd32e230f8_bootloader_hulk.bin` | Bootloader 的 .bin 文件路径 | | `-o, --output` | ❌ | `_BL.bin` | 输出文件路径 | | `--app-addr` | ❌ | `0x08002000` | APP 在 Flash 中的起始地址 | | `--flag-addr` | ❌ | `0x0800FFFC` | APP 有效标志位的地址 | @@ -44,20 +44,27 @@ python merge_bin.py [-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 ``` diff --git a/merge_bin.py b/merge_bin.py index dfd9070..665efad 100644 --- a/merge_bin.py +++ b/merge_bin.py @@ -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)")