Hauke Petersen
04b246cb01
cpu/cortexm_common: added cortexm_isr_end() function
2016-12-21 11:27:46 +01:00
Ian Martin
299a3eed3b
cpu/cortexm_common: simplify ARVALID tests and fix BFARVALID test.
2016-12-01 17:18:06 -05:00
zhuoshuguo
a60fa5b8d3
cpu/cortexm_common: fix include guards.
2016-11-16 11:45:03 +01:00
0dfcefc003
cpu: cortexm_common: fix compile warning
2016-10-27 15:20:56 +02:00
Ian Martin
22b5de86a5
add mpu_stack_guard pseudomodule (just Cortex-M for now)
...
triggers an exception during stack overflow,
but at a cost of 32-63 bytes of RAM per thread.
2016-10-24 12:40:44 -04:00
Ian Martin
b7bd6b3479
cpu/cortexm_common: add Memory Protection Unit (MPU) driver
2016-10-19 11:12:36 -04:00
Joakim Nohlgård
11c11a5ecf
Merge pull request #5727 from kaspar030/fix_panic_compile
...
cpu: cortexm_common: fix compile warning
2016-10-14 10:08:42 +02:00
3dfafde027
cpu: cortexm_common: fix compile warning
2016-10-07 12:06:43 +02:00
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
Peter Kietzmann
86af1969b5
Merge pull request #3666 from daniel-k/cortexm_r13_deprecated
...
cortexm_common: don't compare with r13/sp in assembly, fix #3664
2015-08-20 11:48:13 +02:00
Joakim Gebart
56b0beeebe
Merge pull request #3107 from gebart/pr/cppsupport
...
c++: Define some support functions required by GCC
2015-08-19 21:49:24 +02:00
Daniel Krebs
cb4aec676b
cortexm_common: don't compare with r13/sp in assembly, fix #3664
2015-08-19 20:56:43 +02:00
daniel-k
7a86344c4d
cpu/cortexm_common: gather addition information on hardfault
2015-08-19 14:24:54 +02:00
Joakim Gebart
62b1435646
cortexm: Remove __dso_handle from startup.c in favour of sys/cpp11-compat/cppsupport.cpp
2015-08-08 14:44:41 +02:00
Cenk Gündoğan
6e1a593e28
cortexm_common: use doxygen todo
2015-08-03 11:00:21 +02:00
d359c86c60
cpu: cortexm_common: set pendSV to default priority
2015-07-28 20:02:45 +02:00
Joakim Gebart
32c213d0b0
cpu/cortexm_common: Fix signedness warning
2015-07-14 08:11:14 +02:00
Joakim Gebart
ee4182b246
cpu/cortexm_common: Overwrite stack up until the current stack pointer only.
2015-07-07 18:04:30 +02:00
Hauke Petersen
c286da8d7f
cpu/cortexm: unified startup code and isr handlers
2015-06-15 16:00:51 +02:00
Joakim Gebart
fc92ec98bf
cortexm: CMSIS: Add extern "C" to CMSIS headers
2015-05-31 17:27:24 +02:00
Joakim Gebart
1cfb11bcde
cortexm: CMSIS: Suppress cppcheck error about uninitialized result
...
False positive, the variable result is assigned from within inline assembly
2015-05-31 17:27:24 +02:00
Joakim Gebart
9511027946
cortexm: CMSIS: Replace tabs by spaces
2015-05-31 17:27:24 +02:00
Joakim Gebart
5bfed6c3f7
cortexm: Update CMSIS to v4.3
...
found at www.arm.com/cmsis
2015-05-31 17:27:23 +02:00
Peter Kietzmann
6dc0e789e1
Merge pull request #3101 from gebart/pr/warning-fixes
...
Various warning fixes
2015-05-31 17:03:49 +02:00
Hauke Petersen
19ef9dbe4e
cpu/cortexm: raised ISR stack size to safer value
...
256 Byte were not enough for some boards (not sure why, yet).
So go back to 512 byte as a save (and known working value).
2015-05-31 12:00:17 +02:00
Hauke Petersen
8752894cc9
cpu/cortexm: added base linkerscript
2015-05-30 13:43:19 +02:00
Hauke Petersen
78d65a4dec
cpu/cortexm_common: centralized init and defines
...
- added a centralized core implementation for all cortex CPUs
- moved default stack size defines to cpu.h in cortexm_common
- moved uart0 bufsize define to cpu.h in cortexm_common
- moved typed of panic_t to cpu.h in cortexm_common
2015-05-29 16:42:05 +02:00
Joakim Gebart
8a34b15964
cortexm_common: Conditionally define __set_FPSCR
...
It is an error to call __set_FPSCR if no FPU is present in the CPU.
2015-05-29 14:16:35 +02:00
Hauke Petersen
b8dd144e03
cpu: unified cortexm_common folder
...
- removed coretx-m[0|3|4]
- moved their content to cortexm_common
- adjusted cortex Makefiles to this new name
- adjusted cortex Makefiles new structure
2015-05-28 19:30:07 +02:00
Hauke Petersen
407e36ec5f
cpu - cortex-m3: moved crash.c to cortex-m3_common
2014-06-18 11:49:45 +02:00
Thomas Eichinger
b4fceaca89
Merge pull request #1313 from thomaseichinger/cortexm_crash
...
cpu:cortex_common: add core_panic function
2014-06-11 15:02:46 +02:00
Thomas Eichinger
3639ae9b25
cpu:cortex_common: add core_panic function
2014-06-11 14:43:02 +02:00
Hauke Petersen
ebb496cc26
cpu: renamed cortexm_common->cortex-m3_common and cleanup
2014-06-11 00:24:10 +02:00
René Kijewski
b6dc5c9b76
core/cortex-m: add missing NORETURNs to thread_arch
2014-06-05 21:01:35 +02:00
Martin Lenders
2362623490
Fix trailing whitespaces
...
Fixes #1138
2014-05-26 14:54:23 +02:00
Oleg Hahm
ef4fe6616c
documentation: unified descriptive text for cpu
2014-05-24 15:56:57 +02:00
Oleg Hahm
ef5ec344fd
core: prefix API functions correctly
...
Also changed names for bitarithm functions and rename thread_pid to sched_active_pid.
2014-05-18 08:53:20 +02:00
Ludwig Ortmann
aa4e61fab2
documentation: clean up doxygen mess after cortex
...
fixes #1190
2014-05-16 19:47:54 +02:00
Hauke Petersen
31915bfe61
cpu: Initial import of SAM3X8E
...
- fixed spelling in uart driver
- marked cortexm-common a phony target
- fixed Makefiles
- added reboot interface implementation
- fixed documentation
- added UART0_BUFSIZE define
- added license header
- fixed documentation issues
2014-05-13 21:19:38 +02:00
Hauke Petersen
27133d25fe
cpu: Initial import of cortexm_common files
...
- fixes to cortexm-common
- Added ARM CMSIS headers to cortexm_common
- thread_exit fixes to cortexm-common
- cortexm-common adjusted documentation
- cortexm_common added eINT dINT defines for now
2014-05-13 21:19:18 +02:00