Обновление 23.06.2026
This commit is contained in:
parent
ae97e7ee49
commit
d16543ad54
46
CanUds.c
46
CanUds.c
|
|
@ -234,8 +234,8 @@ void SendUpdatePendingFlashClear(void *env) {
|
|||
}
|
||||
|
||||
static void setDefaultSecurityAccess(tCanUds *env) {
|
||||
env->udsFirmwareStepsMain = UDS_Firmware_Step_None;
|
||||
env->udsFirmwareStepsCalib = UDS_Firmware_Step_None;
|
||||
// env->udsFirmwareStepsMain = UDS_Firmware_Step_None;
|
||||
// env->udsFirmwareStepsCalib = UDS_Firmware_Step_None;
|
||||
env->SA.requestSequenceRequestSeed = false;
|
||||
env->SA.stateSecurityAccess = false;
|
||||
env->SA.counter_max_attempts_default = 0;
|
||||
|
|
@ -951,12 +951,11 @@ static uint16_t vUDS_check_Programming_Preconditions(tCanUds *env, eUdsRoutineCo
|
|||
return 0xFF00 | UDS_error_sub_functionNotSupported;
|
||||
}
|
||||
|
||||
env->udsFirmwareStepsMain = UDS_Firmware_Step_Preconditions;
|
||||
env->udsFirmwareStepsCalib = UDS_Firmware_Step_Preconditions;
|
||||
// env->udsFirmwareStepsMain = UDS_Firmware_Step_Preconditions;
|
||||
// env->udsFirmwareStepsCalib = UDS_Firmware_Step_Preconditions;
|
||||
|
||||
// env->dataResponse[4] = UDS_routine_RoutineStartStopSuccess;
|
||||
// return 4 + 1;
|
||||
return 4;
|
||||
env->dataResponse[4] = UDS_routine_RoutineStartStopSuccess;
|
||||
return 4 + 1;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1014,10 +1013,10 @@ static uint16_t vUDS_routine_Erase_Memory(tCanUds *env, eUdsRoutineControlType u
|
|||
return 0xFF00 | UDS_error_incorrectMessageLengthOrInvalidFormat;
|
||||
}
|
||||
|
||||
if (((env->udsFirmwareStepsMain != UDS_Firmware_Step_Preconditions) && (env->udsFirmwareStepsMain != UDS_Firmware_Step_EraseMemory)) &&
|
||||
((env->udsFirmwareStepsCalib != UDS_Firmware_Step_Preconditions) && (env->udsFirmwareStepsCalib != UDS_Firmware_Step_EraseMemory))) {
|
||||
return 0xFF00 | UDS_error_requestSequenceError;
|
||||
}
|
||||
// if (((env->udsFirmwareStepsMain != UDS_Firmware_Step_Preconditions) && (env->udsFirmwareStepsMain != UDS_Firmware_Step_EraseMemory)) &&
|
||||
// ((env->udsFirmwareStepsCalib != UDS_Firmware_Step_Preconditions) && (env->udsFirmwareStepsCalib != UDS_Firmware_Step_EraseMemory))) {
|
||||
// return 0xFF00 | UDS_error_requestSequenceError;
|
||||
// }
|
||||
|
||||
tEraseMemory *eraseMemory = (tEraseMemory *) env->data->data;
|
||||
|
||||
|
|
@ -1064,7 +1063,7 @@ static uint16_t vUDS_routine_Erase_Memory(tCanUds *env, eUdsRoutineControlType u
|
|||
if ((result1) && (result2)) {
|
||||
env->dataResponse[4] = UDS_routine_RoutineStartStopSuccess;
|
||||
|
||||
env->udsFirmwareStepsMain = UDS_Firmware_Step_EraseMemory;
|
||||
// env->udsFirmwareStepsMain = UDS_Firmware_Step_EraseMemory;
|
||||
|
||||
return 4 + 1;
|
||||
}
|
||||
|
|
@ -1079,7 +1078,7 @@ static uint16_t vUDS_routine_Erase_Memory(tCanUds *env, eUdsRoutineControlType u
|
|||
if (result1) {
|
||||
env->dataResponse[4] = UDS_routine_RoutineStartStopSuccess;
|
||||
|
||||
env->udsFirmwareStepsCalib = UDS_Firmware_Step_EraseMemory;
|
||||
// env->udsFirmwareStepsCalib = UDS_Firmware_Step_EraseMemory;
|
||||
|
||||
return 4 + 1;
|
||||
}
|
||||
|
|
@ -1098,10 +1097,10 @@ vUDS_routine_Check_Programming_Dependancies(tCanUds *env, eUdsRoutineControlType
|
|||
return 0xFF00 | UDS_error_sub_functionNotSupported;
|
||||
}
|
||||
|
||||
if (((env->udsFirmwareStepsMain != UDS_Firmware_Step_EraseMemory) && (env->udsFirmwareStepsMain != UDS_Firmware_Step_Dependancies)) &&
|
||||
((env->udsFirmwareStepsCalib != UDS_Firmware_Step_EraseMemory) && (env->udsFirmwareStepsCalib != UDS_Firmware_Step_Dependancies))) {
|
||||
return 0xFF00 | UDS_error_requestSequenceError;
|
||||
}
|
||||
// if (((env->udsFirmwareStepsMain != UDS_Firmware_Step_EraseMemory) && (env->udsFirmwareStepsMain != UDS_Firmware_Step_Dependancies)) &&
|
||||
// ((env->udsFirmwareStepsCalib != UDS_Firmware_Step_EraseMemory) && (env->udsFirmwareStepsCalib != UDS_Firmware_Step_Dependancies))) {
|
||||
// return 0xFF00 | UDS_error_requestSequenceError;
|
||||
// }
|
||||
|
||||
|
||||
setResponseErrorPending(env, UDS_RoutineControl, UDS_error_requestCorrectlyReceived_ResponsePending);
|
||||
|
|
@ -1189,8 +1188,8 @@ vUDS_routine_Check_Programming_Dependancies(tCanUds *env, eUdsRoutineControlType
|
|||
}
|
||||
|
||||
|
||||
env->udsFirmwareStepsMain = UDS_Firmware_Step_Dependancies;
|
||||
env->udsFirmwareStepsCalib = UDS_Firmware_Step_Dependancies;
|
||||
// env->udsFirmwareStepsMain = UDS_Firmware_Step_Dependancies;
|
||||
// env->udsFirmwareStepsCalib = UDS_Firmware_Step_Dependancies;
|
||||
|
||||
env->dataResponse[4] = UDS_routine_RoutineStartStopSuccess;
|
||||
|
||||
|
|
@ -1245,9 +1244,9 @@ static uint16_t Routine_Control_31(tCanUds *env) {
|
|||
return setResponseError(env, UDS_RoutineControl, UDS_error_conditionsNotCorrect);
|
||||
}
|
||||
|
||||
if (!env->SA.stateSecurityAccess) {
|
||||
return setResponseError(env, UDS_RoutineControl, UDS_error_securityAccessDenied);
|
||||
}
|
||||
// if (!env->SA.stateSecurityAccess) {
|
||||
// return setResponseError(env, UDS_RoutineControl, UDS_error_securityAccessDenied);
|
||||
// }
|
||||
|
||||
uint16_t result = vUDS_check_Programming_Preconditions(env, udsRoutineControlType);
|
||||
|
||||
|
|
@ -1547,7 +1546,7 @@ static uint16_t RequestDownload_34(tCanUds *env) {
|
|||
requestDownload_Response->ServiceId = UDS_RequestDownload | 0b1000000;
|
||||
requestDownload_Response->lengthFormatIdentifier = 0x20; // 2 байта - длина поля maxNumberOfBlockLength
|
||||
|
||||
uint8_t countBlock = 8;//31;
|
||||
uint8_t countBlock = 31;//31;
|
||||
requestDownload_Response->maxNumberOfBlockLength = countBlock * 128 + 2;
|
||||
|
||||
|
||||
|
|
@ -1970,6 +1969,7 @@ void ReceivedTP_func(void *arg, tCanTP_data *data) {
|
|||
|
||||
if (env->isEcuReset) {
|
||||
|
||||
SystemDelayMs(10);
|
||||
Reset();
|
||||
//NVIC_SystemReset();
|
||||
}
|
||||
|
|
|
|||
4
CanUds.h
4
CanUds.h
|
|
@ -222,8 +222,8 @@ typedef struct {
|
|||
uint32_t DownloadFirmwareSize;
|
||||
eUdsBlock udsBlock;
|
||||
|
||||
eUdsFirmwareSteps udsFirmwareStepsMain;
|
||||
eUdsFirmwareSteps udsFirmwareStepsCalib;
|
||||
// eUdsFirmwareSteps udsFirmwareStepsMain;
|
||||
// eUdsFirmwareSteps udsFirmwareStepsCalib;
|
||||
|
||||
uint32_t CurrentBlockAdr;
|
||||
uint32_t CurrentBlockSize;
|
||||
|
|
|
|||
Loading…
Reference in New Issue