Commit Graph

112 Commits (765aeb0dc6c67c798358ca4c5b465d1f7f1ef6c4)

Author SHA1 Message Date
ohagendorf 54adfe10c0 [disco_f769ni] adding rtos lib 2016-09-09 14:18:16 +02:00
Sam Grove 57ebf8bdad Merge pull request from jamike/NUCLEO_F303ZE
Nucleof303ze
2016-09-09 01:48:13 +02:00
Sam Grove a6b27319ec Merge pull request from geky/callback-cv
Add cv-qualifiers to Callback and deprecate combinatorial explody functions
2016-09-09 01:45:25 +02:00
Michel Jaouen aae0b921db [NUCLEO_F303ZE] Add RTOS support 2016-09-05 09:09:42 +02:00
Sam Grove ea56684fff Merge pull request from radhika-raghavendran/master
ncs36510 from ON Semiconductor
2016-08-27 07:31:39 -05:00
Alessandro Angelino b98227c939 K64F: Revert to hardcoded stack pointer in RTX 2016-08-26 17:19:04 +01:00
Christopher Haster 45d25ed493 Added support for cv-qualifiers in Callback class
Additionally, the following changes were don to avoid combinatorial
explosion in function overloads as a result of adding cv-qualifiers:
- Added convenience function for inferred type
- Deprecated callback overloads qhere cv-qualifiers are not scalable

Supported overloads:
callback(void (*f)(A...));
callback(const Callback<R(A...)> &);
callback(T *t,                void (*f)(T*, A...));
callback(const T *t,          void (*f)(const T*, A...));
callback(volatile T *t,       void (*f)(volatile T*, A...));
callback(const volatile T *t, void (*f)(const volatile T*, A...));
callback(T *t,                void (T::*f)(A...));
callback(const T *t,          void (T::*f)(A...) const);
callback(volatile T *t,       void (T::*f)(A...) volatile);
callback(const volatile T *t, void (T::*f)(A...) const volatile);
2016-08-26 09:40:22 -05:00
Sam Grove 030261f2c4 Merge pull request from tung7970/master
Fix implicit declaration of function 'atexit'
2016-08-26 09:30:19 -05:00
Sam Grove daf4b1c6b1 Merge pull request from jeremybrodt/max32620
[MAX32620HSP] Initial release.
2016-08-26 09:25:33 -05:00
Radhika b75379f353 Adding NCS36510 support in mbed-os5.1 2016-08-26 12:00:54 +05:30
Jeremy Brodt 2604773a27 [MAX32620HSP] Added support to RTX files. 2016-08-25 16:55:42 -05:00
Tony Wu 6157563ae3 Fix implicit declaration of function 'atexit'
Silence the following compiler warning:
[Warning] RTX_CM_lib.h@807,5: implicit declaration of function 'atexit' [-Wimplicit-function-declaration]

Signed-off-by: Tony Wu <tonywu@realtek.com>
2016-08-25 18:07:54 +08:00
Michel Jaouen a1bd087380 STM32F3 : fix RTOS IAR test not compiling.
Thread_stack_main is by default too large for this target.
2016-08-24 11:53:53 +02:00
Martin Kojtal 64a30a0095 Merge pull request from geky/deprecated-until
Updated deprecation notices to match branch names
2016-08-18 09:06:39 +01:00
Martin Kojtal 8568c9eac8 Merge pull request from geky/deprecated-until
Add more well-defined garuntees on deprecation notices in mbed
2016-08-17 14:45:46 +01:00
Christopher Haster b12c27c5b4 Updated deprecation notices to match branch names
Example:

    MBED_DEPRECATED_SINCE("mbed-os-5.1", "don't foo any more, bar instead")
    void foo(int arg);
2016-08-16 20:30:20 -05:00
Christopher Haster 0f516aa8e0 Added more well-defined garuntees on deprecation notices in mbed
From the discussion on issue :
Functions marked deprecated in the mbed library should notate when
the deprecation was started to allow efficient removal once a set
amount of time has expired.

Added the following macro:
MBED_DEPRECATED_SINCE("version", "message string")

Example usage:

    MBED_DEPRECATED_SINCE("v5.1", "don't foo any more, bar instead")
    void foo(int arg);

Adopted in existing deprecations:
- FunctionPointer
- RtosTimer
- Thread
2016-08-16 15:45:51 -05:00
Mahadevan Mahesh 0ad9220fb1 Add support for FRDM K66
Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
2016-08-15 15:37:25 -05:00
Russ Butler d9ac33d0c3 Increase interrupt stack size for K64F
The config store tests use more than 2K of the interrupt stack, causing
an overflow.  This patch bumps the K64F interrupt stack size to 4K
for ARMCC and GCC. The IAR interrupt stack is left untouched since
it is 32K.
2016-08-09 14:55:05 -05:00
Russ Butler 1615dca6bd Add a test for heap and stack layout
Test the following components of the heap and stacks:
-Heap and interrupt stack are at the expected locations
-Entire heap can be used
-Heap limit is properly enforced and returns NULL when out of
  of memory
2016-08-09 14:54:17 -05:00
Russ Butler 81382ebdb2 Turn on main thread stack checking
Since the heap and stack are no longer shared, stack checking on the
main thread can be turned back on. This allows stack overflows on the
main thread to be caught quickly.
2016-08-09 14:50:17 -05:00
Russ Butler 1d3d01f000 Correctly set INITIAL_SP for K64F
With the latest K64F linker file the initial stack is out of sync
with INITIAL_SP when uVisor is not present. This patch removes
the incorrect declaration.
2016-08-09 14:49:47 -05:00
Russ Butler da4787f036 Adjust stack size for the nrf51
Decrease the main stack size for the nrf51 so there is more heap
space available.
2016-08-09 14:42:09 -05:00
Russ Butler 7cf1dc1155 Fix heap limit checking and make memory explicit
Set well defined limits for the heap and configure GCC and ARMCC to
correctly check these. IAR already correctly checked its heap.

This also statically declares the main thread stack so the
linker is responsible for its placement.
2016-08-09 13:44:33 -05:00
Russ Butler e44ab35c42 Fix joining a terminated thread
When a thread is terminated signal the join semaphore so any threads
joining the terminated thread wake up as expected.
2016-08-08 16:42:20 -05:00
Sam Grove 34caf43f5a Merge pull request from OpenNuvoton/nuc472
[NUC472] Add NUMAKER-PFM-NUC472
2016-08-04 10:37:31 -05:00
Russ Butler 191596ea57 Set thread ID to NULL after termination
After a thread has been terminated set its ID to NULL since the handle
is no longer valid. This prevents accidental use of a deleted thread.
2016-08-03 11:02:46 -05:00
Russ Butler 55d74c55ed Fix join and make Thread class thread safe
Add a mutex to the thread object to protect its internal data. Prevent
making OS calls with a thread ID that has been terminated. This thread
ID can be reused by another thread, leading to undefined behavior if it
is used after termination.

Update the function Thread::join to use a semaphore to
determine when the thread finishes. This both avoids polling and
prevents a freed TCB from being accessed.
2016-08-02 21:17:40 -05:00
ccli8 41242e3d55 Support NUMAKER_PFM_NUC472 2016-07-28 10:00:49 +08:00
Sam Grove 90fa585568 Merge pull request from pan-/nrf52_nrf51_unified_integration
NRF52 target and unification with NRF51
2016-07-27 02:35:43 -05:00
Sam Grove d1da7bc0e7 Merge pull request from NXPmicro/K22_RTOS_FIX
The core clock in run mode is 80MHz for K22F
2016-07-26 21:20:23 -05:00
Russ Butler 2d50c60a78 Fix MAIN_THREAD_ID check
In cmsis_os.h OS_TIMERS is undefined unless the timer thread is
disabled, in which case it is defined to 0. When comparing against
an undefined value, the undefined value will evaluate as if it were
0. Because of this the MAIN_THREAD_ID was always set to 0x1.
This patch fixes that problem by checking if OS_TIMERS is defined
before comparing it to 0.

This problem only effects IAR since it has a different heap/stack
layout. GCC_ARM and ARM have a dedicated stack region so
the presence of a guard word and stack checking does not cause
problems.

This problem manifested on the NRF51_DK in the pull request
https://github.com/mbedmicro/mbed/pull/2211
as a c_strings test failure on floating point. This is because the
guard word of the main stack overlapped with standard library
data used by sprintf and corrupted it.
2016-07-26 18:05:58 -05:00
Mahadevan Mahesh 5a0ad646a1 The core clock in run mode is 80MHz for K22F
Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
2016-07-26 13:50:50 -05:00
Martin Kojtal 239f31b437 Merge pull request from neilt6/rtos-timer-update
[RTOS] Updated RtosTimer to use Callback
2016-07-22 10:17:32 +01:00
Vincent Coubard f10cf7fe16 Merge remote-tracking branch 'mbed-nordic/epr_integration' into nrf52_nrf51_unified_integration 2016-07-21 14:50:37 +01:00
Martin Kojtal dd010097ba Merge pull request from jeromecoutant/PR_dev_NUCLEO_F207ZG
New STM32 board : NUCLEO_F207ZG
2016-07-21 11:13:33 +01:00
Neil Thiessen 2133dadb63 [RTOS] Fixed missing include in RtosTimer.h
Added missing include for the MBED_DEPRECATED macro.
2016-07-20 16:14:20 -06:00
Neil Thiessen 4d4089e7bc [RTOS] Added deprecated RtosTimer constructor
Reintroduced the original RtosTimer constructor as an additional deprecated constructor for backwards compatibility.
2016-07-20 16:07:12 -06:00
neilt6 511117acdf [RTOS] Updated RtosTimer to use Callback
Updated the RtosTimer class to use Callback in order to be consistent
with the updated Thread class.
2016-07-20 10:51:45 -06:00
Sam Grove 518afae619 Merge pull request from geky/rtos-sema-default
[rtos] Add default constructor for Semaphore
2016-07-19 17:11:22 -05:00
Sam Grove d89c3c18f9 Merge pull request from c1728p9/singleton_support
Singleton support
2016-07-19 16:34:20 -05:00
0xc0170 edf015ad92 Merge branch 'master' into release
Conflicts:
	tools/export/uvision4.py
	tools/export/uvision5.py
2016-07-19 08:44:34 +01:00
Christopher Haster 0140dc2e80 Added default constructor for Semaphore
Currently Semaphore can not be instantiated without an explicit count
as a constructor argument. This limits where Semaphores can be declared
and requires explicit initialization in several annoying places, such
as in member variables and SingletonPtr targets.

This adds a default count of 0, which has shown to be the most common
initial value used for semaphores.
2016-07-18 14:51:38 -05:00
Russ Butler 348b32c3c6 Create singleton class and update code to use it
Create the wrapper class SingletonPtr.  This provides a safe way to
declare and use singletons.  This class allows both the lazy
initialization of a singleton, and allows the singleton to be
garbage collected by the linker if it is never referenced.

This patch also updates the HAL to use SingletonPtr when declaring
singleton mutexes.
2016-07-15 14:37:43 -05:00
Russ Butler d4627176da Update ARMCC pre_main to be in C
Switch pre_main from assembly to C for ARMCC.  This function does not
need to be in assembly.
2016-07-15 14:12:37 -05:00
Russ Butler 59e2f9621c Suppress warnings about deprecated __ldrex/strex
Suppress warnings about ARMCC warnings about the __ldrex and __strex
intrinsics to match CMSIS 5.
2016-07-15 11:10:38 -05:00
Vincent Coubard 9745eff74c Merge commit 'ce830296d0297a8da543c24134bf859710fd7698' into epr_integration
Merge the EPR tag and the nordic branch together.
2016-07-13 12:06:02 +01:00
jeromecoutant 9fc0a625bd rtos update to add NUCLEO_F207ZG 2016-07-12 16:38:07 +02:00
0xc0170 9a7591f21f rtos - add mbed lib version requirement 2016-07-08 13:07:38 +01:00
tomoyuki yamanaka 8331d5641c Modify the timing at which mbed_main() is called in IAR compiler.
Renesas modified the timing at which mbed_main() is called in IAR compiler.
Because we fail about test "mbed call before main" in IAR compiler.
2016-07-07 21:58:01 +09:00