I have just started writing assembly code. I am using the simulator in Keil uvision5 to the run the code below. I dont understand why I can't see the src data value of 14 in register r1 when I ldr the data value from the address stored in the r0 register. I have tried to research the solution myself but cant find an exact reason why this happens. Any help would be gratefully appreciated.
THUMB AREA RESET, CODE, READONLY EXPORT __Vectors EXPORT Reset_Handler __Vectors DCD 0x20001000 DCD Reset_Handler AREA Code, CODE, READONLY ENTRY Reset_Handler LDR r0, =src LDR r1, [r0] terminate ; sit in an endless loop B terminate ; data area that can be modified (readwrite) AREA Data, DATA, READWRITE src DCD 14 END
Thank you for your prompt and detailed answer. I have researched the topics that you have said for me to look at in your answer but I am not quite understanding this. I understand what you are telling me to do and why I can't initialise my constants I just don't know how to go about doing it. My research has not helped me understand how to do this I feel more confused! From what you are saying I don't have uvision configured correctly in particular the linker. When I go into project options and the linker tab under scatter file there is no file. Also how would you copy constants to RAM in code I dont understand what code you would write to do this. Does my whole problem stem from the incorrectly configured linker or do I also need to add code in once I get the linker correctly configured.