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

47 Commits

Author SHA1 Message Date
Marian Buschsieweke
5f355e7210
cpu/arm7_common: Make irq_*() compiler barriers
Previously the compiler was allowed to reorder access to the interrupt control
registers in regard to memory access not marked as `volatile` (at least some
people - most notably some compiler developers - read the C standard this way).
In practise this did not happen as irq_disable(), irq_restore(), irq_enable()
are part of a separate compilation unit: Calls to external functions unknown to
the compiler are treated as if they were memory barriers. But if link time
optimization (LTO) is enabled, this no longer would work: The compiler could
inline the code accessing the interrupt control registers and reorder the memory
accesses wrapped in irq_disable() and irq_restore() outside of their protection.

This commit adds the "memory" clobber to the inline assembly accessing the
interrupt control registers. This makes those accesses explicit compiler memory
barriers. The machine code generated without LTO enabled should not differ in
any way by this commit. But the use of irq_*() should now be safe with LTO.
2019-04-24 16:29:30 +02:00
b19dcd3a65 cpu: lpc2387: use while(1){} instead of exit
This removes the dependency on newlib.
2019-01-10 12:15:44 +01:00
56f6c4f084 cpu: lpc2387: turn printf -> LOG_ERROR 2019-01-10 12:15:08 +01:00
7847a91e12 cpu: instead of cpp-style, use C-style comments 2018-02-06 16:59:58 +01:00
a20745b6c5 cpu: make use of Makefile.periph 2017-11-06 12:01:19 +01:00
942cc7598b cpu: arm7: reorganize Makefile.features 2017-11-02 12:59:45 +01:00
167bd30453 all: fix my email address 2017-10-20 15:02:41 +02:00
Lucas Jenss
6998ffbb14 cppcheck: Provide consistent reason formatting for all cppcheck-suppresses 2017-10-10 10:25:20 -07:00
smlng
692cf96297 doc: fix doxygen grouping of cpu periph drivers 2017-06-26 14:42:11 +02:00
Hauke Petersen
9aad0e528f cpu: cleanup unused/umimplemented isr stack code
- removed ISR_STACKSIZE define where unused (set to 0)
- removed thread_arch_isr_stack_usage(), thread_arch_isr_stack_start(),
  and/or thread_arch_isr_stack_pointer() where not implemented
2017-05-12 18:07:08 +02:00
d1db946188 Merge pull request #6344 from haukepetersen/opt_pm_misc
pm: misc cleanup and fixes
2017-01-24 14:07:36 +01:00
Oleg Hahm
3c6678b037 *: fix mismatching endifs for header guards 2017-01-19 18:30:53 +01:00
Oleg Hahm
7ee7801c10 *: remove trailing underscores from header guards 2017-01-19 18:30:53 +01:00
Hauke Petersen
cd53fe92e6 cpu/arm7: moved pm_reboot to periph/pm.c 2017-01-19 11:05:44 +01:00
062b90788a cpu: arm7_common: adapt to periph/pm 2017-01-12 16:26:02 +01:00
ca7bf15ac4 core: panic: adapt to pariph/pm 2017-01-12 16:26:01 +01:00
0194091673 remove obsolete lpm code 2017-01-12 11:24:15 +01:00
Hauke Petersen
ad3ed80f05 cpu/arm7_common: s/u_long/unsigned long/ 2016-12-13 13:26:37 +01: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
MohmadAyman
53df3e8b57 core: cpu: provide function to acquire ISR stack usage 2016-06-01 23:01:35 +02:00
c3f7186d4e unify usage of inline assembly 2016-03-31 22:23:35 +02:00
DipSwitch
5b5810ab7b Merge pull request #5109 from DipSwitch/pr/fix_core_inc_irq
core: Fix/refactor function naming in core/incude/irq.h
2016-03-22 08:12:24 +01:00
Joakim Nohlgård
1efe384d6f arm7: Use TARGET_ARCH instead of custom toolchain specification 2016-03-21 12:19:30 +01:00
DipSwitch
0bb4748a94 core: Fix/refactor function naming in core/incude/irq.h 2016-03-20 16:47:34 +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
Joakim Gebart
6473fa77d4 cpu/arm7_common: remove dINT/eINT definitions 2015-09-19 10:37:20 +02:00
012d82ecaf cpu: arm7_common: remove obsolete hwtimer support 2015-09-16 10:58:53 +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
a13bc46f3e sys: remove uart0 2015-09-04 17:46:23 +02:00
Hauke Petersen
62d4981457 cpu/arm7_common: removed mc1322x code 2015-09-03 16:09:42 +02:00
a03ff202cf cpu: lpc2387: switch to newlib module 2015-08-14 16:50:41 +02:00
Joakim Gebart
70d59331b8 arm7_common: Build fixes after discovering an include guard overlap 2015-07-20 12:40:32 +02:00
Joakim Gebart
7ff26d12ea cpu/arm7_common: Rename Doxygen group to cpu_arm7_common 2015-07-20 12:40:31 +02:00
Joakim Gebart
c274558e91 cpu/arm7_common/syscalls: Fix warnings and comment style 2015-07-14 08:11:14 +02:00
Joakim Gebart
dc6ab7a3a0 arm7: Remove atomic.s 2015-05-26 21:28:31 +02:00
Oleg Hahm
cb1f047f59 core: unified core_panic implementation 2015-05-10 11:58:43 +02:00
Oleg Hahm
828839316b core: renamed crash.h to panic.h 2015-05-09 18:44:10 +02:00
Joakim Gebart
f15fc173b9 arm7: Add ARCH_HAS_ATOMIC_SET_RETURN 2015-05-07 18:52:13 +02:00
Oleg Hahm
587920cc49 cpu: remove superfluous gettimeofday functions 2014-12-16 17:02:44 +01:00
Oleg Hahm
498edb1854 cc430: lpc2387: switch to new periph/rtc interface
Removes the old interface.
2014-12-16 17:02:44 +01:00
Oleg Hahm
cd81c040d8 uart0: remove superfluous prototype from header
Declare and document prototype in CPU part instead.
2014-12-05 20:33:10 +01:00
Martin
bfaacbbd38 cpu/arm_common: c++: initial support for c++ added _kill (weak) and weak attribute for _kill_r
boards/msba2: provided c++ feature (cpp)
2014-12-03 07:30:29 +01:00
BytesGalore
a4d2ee307c cpu: added extern "C" to headers 2014-11-24 19:10:15 +01:00
Oleg Hahm
5e2b43452c cpu: arm7_common: added extern C guards 2014-11-21 21:00:52 +01:00
Oleg Hahm
20ce2aee8b cpu: rename arm_common to arm7_common
To be more accurate with the naming and avoid confusions.
2014-11-21 20:27:19 +01:00