Files
lishanpi/tools/flash.bat
T

87 lines
2.5 KiB
Batchfile
Raw Normal View History

2026-04-26 16:24:42 +08:00
@echo off
REM LSPi Project 烧录脚本 (Windows 批处理版本)
REM 使用方式: flash.bat [tool]
REM tool 可选: openocd, jlink, pyocd, auto
setlocal enabledelayedexpansion
set PROJECT_NAME=LSPi_Project
set ELF_FILE=build\%PROJECT_NAME%.elf
set HEX_FILE=build\%PROJECT_NAME%.hex
set BIN_FILE=build\%PROJECT_NAME%.bin
REM 检查是否安装了 Python
python --version >nul 2>&1
if %errorlevel% equ 0 (
echo 使用 Python 烧录脚本...
python flash.py %*
exit /b %errorlevel%
)
REM 如果没有 Python,尝试直接使用 OpenOCD
echo 未检测到 Python,尝试使用 OpenOCD...
where openocd >nul 2>&1
if %errorlevel% equ 0 (
echo 找到 OpenOCD,开始烧录...
if not exist "%ELF_FILE%" (
echo 错误: ELF 文件未找到: %ELF_FILE%
echo 请先运行构建命令: cmake -B build && cmake --build build
exit /b 1
)
REM 使用专用 OpenOCD 配置文件
set OPENOCD_CFG=%~dp0openocd_gd32f470.cfg
if exist "!OPENOCD_CFG!" (
openocd -f "!OPENOCD_CFG!" -c "program_elf %ELF_FILE%" -c "shutdown"
) else (
REM 回退:创建临时 OpenOCD 配置文件
echo # OpenOCD 配置脚本 > openocd_temp.cfg
echo source [find interface/cmsis-dap.cfg] >> openocd_temp.cfg
echo source [find target/stm32f4x.cfg] >> openocd_temp.cfg
echo reset_config srst_only >> openocd_temp.cfg
echo program %ELF_FILE% verify reset exit >> openocd_temp.cfg
openocd -f openocd_temp.cfg
del openocd_temp.cfg 2>nul
)
exit /b %errorlevel%
)
REM 如果没有 OpenOCD,尝试使用 J-Link
where JLink.exe >nul 2>&1
if %errorlevel% equ 0 (
echo 找到 J-Link,开始烧录...
if not exist "%HEX_FILE%" (
echo 错误: HEX 文件未找到: %HEX_FILE%
echo 请先生成 HEX 文件: arm-none-eabi-objcopy -O ihex %ELF_FILE% %HEX_FILE%
exit /b 1
)
REM 创建临时 J-Link 脚本
echo device gd32f470zg > jlink_temp.jlink
echo speed 4000 >> jlink_temp.jlink
echo erase >> jlink_temp.jlink
echo loadfile %HEX_FILE% >> jlink_temp.jlink
echo r >> jlink_temp.jlink
echo g >> jlink_temp.jlink
echo exit >> jlink_temp.jlink
JLink.exe -CommanderScript jlink_temp.jlink
REM 清理临时文件
del jlink_temp.jlink 2>nul
exit /b %errorlevel%
)
echo 错误: 未找到任何烧录工具
echo.
echo 请安装以下工具之一:
echo 1. Python 3 (推荐) - 然后使用 flash.py 脚本
echo 2. OpenOCD - 开源调试编程工具
echo 3. SEGGER J-Link - 商业调试编程工具
echo.
echo 或者运行以下命令安装 Python:
echo 从 https://www.python.org/downloads/ 下载并安装 Python 3
echo.
exit /b 1