统一固件版本号:以 jb_product.h 为唯一真源
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -22,6 +22,11 @@ Output/
|
|||||||
**/MDK-ARM/Build_Output.txt
|
**/MDK-ARM/Build_Output.txt
|
||||||
**/MDK-ARM/JLinkLog.txt
|
**/MDK-ARM/JLinkLog.txt
|
||||||
|
|
||||||
|
# Keil RTE 自动生成头(勿改;打开工程会再生成)
|
||||||
|
**/MDK-ARM/RTE/
|
||||||
|
|
||||||
|
# 注意:*.uvprojx 必须入库,不能 ignore(Keil 工程文件)
|
||||||
|
|
||||||
# DebugConfig/*.dbgconf 建议保留入库(芯片调试配置,团队可共享)
|
# DebugConfig/*.dbgconf 建议保留入库(芯片调试配置,团队可共享)
|
||||||
|
|
||||||
# ── 中间文件扩展名(散落于工程目录时兜底)──────────────────────────────────
|
# ── 中间文件扩展名(散落于工程目录时兜底)──────────────────────────────────
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
|
/* 项目代号(固件文件名用);软件版本见 jb_product.h 的 JB_MCU_SW_VERSION_* */
|
||||||
|
#define __PROJECT_CODE__ "DEMO"
|
||||||
// DEMO是项目编号,1.0.0是软件大版本,009是软件小版本
|
|
||||||
#define __VERSION__ "DEMO_1.0.0"
|
|
||||||
#define __DEVELOPER__ "WuChuYuan"
|
#define __DEVELOPER__ "WuChuYuan"
|
||||||
#define __EMAIL__ "1917507415@qq.com"
|
#define __EMAIL__ "1917507415@qq.com"
|
||||||
|
|
||||||
|
|||||||
+18
-10
@@ -16,11 +16,10 @@ set HEX_PATH=%cd%\MDK-ARM\Objects
|
|||||||
@REM Custom output directory
|
@REM Custom output directory
|
||||||
set OUTPUT_PATH=%cd%\Output
|
set OUTPUT_PATH=%cd%\Output
|
||||||
|
|
||||||
@REM Software version header
|
@REM Project code: application.h __PROJECT_CODE__
|
||||||
set VERSION_FILE_PATH=%cd%\Inc\application.h
|
@REM Soft version: jb_product.h JB_MCU_SW_VERSION_* (single source of truth)
|
||||||
|
set APP_H=%cd%\Inc\application.h
|
||||||
@REM Software version string format
|
set PRODUCT_H=%cd%\Protocol\jb_product.h
|
||||||
set SOFTWARE_VERSION="#define __VERSION__"
|
|
||||||
|
|
||||||
@REM Optional arg1: Keil root ($K) passed by AfterMake
|
@REM Optional arg1: Keil root ($K) passed by AfterMake
|
||||||
set "KEIL_ROOT=%~1"
|
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
|
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyMMdd_HHmmss"') do set CURRENT_DATE=%%i
|
||||||
|
|
||||||
@REM ------------------------------------------------------------
|
@REM ------------------------------------------------------------
|
||||||
@REM Read software version from application.h
|
@REM Compose name: PROJECT_MAJOR.MINOR.PATCH
|
||||||
@REM ------------------------------------------------------------
|
@REM ------------------------------------------------------------
|
||||||
set SW_Ver=unknown
|
set PROJECT_CODE=DEMO
|
||||||
for /f "tokens=3 delims= " %%i in ('findstr /C:%SOFTWARE_VERSION% "%VERSION_FILE_PATH%"') do set SW_Ver=%%i
|
set VER_MAJOR=0
|
||||||
if defined SW_Ver set SW_Ver=%SW_Ver:"=%
|
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%
|
set output_file_name=%SW_Ver%_%CURRENT_DATE%
|
||||||
|
echo Firmware version: %SW_Ver%
|
||||||
|
|
||||||
if not exist "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%"
|
if not exist "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
/* MCU software version: Vmajor.minor.patch */
|
/* MCU software version: Vmajor.minor.patch */
|
||||||
#define JB_MCU_SW_VERSION_MAJOR 1
|
#define JB_MCU_SW_VERSION_MAJOR 1
|
||||||
#define JB_MCU_SW_VERSION_MINOR 0
|
#define JB_MCU_SW_VERSION_MINOR 0
|
||||||
#define JB_MCU_SW_VERSION_PATCH 0
|
#define JB_MCU_SW_VERSION_PATCH 1
|
||||||
|
|
||||||
/* MCU hardware version: Vmajor.minor.patch */
|
/* MCU hardware version: Vmajor.minor.patch */
|
||||||
#define JB_MCU_HW_VERSION_MAJOR 1
|
#define JB_MCU_HW_VERSION_MAJOR 1
|
||||||
|
|||||||
@@ -14,7 +14,15 @@ void version_printf(void)
|
|||||||
{
|
{
|
||||||
appPrintf(LOG_NOTIC, "Developer:%s\r\n", __DEVELOPER__);
|
appPrintf(LOG_NOTIC, "Developer:%s\r\n", __DEVELOPER__);
|
||||||
appPrintf(LOG_NOTIC, "Email:%s\r\n", __EMAIL__);
|
appPrintf(LOG_NOTIC, "Email:%s\r\n", __EMAIL__);
|
||||||
appPrintf(LOG_NOTIC, "Version:%s\r\n", __VERSION__);
|
appPrintf(LOG_NOTIC, "Project:%s\r\n", __PROJECT_CODE__);
|
||||||
|
appPrintf(LOG_NOTIC, "SW Version:%u.%u.%u\r\n",
|
||||||
|
(unsigned)JB_MCU_SW_VERSION_MAJOR,
|
||||||
|
(unsigned)JB_MCU_SW_VERSION_MINOR,
|
||||||
|
(unsigned)JB_MCU_SW_VERSION_PATCH);
|
||||||
|
appPrintf(LOG_NOTIC, "HW Version:%u.%u.%u\r\n",
|
||||||
|
(unsigned)JB_MCU_HW_VERSION_MAJOR,
|
||||||
|
(unsigned)JB_MCU_HW_VERSION_MINOR,
|
||||||
|
(unsigned)JB_MCU_HW_VERSION_PATCH);
|
||||||
appPrintf(LOG_NOTIC, "Compiler Date:%s\r\n", __DATE__);
|
appPrintf(LOG_NOTIC, "Compiler Date:%s\r\n", __DATE__);
|
||||||
appPrintf(LOG_NOTIC, "Compiler Time:%s\r\n", __TIME__);
|
appPrintf(LOG_NOTIC, "Compiler Time:%s\r\n", __TIME__);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
* Auto generated Run-Time-Environment Configuration File
|
|
||||||
* *** Do not modify ! ***
|
|
||||||
*
|
|
||||||
* Project: 'Bootloader'
|
|
||||||
* Target: 'Project'
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef RTE_COMPONENTS_H
|
|
||||||
#define RTE_COMPONENTS_H
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define the Device Header File:
|
|
||||||
*/
|
|
||||||
#define CMSIS_device_header "py32f0xx.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* RTE_COMPONENTS_H */
|
|
||||||
Reference in New Issue
Block a user