Обновление
This commit is contained in:
parent
03233e644e
commit
58bfb47bf9
|
|
@ -14,46 +14,46 @@
|
||||||
|
|
||||||
SECT_SRAM_XCP tXCP_DAQ DAQ[MAX_DAO];
|
SECT_SRAM_XCP tXCP_DAQ DAQ[MAX_DAO];
|
||||||
|
|
||||||
char strPrintfDebug[80];
|
static char strPrintfDebug_XCP[80];
|
||||||
|
|
||||||
void PrintfDebug(uint8_t *data, uint8_t dlc) {
|
static void PrintfDebug(uint8_t *data, uint8_t dlc) {
|
||||||
|
|
||||||
switch (dlc) {
|
switch (dlc) {
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
sprintf(strPrintfDebug, " ");
|
sprintf(strPrintfDebug_XCP, " ");
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
sprintf(strPrintfDebug, "0x%02X", data[0]);
|
sprintf(strPrintfDebug_XCP, "0x%02X", data[0]);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X", data[0], data[1]);
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X", data[0], data[1]);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X", data[0], data[1], data[2]);
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X", data[0], data[1], data[2]);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3]);
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3]);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3], data[4]);
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3], data[4]);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3],
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2], data[3],
|
||||||
data[4], data[5]);
|
data[4], data[5]);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2],
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1], data[2],
|
||||||
data[3], data[4],
|
data[3], data[4],
|
||||||
data[5], data[6]);
|
data[5], data[6]);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
sprintf(strPrintfDebug, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1],
|
sprintf(strPrintfDebug_XCP, "0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X", data[0], data[1],
|
||||||
data[2], data[3], data[4],
|
data[2], data[3], data[4],
|
||||||
data[5], data[6], data[7]);
|
data[5], data[6], data[7]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sprintf(strPrintfDebug, " ");
|
sprintf(strPrintfDebug_XCP, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,7 @@ static bool isUNLOCK(tCanSerialPortFrameXCP *env, eTypeProtect RESOURCE) {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
static unsigned long SeedToKeyHVAC_NAMI(unsigned char rnd, unsigned long dwSeedInfo) {
|
static unsigned long SeedToKeyHVAC_NAMI(unsigned char rnd, unsigned long dwSeedInfo) {
|
||||||
#define Mask 0x55F388A6UL
|
#define Mask 0x55F388A6UL
|
||||||
|
|
||||||
|
|
@ -97,6 +97,8 @@ static unsigned long SeedToKeyHVAC_NAMI(unsigned char rnd, unsigned long dwSeedI
|
||||||
|
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
extern uint32_t generate_key(uint32_t seed);
|
||||||
|
|
||||||
void CanSerialPortFrameXcpInit(
|
void CanSerialPortFrameXcpInit(
|
||||||
tCanSerialPortFrameXCP *env,
|
tCanSerialPortFrameXCP *env,
|
||||||
|
|
@ -268,7 +270,7 @@ static uint8_t XCP_GET_SEED_F8(tCanSerialPortFrameXCP *env) {
|
||||||
eXcpCommand_GET_SEED *xcpCommand_GET_SEED = (eXcpCommand_GET_SEED *) env->response;
|
eXcpCommand_GET_SEED *xcpCommand_GET_SEED = (eXcpCommand_GET_SEED *) env->response;
|
||||||
xcpCommand_GET_SEED->COM = XCP_COMMAND_CONNECT;
|
xcpCommand_GET_SEED->COM = XCP_COMMAND_CONNECT;
|
||||||
xcpCommand_GET_SEED->LEN = 4;
|
xcpCommand_GET_SEED->LEN = 4;
|
||||||
xcpCommand_GET_SEED->KEY = 0x11223344;
|
xcpCommand_GET_SEED->KEY = 0x853A08FB;
|
||||||
env->RESOURCE = request->RESOURCE;
|
env->RESOURCE = request->RESOURCE;
|
||||||
|
|
||||||
return 6;
|
return 6;
|
||||||
|
|
@ -277,7 +279,7 @@ static uint8_t XCP_GET_SEED_F8(tCanSerialPortFrameXCP *env) {
|
||||||
static uint8_t XCP_UNLOCK_F7(tCanSerialPortFrameXCP *env) {
|
static uint8_t XCP_UNLOCK_F7(tCanSerialPortFrameXCP *env) {
|
||||||
eXcpCommand_REQ_UNLOCK *request = (eXcpCommand_REQ_UNLOCK *) env->canFrame.data;
|
eXcpCommand_REQ_UNLOCK *request = (eXcpCommand_REQ_UNLOCK *) env->canFrame.data;
|
||||||
|
|
||||||
uint32_t securitySeedMy = SeedToKeyHVAC_NAMI(0, 0x11223344);
|
uint32_t securitySeedMy = generate_key(0x853A08FB);//SeedToKeyHVAC_NAMI(0, 0x11223344);
|
||||||
|
|
||||||
if (securitySeedMy != request->KEY) {
|
if (securitySeedMy != request->KEY) {
|
||||||
env->response[0] = XCP_COMMAND_DISCONNECT;
|
env->response[0] = XCP_COMMAND_DISCONNECT;
|
||||||
|
|
@ -362,7 +364,7 @@ static uint8_t XCP_COMMAND_UPLOAD_F5(tCanSerialPortFrameXCP *env) {
|
||||||
|
|
||||||
#if (LOG_XCP == 1)
|
#if (LOG_XCP == 1)
|
||||||
PrintfDebug(env->response, 1);
|
PrintfDebug(env->response, 1);
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", 1, strPrintfDebug)
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", 1, strPrintfDebug_XCP)
|
||||||
#endif
|
#endif
|
||||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, 1, PROTOCOL_CAN_ADR_XCP,
|
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, 1, PROTOCOL_CAN_ADR_XCP,
|
||||||
PROTOCOL_CAN_TYPE_XCP,
|
PROTOCOL_CAN_TYPE_XCP,
|
||||||
|
|
@ -380,7 +382,7 @@ static uint8_t XCP_COMMAND_UPLOAD_F5(tCanSerialPortFrameXCP *env) {
|
||||||
env->ADR_MTA += 7;
|
env->ADR_MTA += 7;
|
||||||
#if (LOG_XCP == 1)
|
#if (LOG_XCP == 1)
|
||||||
PrintfDebug(env->response, 7 + 1);
|
PrintfDebug(env->response, 7 + 1);
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", 7 + 1, strPrintfDebug)
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", 7 + 1, strPrintfDebug_XCP)
|
||||||
#endif
|
#endif
|
||||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, 7 + 1, PROTOCOL_CAN_ADR_XCP,
|
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, 7 + 1, PROTOCOL_CAN_ADR_XCP,
|
||||||
PROTOCOL_CAN_TYPE_XCP,
|
PROTOCOL_CAN_TYPE_XCP,
|
||||||
|
|
@ -393,7 +395,7 @@ static uint8_t XCP_COMMAND_UPLOAD_F5(tCanSerialPortFrameXCP *env) {
|
||||||
|
|
||||||
#if (LOG_XCP == 1)
|
#if (LOG_XCP == 1)
|
||||||
PrintfDebug(env->response, tailBlock + 1);
|
PrintfDebug(env->response, tailBlock + 1);
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", tailBlock + 1, strPrintfDebug)
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", tailBlock + 1, strPrintfDebug_XCP)
|
||||||
#endif
|
#endif
|
||||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, tailBlock + 1, PROTOCOL_CAN_ADR_XCP,
|
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, tailBlock + 1, PROTOCOL_CAN_ADR_XCP,
|
||||||
PROTOCOL_CAN_TYPE_XCP, 1000);
|
PROTOCOL_CAN_TYPE_XCP, 1000);
|
||||||
|
|
@ -1621,7 +1623,7 @@ uint8_t vCanSerialPortFrameXcpReceive(tCanSerialPortFrameXCP *env, uint32 timeou
|
||||||
#if (LOG_XCP == 1)
|
#if (LOG_XCP == 1)
|
||||||
if ((com != 0xD0) && (com != 0xF5)) {
|
if ((com != 0xD0) && (com != 0xF5)) {
|
||||||
PrintfDebug(env->canFrame.data, env->canFrame.dlc);
|
PrintfDebug(env->canFrame.data, env->canFrame.dlc);
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "> %s [%d] %s", xcp_com[com].desc, env->canFrame.dlc, strPrintfDebug)
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "> %s [%d] %s", xcp_com[com].desc, env->canFrame.dlc, strPrintfDebug_XCP)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (xcp_com[com].func != NULL) {
|
if (xcp_com[com].func != NULL) {
|
||||||
|
|
@ -1633,7 +1635,7 @@ uint8_t vCanSerialPortFrameXcpReceive(tCanSerialPortFrameXCP *env, uint32 timeou
|
||||||
#if (LOG_XCP == 1)
|
#if (LOG_XCP == 1)
|
||||||
if ((com != 0xD0) && (com != 0xF5)) {
|
if ((com != 0xD0) && (com != 0xF5)) {
|
||||||
PrintfDebug(env->response, response_size);
|
PrintfDebug(env->response, response_size);
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", response_size, strPrintfDebug)
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "< [%d] %s", response_size, strPrintfDebug_XCP)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue