diff options
author | 2021-01-06 17:38:26 +0100 | |
---|---|---|
committer | 2021-01-06 17:38:26 +0100 | |
commit | bf037b3f4b9993aa6d00d39543b410d1d9d18cdd (patch) | |
tree | 56e2247f88f10c9a4ed9dfc271975f8fe91496fd /cortex-m-rt | |
parent | 35dc34beed25f633b322e273140f6a9e4123acd3 (diff) | |
download | cortex-m-bf037b3f4b9993aa6d00d39543b410d1d9d18cdd.tar.gz cortex-m-bf037b3f4b9993aa6d00d39543b410d1d9d18cdd.tar.zst cortex-m-bf037b3f4b9993aa6d00d39543b410d1d9d18cdd.zip |
Restore LR after __pre_init call
Diffstat (limited to 'cortex-m-rt')
-rw-r--r-- | cortex-m-rt/asm.s | 8 | ||||
-rw-r--r-- | cortex-m-rt/bin/thumbv6m-none-eabi.a | bin | 1946 -> 1950 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7em-none-eabi.a | bin | 1922 -> 1926 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7em-none-eabihf.a | bin | 1922 -> 1926 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7m-none-eabi.a | bin | 1922 -> 1926 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv8m.base-none-eabi.a | bin | 1966 -> 1970 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv8m.main-none-eabi.a | bin | 1926 -> 1930 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv8m.main-none-eabihf.a | bin | 1926 -> 1930 bytes |
8 files changed, 6 insertions, 2 deletions
diff --git a/cortex-m-rt/asm.s b/cortex-m-rt/asm.s index 7a36197..1cb310a 100644 --- a/cortex-m-rt/asm.s +++ b/cortex-m-rt/asm.s @@ -60,12 +60,16 @@ FpuTrampoline: .cfi_startproc PreResetTrampoline: # set LR to the initial value used by the ARMv7-M (0xFFFF_FFFF) - ldr r0,=0xffffffff - mov lr,r0 + ldr r4,=0xffffffff + mov lr,r4 # run the pre-init code bl __pre_init + # the call above clobbers LR, but tools may expect LR to be 0xFFFFFFFF when reaching the first + # call frame, so we restore it to its previous value (r4 is preserved by subroutines) + mov lr,r4 + # initialize .data and .bss memory ldr r0,=__sbss ldr r1,=__ebss diff --git a/cortex-m-rt/bin/thumbv6m-none-eabi.a b/cortex-m-rt/bin/thumbv6m-none-eabi.a Binary files differindex 674b34a..207dad2 100644 --- a/cortex-m-rt/bin/thumbv6m-none-eabi.a +++ b/cortex-m-rt/bin/thumbv6m-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv7em-none-eabi.a b/cortex-m-rt/bin/thumbv7em-none-eabi.a Binary files differindex a0302b1..18509c1 100644 --- a/cortex-m-rt/bin/thumbv7em-none-eabi.a +++ b/cortex-m-rt/bin/thumbv7em-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv7em-none-eabihf.a b/cortex-m-rt/bin/thumbv7em-none-eabihf.a Binary files differindex a0302b1..18509c1 100644 --- a/cortex-m-rt/bin/thumbv7em-none-eabihf.a +++ b/cortex-m-rt/bin/thumbv7em-none-eabihf.a diff --git a/cortex-m-rt/bin/thumbv7m-none-eabi.a b/cortex-m-rt/bin/thumbv7m-none-eabi.a Binary files differindex 0298e64..59fdb28 100644 --- a/cortex-m-rt/bin/thumbv7m-none-eabi.a +++ b/cortex-m-rt/bin/thumbv7m-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv8m.base-none-eabi.a b/cortex-m-rt/bin/thumbv8m.base-none-eabi.a Binary files differindex 8a3cfcf..4c28721 100644 --- a/cortex-m-rt/bin/thumbv8m.base-none-eabi.a +++ b/cortex-m-rt/bin/thumbv8m.base-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv8m.main-none-eabi.a b/cortex-m-rt/bin/thumbv8m.main-none-eabi.a Binary files differindex 02bcf02..5a23da5 100644 --- a/cortex-m-rt/bin/thumbv8m.main-none-eabi.a +++ b/cortex-m-rt/bin/thumbv8m.main-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv8m.main-none-eabihf.a b/cortex-m-rt/bin/thumbv8m.main-none-eabihf.a Binary files differindex 02bcf02..5a23da5 100644 --- a/cortex-m-rt/bin/thumbv8m.main-none-eabihf.a +++ b/cortex-m-rt/bin/thumbv8m.main-none-eabihf.a |