Commit Graph

25 Commits (23ffafa682c7a4fb1602ee5f5dc26c247e4eaffe)

Author SHA1 Message Date
Sam Grove 23ffafa682 Merge pull request #2498 from toyowata/master
Fix multiple definition errors in GCC_CR build
2016-08-26 09:22:49 -05:00
Niklas Hauser 7c0cc50677 Fix missing wrapping of calloc_r with uVisor enabled.
uVisor only wraps malloc_r, realloc_r and free_r, not calloc_r!
2016-08-24 10:22:05 +01:00
Russ Butler 6a31ffbf3e Heap statistics
Keep track of the current size allocated, maximum size allocated,
number of allocations, failed allocations and total size allocated for
both GCC and ARM. Report the maximum size allocated at the end of
testing.

Also, add a test to verify heap metrics are working as expected.
2016-08-22 18:32:51 -05:00
Toyomasa Watarai 362bb0e94d Add TOOLCHAIN_GCC_CR support 2016-08-19 13:50:12 +09:00
Russ Butler 16329fd2d9 Override new and delete operators to trap errors
When new or new[] fails to allocate space trigger an error.
2016-08-09 14:42:23 -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
Sam Grove 34caf43f5a Merge pull request #2238 from OpenNuvoton/nuc472
[NUC472] Add NUMAKER-PFM-NUC472
2016-08-04 10:37:31 -05:00
Russ Butler 4047ff9576 Create dedicated file for PlatformMutex
Move the PlatformMutex class into a dedicated file to reduce the
number of unnecessary includes.
2016-07-28 14:21:04 -05:00
ccli8 41242e3d55 Support NUMAKER_PFM_NUC472 2016-07-28 10:00:49 +08: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
Martin Kojtal 829289bdd9 Merge pull request #2129 from jamike/Fix_for_#2124
Fix issue #2124: IAR no rtos
2016-07-15 10:48:53 +01:00
Christopher Haster 126de5b07a Added config option for stdio baud rate 2016-07-11 18:42:44 -05:00
Michel JAOUEN e29aa6a7fa Fix issue #2124: IAR no rtos
Remove the 2nd call of mbed_sdk_init in __iar_argc_argv
2016-07-08 13:45:52 +02:00
Christopher Haster 54609f6d62 Added default value for MBED_CONF_CORE_STDIO_CONVERT_NEWLINES 2016-06-17 03:54:39 -05:00
Christopher Haster 1480c231e9 Added config option for newline conversion 2016-06-15 21:14:26 -05:00
Christopher Haster 2330dcc49a Added newline conversion for stdin
stdin converts the following character sequences:

\n   -> \n
\r\n -> \n
\r   -> \n
\n\r -> \n

For original behaviour, a serial object can be instantiated explicitly
2016-06-15 20:58:30 -05:00
Christopher Haster 69c33625eb Added newline conversion for stdout
stdout converts the following character sequences:

\n   -> \r\n
\r\n -> \r\n
\r   -> \r
\n\r -> \n\r

For original behaviour, a serial object can be instantiated explicitly
2016-06-15 20:58:30 -05:00
Russ Butler 8c2e352dd8 Fix GCC malloc lock
The malloc lock functions were not declared as extern "C" so they
are not getting linked to the standard library.  Add extern "C" to
fix this.

This bug was introduced in the commit:
d0b7b3b497 -
Fix duplicate symbols for malloc lock and unlock
2016-06-13 15:00:42 +01:00
Russ Butler d0b7b3b497 Fix duplicate symbols for malloc lock and unlock
When the malloc lock and unlock functions are inside a library they
conflict with the standard libraries weak version of these functions.
This is because of the way weak references are handled by the linker.
This patch renames the lock and unlock functions defined inside RTX
so they do not conflict.  A thunk inside retarget.cpp then calls the
RTX functions.  This problem does not occur with retarget.cpp since
it is always build into an object file rather than a library file.
2016-06-12 18:18:41 +01:00
Russ Butler feb60784e9 Make core mbed API thread safe
Make the mbed C++ API thread safe by adding a combination of
mutexes and critical sections.  Stub out all mutexes when the
RTOS is not present.
2016-06-11 17:33:02 +01:00
Niklas Hauser f81cf5d686 Add default implementation of malloc wrapping
For GCC malloc is always wrapped, but only used for FEATURE_UVISOR.
Otherwise we have to simply forward the wrappers.
2016-06-10 16:56:17 +01:00
Jaeden Amero 5d48984914 Initialize uvisor-lib
uvisor-lib has an init function that must be called before the RTOS kernel
is initialized. Call uvisor_lib_init from software_init_hook to accomplish
this.
2016-06-10 16:56:17 +01:00
Jaeden Amero 43e595aec3 Wrap software_init_hook
Wrap software_init_hook so that it can be used or extended from outside the
RTOS. This is desirable so that code can be added to the software_init_hook
without making the RTOS depend on new features or libraries.
2016-06-10 16:56:17 +01:00
Russ Butler bd216c37cb Make the IAR standard library thread safe
Add the locks and flags necessary to make the IAR standard library
thread safe.  These changes consist of:
-Add compiler flag "--guard_calls" to ensure C++ function-static
    variables with dynamic initializers are initialized in a
    thread safe manner
-Add the linker flag "--threaded_lib" so the thread safe version of
    the standard library is used
-Implement mutex functions required for IAR thread safety
-Create a set of stub functions in retarget.c for when the rtos is not present
2016-05-31 14:41:21 -05:00
Mihail Stoyanov d9734e5a32 Simplify layout:
* /libraries/mbed -> /hal
* /libraries/rtos -> /rtos
2016-05-23 09:13:59 +01:00