Обновление

This commit is contained in:
cfif 2026-02-24 13:46:25 +03:00
parent 27a37cc0e4
commit 9ccef80876
3 changed files with 75 additions and 21 deletions

View File

@ -4,6 +4,16 @@ ENTRY(Reset_Handler)
M_VECTOR_RAM_SIZE = 0x0400;
_MetadataSize = 256;
_BootloaderSize = 256K;
_BootloaderBegin = 0x01000000; /* BANK1 */
_FirmwareSize = 512K;
_FirmwareMainBegin = _BootloaderBegin + _BootloaderSize;
_FirmwareRecoveryBegin = 0x01010000; /* BANK2 */
/* Specify the memory areas */
MEMORY
{
@ -13,7 +23,10 @@ MEMORY
SRAM0 (RW) : ORIGIN = 0x21000000, LENGTH = 0x00010000 /* 64KB */
SRAM1 (RW) : ORIGIN = 0x21010000, LENGTH = 0x00008000 /* 32KB */
PFLASH (RW) : ORIGIN = 0x01000000, LENGTH = 0x00200000 /* 2MB */
PFLASH_BOOT (RW) : ORIGIN = _BootloaderBegin, LENGTH = _BootloaderSize /* 256K */
PFLASH_BOOT_META (RW) : ORIGIN = _BootloaderBegin + _BootloaderSize - _MetadataSize, LENGTH = _MetadataSize
PFLASH_MAIN (RW) : ORIGIN = _FirmwareMainBegin, LENGTH = _FirmwareSize /* 512K */
PFLASH_RECOVERY (RW) : ORIGIN = _FirmwareRecoveryBegin, LENGTH = _FirmwareSize /* 512K */
DFLASH (RW) : ORIGIN = 0x04000000, LENGTH = 0x00020000 /* 128KB */
@ -50,7 +63,31 @@ SECTIONS
*(.fini) /* section used in crti.o files */
*(.eh_frame) /* section used in crtbegin.o files */
. = ALIGN(4);
} > PFLASH
} > PFLASH_BOOT
.meta_boot : SUBALIGN(1)
{
__ram_boot_meta_start = .;
. = ALIGN(256);
KEEP(*(.meta_fw_crc))
LONG(_FirmwareSize - _MetadataSize) ; /* word with firmware_size */
KEEP(*(.meta_internal_hw_year))
KEEP(*(.meta_internal_hw_month))
KEEP(*(.meta_internal_hw_day))
KEEP(*(.meta_internal_hw_rev))
KEEP(*(.meta_internal_sw_year))
KEEP(*(.meta_internal_sw_month))
KEEP(*(.meta_internal_sw_day))
KEEP(*(.meta_internal_sw_rev))
KEEP(*(.meta_finger_year))
KEEP(*(.meta_finger_month))
KEEP(*(.meta_finger_day))
KEEP(*(.meta_finger_tester_serial))
} > PFLASH_BOOT_META
.data :
{
@ -83,7 +120,7 @@ SECTIONS
/* All data end */
__ram_data_end = .;
} > DTCM AT > PFLASH
} > DTCM AT > PFLASH_BOOT
/* Non-cache RAM section with data initialization */
.ncache_data :
@ -93,7 +130,7 @@ SECTIONS
*(.nocacheable_data*)
__ram_ncache_data_end = .;
. = ALIGN(4);
} > SRAM1 AT > PFLASH
} > SRAM1 AT > PFLASH_BOOT

View File

@ -12,9 +12,10 @@
#include "DeviceStorage.h"
#include "BootJump.h"
#define BOOT_AREA_LENGTH (256 * 1024)
#define FIRMWARE_MAIN_ADDR (0x01000000 + BOOT_AREA_LENGTH)
#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
#define BOOT_AREA_LENGTH (256 * 1024) // Размер загрузчика
#define FIRMWARE_MAIN_AREA_LENGTH (512 * 1024) // Размер основной программы
#define FIRMWARE_MAIN_ADDR (0x01000000 + BOOT_AREA_LENGTH) // Адрес основной программы
#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH) // Адрес основной программы (восстановление)
typedef struct {
tLoggerToSerialPort slog;

View File

@ -19,24 +19,41 @@ SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#-- Project config -------------------------------------------------------------
PROJECT(HVAC_BOOT_M7) # Project name
SET(INTERNAL_HW_YEAR 0x26)
SET(INTERNAL_HW_MONTH 0x01)
SET(INTERNAL_HW_DAY 0x01)
SET(INTERNAL_HW_REV 0x01)
SET(INTERNAL_SW_YEAR 0x26)
SET(INTERNAL_SW_MONTH 0x02)
SET(INTERNAL_SW_DAY 0x02)
SET(INTERNAL_SW_REV 0x02)
SET(FINGER_YEAR 0x26)
SET(FINGER_MONTH 0x02)
SET(FINGER_DAY 0x24)
SET(FINGER_TESTER_SERIAL \"B\")
SET(HARDWARE_REVISION 1.0.0) #
SET(VERSION \"1.0.0_BOOT_HVAC\") #
SET(VERSION_INTERFACE \"1.0_BOOT_INTERFACE\") #
SET(HARDWARE_USER_NAME "BOOT_HVAC")
#SET(VECT_TAB_OFFSET "0x100000")
SET(VECT_TAB_OFFSET "0x00000")
SET(HEXT_VALUE "8000000")
SET(PLL_NS "125")
#-- Defines --------------------------------------------------------------------
#ADD_DEFINITIONS(-DSET_ACCESS_PROTECTION) # Выставление защиты доступа к памяти
#ADD_DEFINITIONS(-DSET_WDT) # Выставление сторожевого таймера
ADD_DEFINITIONS(-DFIRMWARE_VERSION=${VERSION})
ADD_DEFINITIONS(-DHARDWARE_REVISION=\"${HARDWARE_REVISION}\")
ADD_DEFINITIONS(-DFIRMWARE_INTERFACE_VERSION=${VERSION_INTERFACE})
ADD_DEFINITIONS(-DINTERNAL_HW_YEAR=${INTERNAL_HW_YEAR})
ADD_DEFINITIONS(-DINTERNAL_HW_MONTH=${INTERNAL_HW_MONTH})
ADD_DEFINITIONS(-DINTERNAL_HW_DAY=${INTERNAL_HW_DAY})
ADD_DEFINITIONS(-DINTERNAL_HW_REV=${INTERNAL_HW_REV})
ADD_DEFINITIONS(-DINTERNAL_SW_YEAR=${INTERNAL_SW_YEAR})
ADD_DEFINITIONS(-DINTERNAL_SW_MONTH=${INTERNAL_SW_MONTH})
ADD_DEFINITIONS(-DINTERNAL_SW_DAY=${INTERNAL_SW_DAY})
ADD_DEFINITIONS(-DINTERNAL_SW_REV=${INTERNAL_SW_REV})
ADD_DEFINITIONS(-DFINGER_YEAR=${FINGER_YEAR})
ADD_DEFINITIONS(-DFINGER_MONTH=${FINGER_MONTH})
ADD_DEFINITIONS(-DFINGER_DAY=${FINGER_DAY})
ADD_DEFINITIONS(-DFINGER_TESTER_SERIAL=${FINGER_TESTER_SERIAL})
ADD_DEFINITIONS(-DUSING_OS_FREERTOS)
ADD_DEFINITIONS(-DVERSION_SEDANL_Y=25)
@ -60,7 +77,6 @@ ADD_DEFINITIONS(-DVERSION_MPV_M=10)
ADD_DEFINITIONS(-DVERSION_MPV_D=29)
ADD_DEFINITIONS(-DVECT_TAB_OFFSET=${VECT_TAB_OFFSET})
ADD_DEFINITIONS(-DHEXT_VALUE=${HEXT_VALUE})
ADD_DEFINITIONS(-DCMSIS_device_header="interrupt_manager.h")
ADD_DEFINITIONS(-DFLASH_PAGE_SIZE=2048)