File tree Expand file tree Collapse file tree 1 file changed +1
-15
lines changed Expand file tree Collapse file tree 1 file changed +1
-15
lines changed Original file line number Diff line number Diff line change @@ -507,12 +507,6 @@ cfg_global_asm! {
507507 ".cfi_startproc
508508 Reset:" ,
509509
510- // Ensure LR is loaded with 0xFFFF_FFFF at startup to help debuggers find the first call frame.
511- // On ARMv6-M LR is not initialised at all, while other platforms should initialise it.
512- "movs r4, #0
513- mvns r4, r4
514- mov lr, r4" ,
515-
516510 // If enabled, initialise the SP. This is normally initialised by the CPU itself or by a
517511 // bootloader, but some debuggers fail to set it when resetting the target, leading to
518512 // stack corruptions.
@@ -533,9 +527,7 @@ cfg_global_asm! {
533527 // Run user pre-init code which must be executed immediately after startup, before the
534528 // potentially time-consuming memory initialisation takes place.
535529 // Example use cases include disabling default watchdogs or enabling RAM.
536- // Reload LR after returning from pre-init (r4 is preserved by subroutines).
537- "bl __pre_init
538- mov lr, r4" ,
530+ "bl __pre_init" ,
539531
540532 // Initialise .bss memory. `__sbss` and `__ebss` come from the linker script.
541533 "ldr r0, =__sbss
@@ -572,12 +564,6 @@ cfg_global_asm! {
572564 dsb
573565 isb" ,
574566
575- // Push `lr` to the stack for debuggers, to prevent them unwinding past Reset.
576- // See https://sourceware.org/binutils/docs/as/CFI-directives.html.
577- ".cfi_def_cfa sp, 0
578- push {{lr}}
579- .cfi_offset lr, 0" ,
580-
581567 // Jump to user main function.
582568 // `bl` is used for the extended range, but the user main function should not return,
583569 // so trap on any unexpected return.
You can’t perform that action at this time.
0 commit comments