1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

81 Commits

Author SHA1 Message Date
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