106 lines
3.1 KiB
C
Raw Permalink Normal View History

2024-05-13 08:14:17 +08:00
2024-12-11 14:22:51 +08:00
/*******************************************************************************
* the includes
******************************************************************************/
2024-05-13 08:14:17 +08:00
#include "extern.h"
2024-06-18 16:03:46 +08:00
#include "TLE94x1.h"
2024-05-13 08:14:17 +08:00
#include <string.h>
2024-06-18 16:03:46 +08:00
#include "drivers/reset/reset_drv.h"
#include "mcu.h"
2024-05-13 08:14:17 +08:00
2024-12-11 14:22:51 +08:00
/*******************************************************************************
* the defines
******************************************************************************/
#define ASW_HEAD_MASK (0xAABBCCDDul)
/*******************************************************************************
* the typedefs
******************************************************************************/
typedef struct
{
uint8_t HWVersion[4];
uint8_t BLVersion[8];
uint8_t bootBuildTime[12];
uint8_t bootBuildDate[16];
uint8_t ECUName[8];
uint8_t Reverse[16];
} Bootloade_CfgInfoType;//64 byte
typedef struct
{
uint32_t sAswHeader;
uint8_t appBuildTime[12];
uint8_t appBuildDate[16];
uint8_t appSW_VERSION[16];
2025-03-11 17:05:32 +08:00
uint8_t appSW_Debug;
uint8_t reverse[15];
2024-12-11 14:22:51 +08:00
} app_CfgInfoType;//64 byte
/*******************************************************************************
* the globals
******************************************************************************/
2024-06-18 16:03:46 +08:00
extern McuType mcu;
2024-05-13 08:14:17 +08:00
2024-12-11 14:22:51 +08:00
/*******************************************************************************
* the constants
******************************************************************************/
#pragma location = ".asw_header"
__root const app_CfgInfoType app_info = {
.sAswHeader = ASW_HEAD_MASK,//0x00010400
.appBuildTime = __TIME__,//0x00010404
.appBuildDate = __DATE__,//0x00010410
2025-04-11 10:46:09 +08:00
.appSW_VERSION = "SW0101_20250401",
2025-03-11 17:05:32 +08:00
.appSW_Debug = 0xff,//0x55为量产模式其它为debug模式
2024-12-11 14:22:51 +08:00
};
/*******************************************************************************
* the functions
******************************************************************************/
2024-05-13 08:14:17 +08:00
void getSW_VERSION(unsigned char *pdata)
{
2024-12-11 14:22:51 +08:00
memcpy(pdata, &(app_info.appSW_VERSION), sizeof(app_info.appSW_VERSION));
2024-05-13 08:14:17 +08:00
}
void getHW_VERSION(unsigned char *pdata)
{
2024-12-11 14:22:51 +08:00
Bootloade_CfgInfoType * PBootInfo;
PBootInfo = (Bootloade_CfgInfoType *)0x0000400;
memcpy(pdata, &(PBootInfo->HWVersion), sizeof(PBootInfo->HWVersion));
//memcpy(pdata, HW_VERSION, );
2024-05-13 08:14:17 +08:00
}
void getBuildTime(unsigned char *pdata)
{
memcpy(pdata, (unsigned char *)0x00010410, 12);
memcpy(pdata + 12, (unsigned char *)0x00010404, 8);
pdata[11] = ' ';
2024-06-18 16:03:46 +08:00
}
2024-12-11 14:22:51 +08:00
void getBL_VERSION(unsigned char *pdata)
{
Bootloade_CfgInfoType * PBootInfo;
PBootInfo = (Bootloade_CfgInfoType *)0x0000400;
memcpy(pdata, &(PBootInfo->BLVersion), sizeof(PBootInfo->BLVersion));
}
void getEcuName(unsigned char *pdata)
{
Bootloade_CfgInfoType * PBootInfo;
PBootInfo = (Bootloade_CfgInfoType *)0x0000400;
memcpy(pdata, &(PBootInfo->ECUName), sizeof(PBootInfo->ECUName));
}
2024-06-18 16:03:46 +08:00
void extHardwareReset(void)
{
SBC_Write_RegField(SBC_M_S_CTRL, SBC_M_S_CTRL_MODE_Msk, SBC_M_S_CTRL_MODE_Pos, SBC_MODE_RESET, NULL);
}
void extSortwareReset(void)
{
ResetDrv_SoftwareResetModule(&mcu.resetDrv,RESETDRV_SWRESET_SYS);
2025-03-11 17:05:32 +08:00
2024-05-13 08:14:17 +08:00
}