统一固件版本号:以 jb_product.h 为唯一真源

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-19 10:43:49 +08:00
co-authored by Cursor
parent 331864dc64
commit 199be89e41
6 changed files with 37 additions and 39 deletions
+18 -10
View File
@@ -16,11 +16,10 @@ set HEX_PATH=%cd%\MDK-ARM\Objects
@REM Custom output directory
set OUTPUT_PATH=%cd%\Output
@REM Software version header
set VERSION_FILE_PATH=%cd%\Inc\application.h
@REM Software version string format
set SOFTWARE_VERSION="#define __VERSION__"
@REM Project code: application.h __PROJECT_CODE__
@REM Soft version: jb_product.h JB_MCU_SW_VERSION_* (single source of truth)
set APP_H=%cd%\Inc\application.h
set PRODUCT_H=%cd%\Protocol\jb_product.h
@REM Optional arg1: Keil root ($K) passed by AfterMake
set "KEIL_ROOT=%~1"
@@ -31,14 +30,23 @@ set "KEIL_ROOT=%~1"
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyMMdd_HHmmss"') do set CURRENT_DATE=%%i
@REM ------------------------------------------------------------
@REM Read software version from application.h
@REM Compose name: PROJECT_MAJOR.MINOR.PATCH
@REM ------------------------------------------------------------
set SW_Ver=unknown
for /f "tokens=3 delims= " %%i in ('findstr /C:%SOFTWARE_VERSION% "%VERSION_FILE_PATH%"') do set SW_Ver=%%i
if defined SW_Ver set SW_Ver=%SW_Ver:"=%
set PROJECT_CODE=DEMO
set VER_MAJOR=0
set VER_MINOR=0
set VER_PATCH=0
@REM Custom output file name
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define __PROJECT_CODE__" "%APP_H%"') do set PROJECT_CODE=%%i
if defined PROJECT_CODE set PROJECT_CODE=%PROJECT_CODE:"=%
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_MAJOR" "%PRODUCT_H%"') do set VER_MAJOR=%%i
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_MINOR" "%PRODUCT_H%"') do set VER_MINOR=%%i
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_PATCH" "%PRODUCT_H%"') do set VER_PATCH=%%i
set SW_Ver=%PROJECT_CODE%_%VER_MAJOR%.%VER_MINOR%.%VER_PATCH%
set output_file_name=%SW_Ver%_%CURRENT_DATE%
echo Firmware version: %SW_Ver%
if not exist "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%"