5a03f08f91
cpu: cortexm_common: compile thread_arch.c without LTO
2016-08-29 13:30:17 +02:00
0bd2805b0c
cpu: cortexm_common: explicitly define isr_pendsv and isr_svc
2016-08-29 13:30:17 +02:00
Antoine Faure
31e675b359
cpu: cortex_common: Add entry point to tell gdb where to start
2016-07-23 13:27:47 +02:00
Joakim Nohlgård
5cd91bc784
cortexm: Hard fault: Try to output as much as possible even with corrupt stack
2016-07-20 13:25:23 +02:00
Joakim Nohlgård
b02e0eca47
ps: Add current stack pointer and start of stack to isr_stack ps output (DEVELHELP)
2016-07-12 10:17:49 +02:00
Joakim Nohlgård
cb19a4c709
cortexm_common: Fix isr_stack_usage
...
Refactor and add multiply by word size to get the usage in number of
bytes instead of in number of words.
Verified implementation by manual memory inspection in GDB.
2016-06-20 14:33:17 +02:00
Joakim Nohlgård
4c91121372
Merge pull request #5455 from locicontrols/move-stack
...
cortexm_common: move the stack to the bottom of RAM
2016-06-20 14:28:10 +02:00
zhuoshuguo
1cbe79a373
CPU: fix include header guards
...
Fix cpu/lpc2387/include/lpc2387.h
2016-06-08 16:38:20 +02:00
Martine Lenders
9b1ad7820c
Merge pull request #5491 from MohmadAyman/isr_stack_usage
...
cpu: add capability to show stack usage of ISR
2016-06-02 12:31:06 +02:00
MohmadAyman
53df3e8b57
core: cpu: provide function to acquire ISR stack usage
2016-06-01 23:01:35 +02:00
Joakim Nohlgård
9ad9f400e6
cpu/cortexm_common: Remove register keyword from variables
...
register is deprecated when building C++11 code and removed in C++17,
using it will cause build failures with C++ and -Werror. The register
hint keyword is likely ignored in GCC anyway.
2016-06-01 16:12:38 +02:00
Ian Martin
87e06756a5
cortexm_common: move the stack to the bottom of RAM
2016-05-19 15:55:36 -04:00
Toon Stegen
63c0e9bec6
cortexm_common: print trapped interrupt from ipsr
...
The IPSR (=Interrupt Program Status Register) contains the exception
type number of the current Interrupt Service Routine. Printing this
out can be useful to detect if a certain interrupt is not implemented.
2016-04-20 11:41:13 +02:00
DipSwitch
b6140f15f3
cpu/cortex-m: Enable STKALIGN to make the Cortex-M keep the stack 8 byte aligned on 4 byte aligned stack pointers
2016-04-07 00:27:26 +02:00
c3f7186d4e
unify usage of inline assembly
2016-03-31 22:23:35 +02:00
DipSwitch
64b3957323
cpu/cortexm_common: Fix cpu_sleep_until_event()
2016-03-16 00:23:50 +01:00
Joakim Nohlgård
d8b01a714c
cpu/cortexm_common: Doxygen fix for cmsis_gcc.h
2016-03-14 22:16:52 +01:00
Joakim Nohlgård
61c9ba2c64
cpu/cortexm_common: Whitespace fix CMSIS header
2016-03-14 22:08:33 +01:00
Joakim Gebart
bea6cb9f15
cortexm: CMSIS: Add extern "C" to CMSIS headers
2016-03-14 22:05:57 +01:00
Joakim Nohlgård
26f43786b8
cpu/cortexm_common: Update CMSIS v4.5
...
Original headers unmodified from CMSIS-SP-00300-r4p5-00rel0.zip
2016-03-14 18:16:36 +01:00
6881f65f46
cpu: cortexm*: move cpu_conf.h stuff from cpu.h into cpu_conf_common.h
2016-03-05 18:20:17 +01:00
Martine Lenders
01248f0599
Merge pull request #4944 from gebart/pr/cortexm-irqn-unsigned-int
...
cpu/cortexm_common: use int for counter in startup IRQn loop
2016-03-04 05:40:51 +01:00
Oleg Hahm
cdd6878fca
Merge pull request #4942 from gebart/pr/clang-asm
...
cpu/cortexm_common: Fix inline asm for ARMv6-M so that it compiles in Clang as well
2016-03-03 12:53:24 +01:00
Joakim Nohlgård
3da2c2d1c1
cpu/cortexm_common: use int for counter in startup IRQn loop
2016-03-02 10:58:59 +01:00
Joakim Nohlgård
0ae11cc9bc
cpu/cortexm_common: call hard_fault_handler using bl
...
Fixes this error when building with Clang 3.7.1:
fatal error: error in backend: unsupported relocation on symbol
x86_64-pc-linux-gnu-clang-3.7: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 3.7.1 (tags/RELEASE_371/final)
Target: arm-none--eabi
Thread model: posix
x86_64-pc-linux-gnu-clang-3.7: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
x86_64-pc-linux-gnu-clang-3.7: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
x86_64-pc-linux-gnu-clang-3.7: note: diagnostic msg: /tmp/vectors_cortexm-54333e.c
x86_64-pc-linux-gnu-clang-3.7: note: diagnostic msg: /tmp/vectors_cortexm-54333e.sh
x86_64-pc-linux-gnu-clang-3.7: note: diagnostic msg:
********************
2016-03-02 10:28:10 +01:00
Joakim Nohlgård
efa5cd4066
cpu/cortexm_common: Fix inline asm for ARMv6-M so that it compiles in Clang as well
...
ARMv6 does not have the mov instruction, only movs
2016-03-02 10:26:55 +01:00
Hauke Petersen
eb79646ab1
cpu/cortexm_common: added sleep_until_event
2016-03-01 23:22:03 +01:00
9082273746
core: header cleanup
2016-02-28 22:46:28 +01:00
938ff5c5e7
core: cpu: sys: simplify reboot()
2016-01-27 13:30:01 +01:00
Oleg Hahm
f24e810de5
cpu cortexm_common: fix pedantic compiler warnings
2015-12-07 20:28:52 +01:00
Hauke Petersen
c389f5be02
cpu/cortexm_common: fixes to vectors_cortexm.c
...
- (optimization) only fill ISR stack with canary values if
DEVELHELP macro is set (as we don't use these values otherwise)
- (cosmetic) moved define before variable definitions
2015-11-23 12:13:17 +01:00
Hauke Petersen
cf11b073d6
cpu/cortexm_common: define ISR stacksize in cpu.h
2015-11-19 11:55:35 +01:00
Hauke Petersen
3ab389b1fd
Merge pull request #4134 from gebart/pr/cortexm-hardfault-naked-fix
...
cpu/cortexm_common: only set naked attribute on DEVELHELP hardfault handler
2015-11-02 18:04:57 +01:00
Joakim Nohlgård
3033738e30
Merge pull request #4126 from gebart/pr/cortexm-r7-O0-fix
...
cortexm-common: Workaround for error: r7 cannot be used in asm here
2015-10-28 07:01:32 +01:00
Joakim Nohlgård
c3340b7ccf
cpu/cortexm_common: Use PRIx32 for printing uint32_t in hard fault handler
...
fixes errors like:
error: format specifies type 'unsigned long' but the argument has
type 'uint32_t' (aka 'unsigned int') [-Werror,-Wformat]
2015-10-28 06:59:28 +01:00
Joakim Nohlgård
a5449bcbd4
cpu/cortexm_common: only set naked attribute on DEVELHELP hardfault handler
...
Fixes error on LLVM/Clang:
cpu/cortexm_common/vectors_cortexm.c:287:5: error: non-ASM statement in naked function is not supported
core_panic(PANIC_HARD_FAULT, "HARD FAULT HANDLER");
^
cpu/cortexm_common/include/vectors_cortexm.h:65:46: note: attribute is here
void hard_fault_default(void) __attribute__((naked));
^
1 error generated.
2015-10-28 06:51:51 +01:00
daniel-k
c5e220c140
cortexm_common: check for possible stack overflow in hardfault handler
2015-10-27 15:58:36 +01:00
Joakim Nohlgård
30584a49e5
cortexm-common: Workaround for error: r7 cannot be used in asm here
...
Fixes https://github.com/RIOT-OS/RIOT/issues/4125
2015-10-21 14:35:02 +02:00
Sebastian Sontberg
bc1e6c815e
cpu/cortexm_common: add used attributes for LTO
2015-09-30 15:56:38 +02:00
effb15a2cc
Merge pull request #3313 from gebart/pr/eINT-fixes
...
eINT/dINT fixes
2015-09-29 12:39:16 +02:00
Joakim Gebart
56c6d629f7
cpu/cortexm_common: Improve hardfault debug information
...
Print more relevant information and attempt to reconstruct the state for GDB before halting.
2015-09-23 13:50:06 +02:00
Joakim Nohlgård
98c465008b
all: Update @gebart family name, email
2015-09-20 13:47:39 +02:00
Joakim Gebart
b6a88cba5f
cpu/cortexm_common: remove dINT/eINT definitions
2015-09-19 10:37:17 +02:00
391bc02c06
cpu: cortexm_common: busywait before resetting
2015-09-16 10:58:51 +02:00
Martine Lenders
93f555ef69
Merge pull request #3782 from OlegHahm/RIOT_assert
...
core: RIOT's own assert macro
2015-09-12 13:12:34 +02:00
Oleg Hahm
49917a5797
core: cpu: fix check for DEVELHELP
2015-09-12 12:43:15 +02:00
Oleg Hahm
f3245cecac
core: panic: last instruction's address for assert
2015-09-11 23:23:31 +02:00
Oleg Hahm
d7161b6d4b
cpu: inline function to print instruction register
2015-09-11 23:23:31 +02:00
d3006b171a
cpu: cortexm_common: remove obsolete UART0_BUFSIZE define
2015-09-04 17:46:23 +02:00
Oleg Hahm
e2639d7f83
core: use enums for panic
2015-09-04 16:14:35 +02:00