diff options
author | Viktor Mladenovski <viktor.mladenovski@seavus.com> | 2011-06-21 17:51:15 +0200 |
---|---|---|
committer | Viktor Mladenovski <viktor.mladenovski@seavus.com> | 2011-06-21 17:51:15 +0200 |
commit | 12da7d3751c8b7bd088587c8323123019680efff (patch) | |
tree | 6e1e3f6a65e260ba8ffe2e1336a0cc4f0be145ba /lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c | |
parent | f7e95217e936da34d7124aaced590692eb515923 (diff) |
Flashing procedure stops at different stages
Adds fix for retransmission in LCM transport layer
ST-Ericsson ID: 325725
ST-Ericsson FOSS-OUT ID: STETL-FOSS-OUT-10204
Change-Id: Ie6b32dcf6bf7b3023237920204e3c55ac0624a79
Diffstat (limited to 'lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c')
-rw-r--r-- | lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c b/lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c index eab4a6a..8ac6f7b 100644 --- a/lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c +++ b/lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c @@ -100,6 +100,7 @@ uint32 Protrom_GetPacketLength(const Protrom_Header_t *Header_p) boolean Protrom_IsValidHeader(const void *Data_p) { uint8 *Temp_p = (uint8 *)Data_p; + uint16 ProtromVal = 0; if (PROTROM_HEADER_PATTERN != *Temp_p) { return FALSE; @@ -121,7 +122,8 @@ boolean Protrom_IsValidHeader(const void *Data_p) return FALSE; } - if (*(uint16 *)(Temp_p + 5) < 1) { + ProtromVal = (Temp_p[6] << 8) | Temp_p[5]; + if (ProtromVal < 1) { return FALSE; } @@ -148,8 +150,8 @@ boolean Protrom_IsReceivedHeader(Protrom_Inbound_t *In_p) if (PROTROM_HEADER_PATTERN_CANDIDATE == Res) { /* call for receiving the rest bytes in header */ In_p->ReqData = StartHeaderInBuffer + PROTROM_HEADER_LENGTH - In_p->RecData; - TmpPointer_p = (uint8 *)((uint32)In_p->Target_p + StartHeaderInBuffer); - memcpy(In_p->Target_p, (uint8 *)TmpPointer_p, In_p->RecData - StartHeaderInBuffer); + TmpPointer_p = In_p->Target_p + StartHeaderInBuffer; + memcpy(In_p->Target_p, TmpPointer_p, In_p->RecData - StartHeaderInBuffer); In_p->ReqBuffOffset = In_p->RecData - StartHeaderInBuffer; } else { if (PROTROM_HEADER_PATTERN_MATCH == Res) { @@ -158,8 +160,8 @@ boolean Protrom_IsReceivedHeader(Protrom_Inbound_t *In_p) return TRUE; } else { In_p->ReqData = StartHeaderInBuffer + PROTROM_HEADER_LENGTH - In_p->RecData; - TmpPointer_p = (uint8 *)((uint32)In_p->Target_p + StartHeaderInBuffer); - memcpy(In_p->Target_p, (uint8 *)TmpPointer_p, In_p->RecData - StartHeaderInBuffer); + TmpPointer_p = In_p->Target_p + StartHeaderInBuffer; + memcpy(In_p->Target_p, TmpPointer_p, In_p->RecData - StartHeaderInBuffer); In_p->ReqBuffOffset = In_p->RecData - StartHeaderInBuffer; } } else { |