zephyr/arch
Wentong Wu 7aecb03864 arch: arm: switching stack pointer with assembly code
With -O0 optimizion, gcc compiler doesn't inline "static inline"
marked function. So when function call return from function
set_and_switch_to_psp which is to switch sp from MSP to PSP, the
ending "mov sp, r7" instruction will overwrite the just updated
sp value(PSP) with the beginning stack pointer(should be MSP)
stored in r7 register, so the switch doesn't happen. And it causes
unpredictable problems in the initialization process, the backward
analysis for this problem can be found on Github issue #15794.

Fixes: #15794.

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
2019-05-16 09:29:55 -07:00
..
arc arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
arm arch: arm: switching stack pointer with assembly code 2019-05-16 09:29:55 -07:00
common license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
nios2 arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
posix arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
riscv32 arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
x86 arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
x86_64 arch/x86_64: Suppress spurious linker-generated code in the 32 bit stub 2019-05-06 19:48:32 -04:00
xtensa arch: remove unused tracing_arch.h 2019-05-13 14:04:15 -07:00
CMakeLists.txt license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig userspace: set default priv stack size to 1024 2019-03-29 22:21:16 -04:00