Commit Graph

11 Commits (mbed-os-5.3)

Author SHA1 Message Date
Christopher Haster 3e7b5ed6b9 Fixed rtx calls when inside critical sections
Before, rtx calls would hard fault in critical sections when an svc
instruction was attempted with interrupts disabled.

Required changes:
- Added check for CPSR I bit in cortex A rtx
- Added check for PRIMASK in cortex M rtx
- Modified critical sections in cortex M rtx to be recursive
  (already recursive in cortex A)
2016-09-22 21:19:22 -05:00
Russ Butler 9e4a479794 Add prefix to mark cmsis_os functions as private
Add a leading underscore to give an indication that the new cmsis_os
API functions are not official.
2016-09-13 15:53:17 -05:00
Russ Butler 6fd9154d75 Add task terminate hook
Add an RTX hook which gets called when a thread terminates. Add
the function Thread::attach_terminate_hook() to allow users to attach
a hook to this event at runtime.
2016-09-13 12:59:05 -05:00
Russ Butler c319296692 Add RTX API to report stack usage
Add the function osThreadGetInfo to allow various Thread information
to be queried.  This includes stack size and maximum stack usage among
other things.

Note - for Cortex-A devices the worst case stack usage is not
available.
2016-09-13 12:58:57 -05:00
Russ Butler ad24b7d982 Add RTX API to enumerate running threads
Add the functions osThreadsEnumStart, osThreadEnumNext and
osThreadEnumFree to allow enumeration of running threads. Protect
thread creation, thread exit and thread termination with a mutex
so threads are not created or destroyed while an enumeration is
ongoing.
2016-09-12 17:08:36 -05:00
Jaeden Amero 409ecf6be6 Call the pre-start event unprivileged 2016-06-16 17:38:52 +00:00
Christopher Haster 70ebb6f16b [rtos] Fixed registers clobbered SVC_Handler in IAR
The rtx SVC_Handler for IAR clobbers r0-r3 despite the number of
arguments. However, in the SVC calls, the __swi function is declared
with fewer arguments. IAR doesn't understand that the other registers are
clobbered and stores variables in r0-r3 when multiple SVCs are
dispatched in a single function.

This bug was noticed in osThreadExit, which hard-faults on IAR,
preventing any threads from exiting.
2016-06-11 19:34:20 -05:00
Niklas Hauser 61166870ed RTX: Add context to osThreadCreate/Terminate 2016-06-10 16:56:16 +01:00
Jaeden Amero 4cdc4a7b45 Add OsEventObserver
Add the OsEventObserver mechanism. A client interested in receiving
notifications on certain OS events can register to receive notifications
with osRegisterForOsEvents. This is useful for clients like the secure
memory allocator, which observes thread switching events in order to swap
in and out different memory allocator objects.
2016-06-10 16:56:16 +01:00
0xc0170 327bd41632 Merge branch 'master' of https://github.com/neilt6/mbed into neilt6-master 2016-05-23 10:41:32 +01:00
Mihail Stoyanov d9734e5a32 Simplify layout:
* /libraries/mbed -> /hal
* /libraries/rtos -> /rtos
2016-05-23 09:13:59 +01:00