Commit e0852408 authored by Dean Camera's avatar Dean Camera

Replace cast-as-char* byte access of multibyte variables with proper shifts...

Replace cast-as-char* byte access of multibyte variables with proper shifts and masks to preserve endianness across different architectures.
parent 4b1f6cac
...@@ -279,8 +279,8 @@ void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const ...@@ -279,8 +279,8 @@ void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const
RNDIS_Query_Complete_t* QUERY_Response = (RNDIS_Query_Complete_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer; RNDIS_Query_Complete_t* QUERY_Response = (RNDIS_Query_Complete_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;
uint32_t Query_Oid = QUERY_Message->Oid; uint32_t Query_Oid = QUERY_Message->Oid;
void* QueryData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) + void* QueryData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +
QUERY_Message->InformationBufferOffset]; QUERY_Message->InformationBufferOffset];
void* ResponseData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Query_Complete_t)]; void* ResponseData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Query_Complete_t)];
uint16_t ResponseSize; uint16_t ResponseSize;
......
...@@ -43,9 +43,9 @@ static void TINYNVM_SendPointerAddress(const uint16_t AbsoluteAddress) ...@@ -43,9 +43,9 @@ static void TINYNVM_SendPointerAddress(const uint16_t AbsoluteAddress)
{ {
/* Send the given 16-bit address to the target, LSB first */ /* Send the given 16-bit address to the target, LSB first */
XPROGTarget_SendByte(TPI_CMD_SSTPR | 0); XPROGTarget_SendByte(TPI_CMD_SSTPR | 0);
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[0]); XPROGTarget_SendByte(AbsoluteAddress & 0xFF);
XPROGTarget_SendByte(TPI_CMD_SSTPR | 1); XPROGTarget_SendByte(TPI_CMD_SSTPR | 1);
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[1]); XPROGTarget_SendByte(AbsoluteAddress >> 8);
} }
/** Sends a SIN command to the target with the specified I/O address, ready for the data byte to be written. /** Sends a SIN command to the target with the specified I/O address, ready for the data byte to be written.
......
...@@ -45,10 +45,10 @@ ...@@ -45,10 +45,10 @@
static void XMEGANVM_SendAddress(const uint32_t AbsoluteAddress) static void XMEGANVM_SendAddress(const uint32_t AbsoluteAddress)
{ {
/* Send the given 32-bit address to the target, LSB first */ /* Send the given 32-bit address to the target, LSB first */
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[0]); XPROGTarget_SendByte(AbsoluteAddress & 0xFF);
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[1]); XPROGTarget_SendByte(AbsoluteAddress >> 8);
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[2]); XPROGTarget_SendByte(AbsoluteAddress >> 16);
XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[3]); XPROGTarget_SendByte(AbsoluteAddress >> 24);
} }
/** Sends the given NVM register address to the target. /** Sends the given NVM register address to the target.
......
...@@ -166,7 +166,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) ...@@ -166,7 +166,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
if (NoteData[i].Pitch) if (NoteData[i].Pitch)
{ {
/* Use the top 8 bits of the table position as the sample table index */ /* Use the top 8 bits of the table position as the sample table index */
uint8_t TableIndex = ((uint8_t*)&NoteData[i].TablePosition)[3]; uint8_t TableIndex = (NoteData[i].TablePosition >> 24);
/* Add the new tone sample to the accumulator and increment the table position */ /* Add the new tone sample to the accumulator and increment the table position */
MixedSample += SineTable[TableIndex]; MixedSample += SineTable[TableIndex];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment