Commit Graph

6 Commits (53ff006f53ea0feaa0e460f782e14f7fc51998a5)

Author SHA1 Message Date
Jaeden Amero af572350f0 Don't call __disable_irq for uVisor
This is a hack to get debug builds applications that use uVisor to work.
The assertions in core_util_critical_section fail because interrupts can't
actually be disabled from unprivileged mode.

Without this hack, core_util_critical_section_enter() calls
mbed_assert_internal() when the assertion fails, which calls
core_util_critical_section_enter() again, which calls
mbed_assert_internal() again; this is infinite recursion.

core_util_critical_section_enter needs some fixing.
2016-06-14 14:09:56 +00:00
0xc0170 81a7bdc482 critical - fix __STDC_LIMIT_MACROS for armcc
UINT32_MAX is defined only if __STDC_LIMIT_MACROS is provided prior
including stdint.h
2016-06-13 22:14:13 +01:00
0xc0170 b5c4faf6f6 Critical section - fix for cortex-a
Cortex-A does not contain primask, there's 7th bit in the CPSR register,
that contains this information. Fixes #1851.

Renames primask variables to interrupts_disabled.
2016-06-06 12:17:29 +01:00
Russ Butler f3b1d45963 Add functions for atomic access
Add core util functions for atomic increment, atomic decrement and
compare and set.
2016-06-06 10:55:55 +01:00
0xc0170 5e62c37f17 Critical - use mbed assert
uARM complained about assert:
```
Error: L6218E: Undefined symbol __aeabi_assert (referred from critical.o).
Finished: 0 information, 0 warning and 1 error messages.
[ERROR] Error: L6218E: Undefined symbol __aeabi_assert (referred from critical.o).
Finished: 0 information, 0 warning and 1 error messages.
```
2016-05-31 15:07:36 +01:00
Anna Bridge 462c917ad0 Add a c based re-entrant critical section API
This includes a generic critical section implementation.  This
implementation also allow a user to start a critical section while
interrupts are already disabled.
2016-05-27 23:27:52 -05:00