Skip to content
Snippets Groups Projects
Commit e0852408 authored by Dean Camera's avatar Dean Camera
Browse files

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
Branches
Tags
No related merge requests found
File changed. Contains only whitespace changes. Show whitespace changes.
...@@ -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];
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment