#include "debug.h"\r
#include "Cpu.h"\r
\r
+static void Com_ReadDataSegment(uint8 *dest, const uint8 *source, uint8 destByteLength,\r
+ Com_BitPositionType segmentStartBitOffset, uint8 segmentBitLength, boolean signedOutput);\r
+\r
+static void Com_WriteDataSegment(uint8 *pdu, uint8 *pduSignalMask, const uint8 *signalDataPtr, uint8 destByteLength,\r
+ Com_BitPositionType segmentStartBitOffset, uint8 segmentBitLength);\r
\r
void Com_ReadSignalDataFromPdu(\r
const Com_SignalIdType signalId,\r
uint8 signalDataBytesArray[8];\r
const uint8 *pduBufferBytes = (const uint8 *)pduBuffer + (bitPosition/8);\r
Com_BitPositionType startBitOffset = 0;\r
+ imask_t state;\r
+ Irq_Save(state);\r
\r
if (signalEndianess == COM_OPAQUE || signalType == UINT8_N) {\r
// Aligned opaque data -> straight copy\r
assert(0);\r
}\r
}\r
+ Irq_Restore(state);\r
}\r
\r
\r
\r
uint8 signalDataBytesArray[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};\r
const uint8 *signalDataBytes = (const uint8 *)signalData;\r
+ imask_t irq_state;\r
+\r
+ Irq_Save(irq_state);\r
if (endian == COM_OPAQUE || signalType == UINT8_N) {\r
//assert(bitPosition % 8 == 0);\r
//assert(bitSize % 8 == 0);\r
// Straight copy into real pdu buffer (with mutex)\r
uint8 *pduBufferBytes = ((uint8 *)pduBuffer)+(bitPosition/8);\r
uint8 i;\r
- imask_t irq_state;\r
- Irq_Save(irq_state);\r
for (i = 0; i < 8; i++) {\r
pduBufferBytes[ i ] &= ~( pduSignalMask[ i ] );\r
pduBufferBytes[ i ] |= pduBufferBytesStraight[ i ];\r
}\r
- Irq_Restore(irq_state);\r
\r
} else {\r
uint8 startBitOffset = intelBitNrToPduOffset(bitPosition%8, bitSize, 64);\r
// Swapped copy into real pdu buffer (with mutex)\r
uint8 *pduBufferBytes = ((uint8 *)pduBuffer)+(bitPosition/8);\r
uint8 i;\r
- imask_t irq_state;\r
- Irq_Save(irq_state);\r
// actually it is only necessary to iterate through the bytes that are written.\r
for (i = 0; i < 8; i++) {\r
pduBufferBytes[ i ] &= ~( pduSignalMask[ (8 - 1) - i ] );\r
pduBufferBytes[ i ] |= pduBufferBytesSwapped[ (8 - 1) - i ];\r
}\r
- Irq_Restore(irq_state);\r
}\r
}\r
+ Irq_Restore(irq_state);\r
}\r
\r
\r
* | -------- | -------A | BCDEFGHI | JKLMNOPQ |\r
*\r
*/\r
-void Com_ReadDataSegment(uint8 *dest, const uint8 *source, uint8 destByteLength,\r
+static void Com_ReadDataSegment(uint8 *dest, const uint8 *source, uint8 destByteLength,\r
Com_BitPositionType segmentStartBitOffset, uint8 segmentBitLength, boolean signedOutput) {\r
\r
Com_BitPositionType sourceEndBitOffset = segmentStartBitOffset + segmentBitLength - 1;\r