Hi, I try to execute the following code:
LDR R1,=0X40000000 LDR R2,=0X11223344 STR R2,[R1] ADD R1,R1,#3 LDR R2,=0X55667788 STR R2,[R1] ADD R1,R1,#3 LDR R2,=0X99AABBCC STR R2,[R1] ADD R1,R1,#3 LDR R2,=0XDDEEFF11 STR R2,[R1]S B S After execution data in memory is as follows:
0x40000000: 88 77 66 55 CC BB AA 99 11 FF EE DD
Why and how?
Thanks in advance.
Most "classic" core truncate the addresses if you do a unaligned access. So 0x4000.0003 becomes 0x4000.0000 on the address bus.0x4000.0006 becomes 0x4000.0004 and last 0x4000.0009 becomes 0x4000.0008.