Why is GNU 3.3.2 generating this code? Am I reading this wrong, or am I
using the wrong compiler??
Thanks for any insight!
void Test(unsigned long Base)
{
register volatile U8 * TestP = (volatile U8 *)(Base + 0x5555);
60000134: E3A01101 MOV R1,#0x40000000
6000013C: E2802055 ADD R2,R0,#0x55
6000015C: E2801C55 ADD R1,R0,#0x5500
60000160: E2810055 ADD R0,R1,#0x55
while (1)
60000140: E3A01004 MOV R1,#0x4
60000164: E3A02004 MOV R2,#0x4
{
*TestP = 4;
60000144: E5C21000 STRB R1,[R2,#0x0]
60000168: E5C02000 STRB R2,[R0,#0x0] <<-- What is THIS??
*TestP = (*TestP) + 1;
60000148: E5D2C000 LDRB R12,[R2,#0x0]
6000016C: E5D0C000 LDRB R12,[R0,#0x0]
60000170: E28C1001 ADD R1,R12,#0x1
60000174: E5C01000 STRB R1,[R0,#0x0]
60000178: EAFFFFFA B 0x60000168
6000017C: 00 **** Invalid Instruction ****
}Message
What Tha..?
2004-01-23 by James Dabbs
Attachments
- No local attachments were found for this message.