I've been pulling my hair out about an auto increment problem. I finally realized the following statement wasn't acting as I expected it to:
Unsigned char ReadByte( unsigned int *address ) { unsigned char data; // Setup read from memory chip (SPI) E2DISABLE; // End Read operation // Auto increment address the proper number of bytes *address++; return data; } I expected the contents of memory that address pointed to be incremented one. But when I check the .lst file, I get this: ... E2DISABLE; // End Read operation 1b88: d2 d3 19 00 bis.b #1, &0x0019 *address++; return data; 1b8c: 4f 4e mov.b r14, r15 ; ... Nothing came out at all!!! And no warnings. When I changed the line to read: // Auto increment address the proper number of bytes *address += 1; I got the desired result: *address += 1; 1b8e: 9e 53 00 00 inc 0(r14) ; Is this a bug? -Mark Stokes