From 874d891aaccc1ef586015f37119fdd48be2878f0 Mon Sep 17 00:00:00 2001 From: cfif Date: Wed, 24 Dec 2025 16:47:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/CanSerialPortFrameXCP.h | 6 +++--- Src/CanSerialPortFrameXCP.c | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Inc/CanSerialPortFrameXCP.h b/Inc/CanSerialPortFrameXCP.h index 84bdace..4f4d669 100644 --- a/Inc/CanSerialPortFrameXCP.h +++ b/Inc/CanSerialPortFrameXCP.h @@ -310,7 +310,7 @@ typedef struct __attribute__ ((packed)) { typedef struct __attribute__ ((packed)) { eXcpTypeCommand COM; uint8_t BIT_OFFSET; - uint16_t ODT_ENTRY_SIZE; + uint8_t ODT_ENTRY_SIZE; uint8_t ADR_EXT; uint32_t ADR; } eXcpCommand_WRITE_DAQ; @@ -354,14 +354,14 @@ typedef struct __attribute__ ((packed)) { typedef struct __attribute__ ((packed)) { eXcpTypeCommand COM; uint8_t RESERVED; - uint8_t DAQ_LIST_NUMBER; + uint16_t DAQ_LIST_NUMBER; uint8_t ODT_COUNT; } eXcpCommand_ALLOC_ODT; typedef struct __attribute__ ((packed)) { eXcpTypeCommand COM; uint8_t RESERVED; - uint8_t DAQ_LIST_NUMBER; + uint16_t DAQ_LIST_NUMBER; uint8_t ODT_NUMBER; uint8_t ODT_ENTRIES_COUNT; } eXcpCommand_ALLOC_ODT_ENTRY; diff --git a/Src/CanSerialPortFrameXCP.c b/Src/CanSerialPortFrameXCP.c index de51c83..915c96b 100644 --- a/Src/CanSerialPortFrameXCP.c +++ b/Src/CanSerialPortFrameXCP.c @@ -125,7 +125,7 @@ static uint8_t XCP_COMMAND_CONNECT_FF(tCanSerialPortFrameXCP *env) { xcpCommand_CONNECT->reserve5 = 0; xcpCommand_CONNECT->reserve6 = 0; xcpCommand_CONNECT->reserve7 = 0; - xcpCommand_CONNECT->SLAVE_BLOCK_MODE = 0; // Блочный режим не поддерживается + xcpCommand_CONNECT->SLAVE_BLOCK_MODE = 1; // Блочный режим не поддерживается xcpCommand_CONNECT->OPTIONAL = 1; // Поддержка команды XCP_COMMAND_GET_STATUS xcpCommand_CONNECT->MAX_CTO_ = MAX_CTO; @@ -232,6 +232,7 @@ static uint8_t XCP_UNLOCK_F7(tCanSerialPortFrameXCP *env) { static uint8_t XCP_COMMAND_SET_MTA_F6(tCanSerialPortFrameXCP *env) { eXcpCommand_SET_MTA *request = (eXcpCommand_SET_MTA *) env->canFrame.data; +/* if (((request->ADR < env->startRamAdr) || (request->ADR > env->endRamAdr)) && ((request->ADR < env->startFlashAdr) || (request->ADR > env->endFlashAdr))) { @@ -243,7 +244,7 @@ static uint8_t XCP_COMMAND_SET_MTA_F6(tCanSerialPortFrameXCP *env) { return 2; } - +*/ env->ADR_EXT = request->ADR_EX; env->ADR_MTA = request->ADR; @@ -1345,7 +1346,7 @@ _Noreturn void CanXcpProcessing_Service_Dto_Daq_Task(tCanSerialPortFrameXCP *env if (count_size_tail) { memcpy(&env->response[2], &env->DATA[size], count_size_tail); env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, - count_size_tail, + count_size_tail + 2, PROTOCOL_CAN_ADR_XCP, PROTOCOL_CAN_TYPE_XCP, 1000); }