summaryrefslogtreecommitdiff
path: root/lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c
diff options
context:
space:
mode:
authorViktor Mladenovski <viktor.mladenovski@seavus.com>2011-06-21 17:51:15 +0200
committerViktor Mladenovski <viktor.mladenovski@seavus.com>2011-06-21 17:51:15 +0200
commit12da7d3751c8b7bd088587c8323123019680efff (patch)
tree6e1e3f6a65e260ba8ffe2e1336a0cc4f0be145ba /lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c
parentf7e95217e936da34d7124aaced590692eb515923 (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.c12
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 {