Page 1 of 1

Programming in Block Mode

Posted: Tue 28. Dec 2021, 04:00
by kakki
Hello

We have tried 'Programming Sequence' with Block Mode, but there are some issues.

We would like to conduct a integrity check with the bootloader.
So,We are considering the following sequence.

1)GET_SEED:0xF8
2)UNLOCK:0xF7
3)PROGRAM_START:0xD2
4)SET_MTA:F6
5)PROGRAM_CLEAR:0xD1
6)SET_MTA:F6
7)PROGRAM:0xD0
8)PROGRAM_NEXT:0xCA
9)SET_MTA:F6
10)BUILD_CHECKSUM:0xF3
11)PROGRAM_RESET:0xCF

We found that sometimes 'BUILD_CHECKSUM' could not be confirmed.
(via Vector CAN Tool)
But 'SET_MTA'(just before:BUILD_CHECKSUM) could always monitor.

Since a Command right after 'ROGRAM_NEXT' can send successfully, the following sequence work correctly.

1)GET_SEED:0xF8
2)UNLOCK:0xF7
3)PROGRAM_START:0xD2
4)SET_MTA:F6
5)PROGRAM_CLEAR:0xD1
6)SET_MTA:F6
7)PROGRAM:0xD0
8)PROGRAM_NEXT:0xCA
9)PROGRAM_RESET:0xCF

When We could not send 'BUILD_CHECKSUM', following 'PROGRAM_RESET' also could not send.
Therefore ECU stuck in the bootloader.

We need your advice.

Re: Programming in Block Mode

Posted: Mon 3. Jan 2022, 11:27
by K.Wagner
Hello,
kakki wrote:
Tue 28. Dec 2021, 04:00
We found that sometimes 'BUILD_CHECKSUM' could not be confirmed.
(via Vector CAN Tool)
You should get a positive or negative response after issuing a XCP command. Which error code are you receiving when calling the function XCP_BuildChecksum? Note that if you get the error XCP_ERR_INTERNAL_TIMEOUT means, that no answer was received from your ECU at all, or the answer was outside of the allowed timeout (t2 in case of BUILD_CHECKSUM).