Files
banban/ql-bootloader/logo/src/version_logo.c
T

136 lines
3.5 KiB
C

#include "version_logo.h"
#include "logo_table.h"
#include "utilities.h"
extern UINT32 Load$$INIT$$Base;
extern void Reset_Handler(void);
/**
* Note: The following MACRO can not MODIFY
* 1. LOGO_VALID_MAGIC: image magic
* 2. LOGO_EXEC_ADDR: image Exec Addr
* 3. LOGO_LOAD_EXEC_ADDR: image Load Addr
*/
#define LOGO_EXEC_ADDR (UINT32)&Reset_Handler
#define LOGO_LOAD_EXEC_ADDR (UINT32)&Load$$INIT$$Base
//for basic logo build version
#define VB_VERSION_DATE "20251023"
#define INFO_STRING VB_VERSION_DATE##"_db"
//for LCD TYPE INFO
//Note: The following will only choose one, Default is "NO_LCD"
#ifdef LCD_ST7789V_MCU
#define VB_OEM_LCD_TYPE "LCD_ST7789V_MCU"
#endif
#ifdef LCD_ST7789V_SPI_3WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_ST7789V_SPI_3WIRE_1LANE_1IF"
#endif
#ifdef LCD_ST7789V_SPI_3WIRE_2LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_ST7789V_SPI_3WIRE_2LANE_1IF"
#endif
#ifdef LCD_ST7789V_SPI_4WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_ST7789V_SPI_4WIRE_1LANE_1IF"
#endif
#ifdef LCD_ST7789V_SPI_4WIRE_1LANE_2IF
#define VB_OEM_LCD_TYPE "LCD_ST7789V_SPI_4WIRE_1LANE_2IF"
#endif
#ifdef LCD_GC9305_MCU
#define VB_OEM_LCD_TYPE "LCD_GC9305_MCU"
#endif
#ifdef LCD_GC9305_SPI_3WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9305_SPI_3WIRE_1LANE_1IF"
#endif
#ifdef LCD_GC9305_SPI_3WIRE_2LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9305_SPI_3WIRE_2LANE_1IF"
#endif
#ifdef LCD_GC9305_SPI_4WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9305_SPI_4WIRE_1LANE_1IF"
#endif
#ifdef LCD_GC9306_SPI_3WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9306_SPI_3WIRE_1LANE_1IF"
#endif
#ifdef LCD_GC9306_SPI_3WIRE_2LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9306_SPI_3WIRE_2LANE_1IF"
#endif
#ifdef LCD_GC9306_SPI_4WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_GC9306_SPI_4WIRE_1LANE_1IF"
#endif
#ifdef LCD_DUMMY_MCU
#define VB_OEM_LCD_TYPE "LCD_DUMMY_MCU"
#endif
#ifdef LCD_DUMMY_SPI_3WIRE_2LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_DUMMY_SPI_3WIRE_2LANE_1IF"
#endif
#ifdef LCD_ST7735S_SPI_3WIRE_1LANE_1IF
#define VB_OEM_LCD_TYPE "LCD_ST7735_SPI_3WIRE_1LANE_1IF"
#endif
#ifndef LCD_USE_IN_CODE //default
#define VB_OEM_LCD_TYPE "NO_LCD"
#define LOGO_DISPLAY_FLAG DISABLE_LOGO_DISPLAY_FLAG
#else
#define LOGO_DISPLAY_FLAG ENABLE_LOGO_DISPLAY_FLAG
#endif
#define VB_ADD_MORE_FUNCTION_SUPORT "SUPPORT_ADD_MORE_FUNCTION"
#pragma arm section rodata="IMGLOGO"
const LogoHeaderTableStruct logo_vb =
{
//+++++++++++++++++++++++++++++
//AREA_1: LOGO_LOAD_BLOCK
{
LOGO_VALID_MAGIC,
LOGO_EXEC_ADDR,
LOGO_LOAD_EXEC_ADDR,
LOGO_HEADER_TOTAL_SIZE
},
//+++++++++++++++++++++++++++++
//AREA_2: LOGO_FEEDBACK_BLOCK
{
"LOGO_FLAG:",
LOGO_DISPLAY_FLAG
},
//+++++++++++++++++++++++++++++
//AREA_3: VERSION_INFO
{
VB_VERSION_DATE,
VB_OEM_LCD_TYPE,
VB_ADD_MORE_FUNCTION_SUPORT,
INFO_STRING
},
//AREA_4: ext*.bin info
{
{
{"LOGO_FUC_MG\0",(UINT32)LOGO_FUNCTION_MAGIC_2}, //place updater function magic
{"EXT_SIZE\0", (UINT32)(LOGO_INVALID_VALUE)}, //write by external_ext_bin_size_update.pl
{"LOGO_SIZE\0", (UINT32)(LOGO_INVALID_VALUE)}, //write by external_ext_bin_size_update.pl
{"ADC_EXEC\0", (UINT32)(DSP_ADC_EXECUTE_ADDR)},
{"ADC_SIZE\0", (UINT32)(LOGO_INVALID_VALUE)}, //write by external_ext_bin_append.pl
}
},
};
#pragma arm section code