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.
Hello,
I am now working with the LPC1114 which utilizes the ARM CORTEX M0 architecture. I have one question about the instruction set summary of the ARMv6M Thumb instruction set. I want to know what the processor does during each single clock cycle for each instruction. For example, if I have the following code where I want to write something to the GPIO0DATA register to change the level of the IO output (Actually toggle PIO0_3) loop LDR R0, =(0x50003FFC); GPIO0DATA Base + 0x3FFC, address 0x5000 3FFC LDR R1, [R0]; MOVS R2, #(1<<3); ; Store the value of R1 into GPIO0DATA EORS R1, R1, R2; STR R1, [R0]; B loop Question 1: Let's say the first clock cycle is when the chip fetches the LDR R0, =(0x50003FFC) instruction. Could you please explain what the chip does in the following clock cycles? Also if there is any reference that could explain it, that will be really helpful. Question 2: I find that the time between PIO0_3 is toggled every 15 cycles. However, based on the instruction set summary, it should be 11 cycles (LDR/STR takes two cycles and MOVS, EORS takes 1 cycle, B takes 3 cycles), could you please give an explanation? If there is a timing diagram to explain it, that would be great! Thank in advance
Regards
Sol
How did you measure the execution time?