We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.