# BIN_Splitter **Repository Path**: flyerink/bin_splitter ## Basic Information - **Project Name**: BIN_Splitter - **Description**: 这是一个用于将整包二进制镜像按 `flashMap` 定义的分区范围拆分成单独分区文件的小工具。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-10 - **Last Updated**: 2026-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BIN_Splitter_CMD 这是一个用于将整包二进制镜像按 `flashMap` 定义的分区范围拆分成单独分区文件的小工具。 ## 功能 - 读取整包二进制文件 - 解析 `flashMap.txt` 中定义的分区范围 - 从整包中提取每个分区数据 - 去除分区尾部多余的 `0xFF` 填充 - 输出文件命名为 `_0x.bin` - 生成的文件保存在 `output/` 目录 ## 目录结构 - `main.cpp`:程序入口与分区解析逻辑 - `CMakeLists.txt`:构建配置,使用 C++17 并启用静态链接 - `bin/run.bat`:示例运行脚本 - `output/`:程序运行后自动生成的分区输出目录 - `flashMap.txt`:分区映射文件示例 ## 构建方式 1. 在项目根目录执行: ```powershell cmake -S . -B build cmake --build build ``` 2. 构建完成后,生成的可执行文件为 `build/bin_splitter.exe`。 ## 运行方式 可以直接使用 `bin/run.bat`: ```powershell bin\run.bat ``` 或者手动运行: ```powershell build\bin_splitter.exe fullImage.bin flashMap.txt ``` ## flashMap 文件格式 `flashMap.txt` 支持每行定义一个分区,格式示例: ```text --------------------------------------------------- Flash Memory Map --------------------------------------------------- 0x00000000 - 0x00100000 : boot : Ver 10.08.000000 0x00100000 - 0x00700000 : osimage : Ver 10.08.000000 0x00700000 - 0x03400000 : root : Ver 10.08.000000 0x03400000 - 0x03bf0000 : www : Ver 10.08.000000 0x03bf0000 - 0x03f80000 : conf : Ver 10.08.000000 0x03f80000 - 0x03ff0000 : *******FREE******* 0x03ff0000 - 0x04000000 : bmc_nvl : Ver 10.08.000000 --------------------------------------------------- ``` 说明: - `0x00000000`:分区起始地址 - `0x0000FFFF`:分区结束地址 - `boot`:分区名称 - `:...`:第二个冒号后边的内容可以作为备注,但不会影响解析 - 以 `#` 开头的行会被视为注释 ## 输出规则 - 输出目录为 `output/` - 文件名规则为:`_0x.bin` - 会自动去掉每个分区尾部的 `0xFF` 字节 ## 注意事项 - 仅在 Windows 下测试通过 - 分区地址范围如果超出二进制文件大小,程序会报错并停止 - 解析失败的行会打印警告并跳过