generated from hulk/gd32e23x_template_cmake_vscode
更新版本号策略
This commit is contained in:
@@ -6,6 +6,10 @@ include(${CMAKE_SOURCE_DIR}/cmake/project.cmake)
|
|||||||
|
|
||||||
project(${PROJECT_NAME} LANGUAGES C CXX ASM)
|
project(${PROJECT_NAME} LANGUAGES C CXX ASM)
|
||||||
|
|
||||||
|
# Generate version header from CMake version variables
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/generated)
|
||||||
|
configure_file(${CMAKE_SOURCE_DIR}/cmake/version.h.in ${CMAKE_BINARY_DIR}/generated/version.h @ONLY)
|
||||||
|
|
||||||
# 添加SDK库
|
# 添加SDK库
|
||||||
add_subdirectory(SDK/CMSIS)
|
add_subdirectory(SDK/CMSIS)
|
||||||
add_subdirectory(SDK/GD32E23x_standard_peripheral)
|
add_subdirectory(SDK/GD32E23x_standard_peripheral)
|
||||||
@@ -47,6 +51,7 @@ project_add_target_properties(${PROJECT_NAME})
|
|||||||
# 头文件路径
|
# 头文件路径
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/Inc
|
${CMAKE_SOURCE_DIR}/Inc
|
||||||
|
${CMAKE_BINARY_DIR}/generated
|
||||||
|
|
||||||
# Add new include directories here, e.g. ${CMAKE_SOURCE_DIR}/Application/User/Inc
|
# Add new include directories here, e.g. ${CMAKE_SOURCE_DIR}/Application/User/Inc
|
||||||
|
|
||||||
@@ -68,7 +73,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE CMSIS)
|
|||||||
target_link_libraries(${PROJECT_NAME} PRIVATE GD32E23x_standard_peripheral)
|
target_link_libraries(${PROJECT_NAME} PRIVATE GD32E23x_standard_peripheral)
|
||||||
|
|
||||||
# 生成 bin/hex/list 文件名格式:[工程名_版本号_编译条件_编译日期]
|
# 生成 bin/hex/list 文件名格式:[工程名_版本号_编译条件_编译日期]
|
||||||
set(OUTPUT_PREFIX "${PROJECT_NAME}_${VERSION}_${IIC_TYPE}_${BUILD_DATE}")
|
set(OUTPUT_PREFIX "${PROJECT_NAME}_${VERSION}_${BUILD_VARIANT}_${BUILD_DATE}")
|
||||||
|
|
||||||
add_custom_command(TARGET ${PROJECT_NAME}
|
add_custom_command(TARGET ${PROJECT_NAME}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#ifndef BOARD_CONFIG_H
|
#ifndef BOARD_CONFIG_H
|
||||||
#define BOARD_CONFIG_H
|
#define BOARD_CONFIG_H
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
#define GD32E23XF4 0x10
|
#define GD32E23XF4 0x10
|
||||||
#define GD32E23XF6 0x20
|
#define GD32E23XF6 0x20
|
||||||
#define GD32E23XF8 0x40
|
#define GD32E23XF8 0x40
|
||||||
@@ -27,14 +29,6 @@
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
#define MCU_CODE 23u
|
|
||||||
|
|
||||||
#define FW_VERSION_MAJOR 0
|
|
||||||
#define FW_VERSION_MINOR 0
|
|
||||||
#define FW_VERSION_PATCH 3
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
/* Dynamic USART Configuration Structure */
|
/* Dynamic USART Configuration Structure */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t rcu_usart;
|
uint32_t rcu_usart;
|
||||||
|
|||||||
@@ -322,12 +322,29 @@ void handle_command(const uint8_t *frame, uint8_t len) {
|
|||||||
// send_response(RESP_TYPE_OK, s_report_status_ok, sizeof(s_report_status_ok));
|
// send_response(RESP_TYPE_OK, s_report_status_ok, sizeof(s_report_status_ok));
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
case 999u: //M999: 输出固件版本号(vMCU_CODE.FW_VERSION_MAJOR.FW_VERSION_MINOR.FW_VERSION_PATCH)
|
/* ==========================================
|
||||||
|
* M999 输出固件版本号命令
|
||||||
|
* ========================================== */
|
||||||
|
case 999u: //M999: 输出固件版本号
|
||||||
|
{
|
||||||
char version_str[16];
|
char version_str[16];
|
||||||
int n = snprintf(version_str, sizeof(version_str), "v%u.%u.%u.%u", MCU_CODE, FW_VERSION_MAJOR, FW_VERSION_MINOR, FW_VERSION_PATCH);
|
char *p = version_str;
|
||||||
send_response(RESP_TYPE_OK, (uint8_t *)version_str, (uint8_t)n);
|
|
||||||
// send_response(RESP_TYPE_OK, (uint8_t *)"v23.0.0.3", 9);
|
*p++ = 'v';
|
||||||
return;
|
p += uint_to_str(BOARD_TYPE_CODE, p);
|
||||||
|
*p++ = '.';
|
||||||
|
p += uint_to_str(FW_VERSION_MAJOR, p);
|
||||||
|
*p++ = '.';
|
||||||
|
p += uint_to_str(FW_VERSION_MINOR, p);
|
||||||
|
*p++ = '.';
|
||||||
|
p += uint_to_str(FW_VERSION_PATCH, p);
|
||||||
|
*p = '\0'; // null-terminate for printf safety
|
||||||
|
|
||||||
|
uint8_t n = (uint8_t)(p - version_str);
|
||||||
|
send_response(RESP_TYPE_OK, (uint8_t *)version_str, n);
|
||||||
|
COMMAND_DEBUG("Firmware Version: %s", version_str);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
case 9999u:
|
case 9999u:
|
||||||
// M9999: 重启系统
|
// M9999: 重启系统
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# Project basic info
|
# Project basic info
|
||||||
set(PROJECT_NAME "LDC1612")
|
set(PROJECT_NAME "LDC1612")
|
||||||
|
set(BOARD_TYPE_CODE 23)
|
||||||
set(VERSION_MAJOR 1)
|
set(VERSION_MAJOR 1)
|
||||||
set(VERSION_MINOR 0)
|
set(VERSION_MINOR 0)
|
||||||
set(VERSION_PATCH 0)
|
set(VERSION_PATCH 0)
|
||||||
@@ -7,10 +8,12 @@ set(VERSION "V${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|||||||
string(TIMESTAMP BUILD_DATE "%Y-%m-%d")
|
string(TIMESTAMP BUILD_DATE "%Y-%m-%d")
|
||||||
|
|
||||||
# 编译条件(如IIC类型等)
|
# 编译条件(如IIC类型等)
|
||||||
# set(IIC_TYPE "AutoDetectDriveCurrent")
|
# Example: HW-IIC_APP / HW-IIC_Bootloader
|
||||||
set(IIC_TYPE "HW-IIC")
|
# set(BUILD_VARIANT "AutoDetectDriveCurrent")
|
||||||
|
# set(BUILD_VARIANT "HW-IIC")
|
||||||
|
set(BUILD_VARIANT "APP")
|
||||||
|
|
||||||
# 其它自定义宏
|
# 其它自定义宏
|
||||||
add_definitions(-DIIC_TYPE=${IIC_TYPE})
|
add_definitions(-DBUILD_VARIANT=${BUILD_VARIANT})
|
||||||
add_definitions(-DPROJECT_VERSION="${VERSION}")
|
add_definitions(-DPROJECT_VERSION="${VERSION}")
|
||||||
add_definitions(-DBUILD_DATE="${BUILD_DATE}")
|
add_definitions(-DBUILD_DATE="${BUILD_DATE}")
|
||||||
7
cmake/version.h.in
Normal file
7
cmake/version.h.in
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* Auto-generated from CMake VERSION_* variables. Do not edit directly. */
|
||||||
|
#define BOARD_TYPE_CODE @BOARD_TYPE_CODE@
|
||||||
|
#define FW_VERSION_MAJOR @VERSION_MAJOR@
|
||||||
|
#define FW_VERSION_MINOR @VERSION_MINOR@
|
||||||
|
#define FW_VERSION_PATCH @VERSION_PATCH@
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
@echo off
|
|
||||||
set OPENOCD_SCRIPTS=
|
|
||||||
start "" "D:\Microsoft VS Code\Code.exe"
|
|
||||||
Reference in New Issue
Block a user