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
|
|
|
|
}
|