1.I want to know the meaning of each column in Disassembly window.figure1
2.Does the address at the beginning of each line in disassembly windows mean the same as the memory address? Is there a difference?figure2
3.In the disassembly program, the address 0x08006E8 represents a half word memory with a value of 0x1000. However, in memory address 0x08006E8, the address of the RCC related register is stored, with a value of 0x40021000. Is the value stored in R0 displayed as 0x40021000 in the Register window, and "LDR r0, [pc, # offset]" a value for finding an offset address or an instruction to store in r0? I don't understand why it's not 0x1000.figure3
4.Why does my program breakpoint display green instead of gray when executed, but in the help document, the code indicating the execution part should display green?figure4
Hello,
1) Columns are Address, Opcode, and Mnemonic. The opcode is what the memory is set to.
2) Yes, this is the same address
3) You are viewing the disassembly in bytes. Change view words and you will see the values align. Arm is generally little endian, meaning the least significant byte is in the lowest address. Hence looking at 0x1000 in memory shows 0x00 in the lower address.
4) I believe you are looking at the code coverage documentation, not the general debugging documentation.
Regards, Ronan
Thank you for responding.
1.I got it.
2.I got it.
3.In the third question,what I understand is that the opcode for "LDR r0, [pc, # 176]" is 0x482C, which assigns the 32-bit immediate (0x40021000) stored at address 0x080006E8 to r0. "LDR r0, [pc, # 176]"+"DCW 0x1000"+"DCW 0x4002" = "LDR r0,=0x40021000", is right?figure5
4.I got it.
3) The address of the data loaded is calculated as the Program Counter + 0x176.
No,176 is a decimal number.The address of the data loaded is calculated as pc+4+176=0x08000634+178=0x08000634+0xB4=0x080006E8.