I am just starting with a new board, a landboard with a nxp LPC1768.
I do not understand why i go in debug mode the starting point of my PC is 0x1fff0080
I use the startup given in keil 4 lite. This address is not random. In fact when I'm also trying with different example,
written in c, the starting point is the main of the c file, but if i hit the reset button, again the starting point is that address.
this is the disassembly but i cannot find nothing on the startup that redirect to that address.
0x1FFF007A 0000 MOVS r0,r0
0x1FFF007C 0000 MOVS r0,r0
0x1FFF007E 0000 MOVS r0,r0
0x1FFF0080 F8DF4018 LDR.W r4,[pc,#24] ; @0x1FFF009C
0x1FFF0084 F8DF5010 LDR.W r5,[pc,#16] ; @0x1FFF0098
0x1FFF0088 6826 LDR r6,[r4,#0x00]
0x1FFF008A EA050606 AND r6,r5,r6
0x1FFF008E 6026 STR r6,[r4,#0x00]
0x1FFF0090 F8DFF000 LDR.W pc,[pc,#0] ; @0x1FFF0094
0x1FFF0094 0201 LSLS r1,r0,#8
0x1FFF0096 1FFF SUBS r7,r7,#7
0x1FFF0098 BFFF ITTTT
0x1FFF009A FFFFC3C0 DCD 0xC3C0FFFF
0x1FFF009E 400F ANDS r7,r7,r1
0x1FFF00A0 0000 MOVS r0,r0
0x1FFF00A2 0000 MOVS r0,r0
When i debug in simulation mode instead, the starting point is the reset Handles...
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
AREA |.ARM.__at_0x02FC|, CODE, READONLY
CRP_Key DCD 0xFFFFFFFF
AREA |.text|, CODE, READONLY
; Reset Handler
Can you please help me to understand what i'm wrong?
Sorry you did not see a response on this. The Reset_Handler is indeed where execution begins, and can be thought of as the low-level entry point. This will ultimately call __main, the C library init code, which eventually calls main(), the standard start of the code from a C perspective.The debugger allows you to skip through this code (you may not wish to consider what is happening therein), with the 'run to main()' check box in the debugger configuration.