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