Commit Graph

731 Commits (1549c5c425785368ccf95fa6b72079afaff7f642)

Author SHA1 Message Date
Kevin Bracey 51df320614 Add format check to debug() 2018-10-31 14:26:33 +02:00
Kevin Bracey 1f56fbe397 Add format checking to mbed_error_printf 2018-10-31 14:26:29 +02:00
Kevin Bracey 644022890c Fixes ATCmdParser OOB handling performance-wise
The issue is that the process_oob check would only return immediately
if no data at all on entry, or when receiving a known OOB. Any other
line noise or unknown OOBs could lead to a timeout delay - read the
noise or unknown OOB then timeout waiting for another line of input.

This revised version modifies the parser to recheck readable after each
line end when only looking for OOBs, so it can immediate exit.
2018-10-31 11:28:17 +02:00
Deepika Bhavnani 5a87f04872
Update doc for wait_ms 2018-10-30 13:07:59 -05:00
Amanda Butler f5e28fe729
Edit mbed_wait_api.h
Standardize unit of time measurements, and change passive to active voice.
2018-10-30 10:06:30 -05:00
Kevin Bracey e9ccabcadc system_reset is MBED_NORETURN 2018-10-30 12:39:03 +02:00
Martin Kojtal 27c0affef7
Merge pull request #8578 from cmonr/rollup
Rollup PR: Samll docs changes
2018-10-30 10:03:01 +01:00
Cruz Monrreal 5ed07c2dd4
Merge pull request #8328 from kjbracey-arm/noreturn
Error path tightening: use MBED_NORETURN; add+use core_util_atomic_flag
2018-10-29 20:49:54 -05:00
Cruz Monrreal II 8b58ed75b0 Merge branch 'kegilbert-patch-6' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-29 19:13:29 -05:00
Cruz Monrreal c9eaddd7e0
Merge pull request #8487 from kegilbert/mbed_mem_trace_config_patch2
Update mbed_mem_tracing config option
2018-10-29 18:53:25 -05:00
Amanda Butler 9ab13df3bd
Make changes from comments to FileHandle.h
Address comments.
2018-10-29 14:09:16 -05:00
Kevin Bracey ea16a6ba1d Add MBED_NORETURN attributes
Save some ROM space by putting MBED_NORETURN attributes on error
functions and failed asserts.

mbed_error was documented as returning an error code. It never
actually could return, so documentation updated, but return type
kept.
2018-10-29 13:58:06 +02:00
Kevin Bracey 57748bd46e Adjust error paths locking and returning
Various fixes in preparation for making sure error calls do not return.

* Clear out handle_error's use of error_in_progress as a sort of spin
  lock; this is most likely to deadlock if ever activated, and conflicts
  with error's use of error_in_progress. Use a normal critical section lock.

* Make error use same mbed_halt_system helper as mbed_error.

* Make error's recursion check avoid print and proceed to halt, rather
  than returning.

* Make mbed_error use error_in_progress to avoid recursion in same way
  as error() does.

* Give mbed_halt_system its own recursion check in case of error in
  mbed_die - give it a simple fallback.

* Make the in_progress things properly atomic, just in case.
2018-10-29 13:58:06 +02:00
Kevin Bracey c32984c3a8 Add atomic_flag utility
An atomic flag primitive is sometimes wanted, and it is cumbersome to
create it from the compare-and-swap operation - cumbersome enough that
people often don't bother.

Put in a core_util_atomic_flag that follows the C11/C++11 atomic_flag
API, such that it could be mapped to it with #define later.
2018-10-29 13:58:05 +02:00
Kevin Bracey 0b27736536 Remove sleep manager tests that trigger mbed_error
Intercepting mbed_error will be too hard after mbed_error becomes
[[noreturn]], so remove tests that do this.
2018-10-29 13:58:05 +02:00
Cruz Monrreal d23d7855fc
Merge pull request #8552 from cmonr/rollup
Rollup PR: UK Docathon pt2
2018-10-27 08:27:02 -05:00
kegilbert a2ac895c37 This reverts commit 9b53d1256fb358407acbaf81c70b71d937b1f7cd.i
Move the memory tracing enabled macro to a config option but
revert the !defined -> #if changes to no longer cause breaking
changes.
2018-10-26 17:35:33 -05:00
Cruz Monrreal II 99e198aa4f Merge branch 'non-copyable-doc' of ssh://github.com/pan-/mbed into rollup 2018-10-26 11:43:04 -05:00
Cruz Monrreal c25f15615b
Merge pull request #8526 from michalpasztamobica/windows_unittest_compilation_fix
Fix for unit test build on Windows machines
2018-10-26 11:38:59 -05:00
Mel W 47adbd258c
Minor streamlining of long sentences 2018-10-26 15:28:38 +03:00
paul-szczepanek-arm e4f3768c6c protect using with macro 2018-10-26 08:41:58 +01:00
Cruz Monrreal II 5da4fe7e20 Merge branch 'docs_update-platformmutex' of ssh://github.com/fkjagodzinski/mbed-os into rollup 2018-10-25 21:49:39 -05:00
Deepika 957f240450 Remove deep sleep lock from wait_ms
API's updated as:
1. wait(float) calls wait_ms for >=0.01s and not in interrupt, else wait_us.

2. wait_ms() is just the thread sleep and doesn't lock hardware sleep.
In order to have backward compatibility, if used in ISR `wait_us` is
called if MBED_TRAP_ERRORS_ENABLED is false

3. wait_us() is a ticker-based wait, always spinning.
2018-10-25 14:15:08 -05:00
Cruz Monrreal de6ba91644
Merge pull request #8365 from 0xc0170/fix_astyle_common2
Fix astyle for tests folders
2018-10-25 10:41:13 -05:00
Cruz Monrreal 9c59d9acc3
Merge pull request #7864 from deepikabhavnani/remove_mbed_h
Add required header file and namespace element instead add all.
2018-10-25 09:26:24 -05:00
Martin Kojtal ca444a7f01 platform: fix astyle 2018-10-25 09:58:18 +01:00
Michal Paszta 0b3593f576 Fix for unit test build on Windows machines
In case MINGW is detected - define MBED_WEAK to be empty, as Windows
executables cannot handle the weak attribute.
2018-10-25 08:27:52 +03:00
Amanda Butler 1131d844c9
Edit PlatformMutex.h
Change passive to active voice.
2018-10-24 16:39:45 -05:00
Filip Jagodzinski e095c78c66 PlatformMutex docs update 2018-10-24 18:07:46 +02:00
Vincent Coubard abeab68729
NonCopyable: Fix edit. 2018-10-24 08:35:10 +01:00
Cruz Monrreal II fe1d6b0565 Merge branch 'mbed_rtc_time_example_fix' of ssh://github.com/mprse/mbed-os into rollup 2018-10-23 22:38:42 -05:00
Cruz Monrreal II 408051ad40 Merge branch 'span-doc' of ssh://github.com/pan-/mbed into rollup 2018-10-23 22:38:35 -05:00
Amanda Butler acaf96834e
Copy edit NonCopyable.h
Make minor copy edits, mostly to existing text before this PR.
2018-10-23 14:50:37 -05:00
Vincent Coubard 0d2a8e0417 NonCopyable: Add into platform doc group. 2018-10-23 14:41:38 +01:00
Vincent Coubard 3fe42b6c0d NonCopyable: Rewrite of class documentation. 2018-10-23 14:34:43 +01:00
Vincent Coubard 1e30ed599e Span: define doc groups. 2018-10-23 12:15:47 +01:00
Vincent Coubard 29f7d9d508 NonCopyable: Prevent doc generation for protected member function. 2018-10-23 12:11:02 +01:00
Vincent Coubard c956a93252 Span: Improve subspan return type.
This clarifies code and documentation generated.
2018-10-23 11:39:27 +01:00
Vincent Coubard 03d308d114 Span: Add related non member function to class documentation. 2018-10-23 11:38:37 +01:00
Vincent Coubard a0786adbc4 Span: Improve documentation
Makes doxygen reference to SPAN_DYNAMIC_EXTENT by name instead of the macro expansion -1.
Add reference to the macro in the class documentation.
2018-10-23 11:38:01 +01:00
Przemyslaw Stekiel 0a1e3a0c52 mbed_rtc_time.h - documentation fix
Make example code consistent with:
https://os.mbed.com/teams/mbed_example/code/time_HelloWorld/file/0c6401d671c6/main.cpp/
2018-10-23 12:18:45 +02:00
Kevin Bracey 500e37f3a2 mbed_error: Always print full filename if passed
Don't extract filename from the stored error - print it directly.

Use "mbed_error_puts" for both error message and filename to avoid
buffer length limits.

Switch to puts also fixes the potential problem of an error message
containing a '%' upsetting the formatter - it should have been
mbed_printf_error("%s", error_msg) in the first place.
2018-10-22 09:53:21 +03:00
Kevin Bracey 10fe32277d mbed_error: Print thread names
As part of this, don't show empty current thread info in non-RTOS
build.
2018-10-22 09:53:21 +03:00
Kevin Bracey c3d0e2c2ef mbed_error: Correct full thread info print
Casts were covering up a type mismatch.

Print the "ready" list, and remove the explicit print of the idle thread
(it should be in the ready list).
2018-10-22 09:53:21 +03:00
Kevin Bracey 25d0fbaaeb mbed_error: remove redundant memset
If we want zero-fill, strncpy does it anyway.
2018-10-22 09:53:20 +03:00
Kevin Bracey c2076b5ec4 mbed_error: Simplify read of stack pointer 2018-10-22 09:53:20 +03:00
Kevin Bracey e20edbdb46 Add mbed_error_puts
This is potentially useful for printing long strings such as filenames
from assert messages, avoiding the buffer limit inherent in
mbed_error_printf.
2018-10-22 09:53:20 +03:00
Cruz Monrreal II 1c1432e8e7 Merge branch 'kegilbert-patch-6-1' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-18 20:01:36 -05:00
Amanda Butler 1f9ef36483
Edit DirHandle.h
Edit for active voice.
2018-10-18 11:11:03 -05:00
Cruz Monrreal e698f0b29f
Merge pull request #8076 from kjbracey-arm/error_stderr
Error output improvements
2018-10-18 08:39:17 -05:00
Cruz Monrreal ad6ada014a
Merge pull request #7948 from kegilbert/mbed_mem_trace_log_toggle
Add enable/disable cb function in mem_trace
2018-10-18 08:38:26 -05:00
Amanda Butler 7d604fedf8 Fix typo in DirHandle.md
Add "s" for agreement.
2018-10-17 22:42:28 -05:00
Kevin Gilbert 6b3bf28d0d Move inline code snippets to code blocks 2018-10-17 22:42:19 -05:00
Cruz Monrreal II 2a68339867 Merge branch 'typo-patch-underlying-1' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:45 -05:00
Cruz Monrreal II 9000821b4d Merge branch 'kegilbert-patch-2' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:44 -05:00
Cruz Monrreal II 3d753290c7 Merge branch 'cb_doxytypo_patch' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:42 -05:00
Cruz Monrreal II ecd109e0be Merge branch 'kegilbert-patch-3' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:41 -05:00
Cruz Monrreal II f8997fa1a4 Merge branch 'kegilbert-patch-4' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:40 -05:00
Cruz Monrreal II ae28c74690 Merge branch 'kegilbert-patch-5' of ssh://github.com/ARMmbed/mbed-os into rollup 2018-10-17 21:38:38 -05:00
Cruz Monrreal 1a6d2f6513
Merge pull request #8451 from korjaa/fix_possible_filebase_deadlock
Added missing _mutex->unlock() to FileBase::lookup().
2018-10-17 17:40:29 -05:00
Amanda Butler 3a8919b22d
Copy edit FileHandle.h
Copy edit file.
2018-10-17 17:26:27 -05:00
Kevin Gilbert 7709b24b29
api->API
Minor doxygen update, uppercase acronym
2018-10-17 17:20:10 -05:00
kegilbert 2d910cd8e7 Infered->Inferred
Signiture->Signature
2018-10-17 17:13:36 -05:00
Amanda Butler 048614638e
Copy edit mbed_rtc_time.h
Copy edit existing text.
2018-10-17 17:07:05 -05:00
Kevin Gilbert 3794fe5b6c
funtion->function
Minor doxygen typo patch
2018-10-17 17:01:48 -05:00
Kevin Gilbert 69e763e254
Minor mbed_assert doxy typos patch 2018-10-17 16:59:07 -05:00
Kevin Gilbert 3a04e6ae78
locable->lockable
Minor doxygen comment typo patch
2018-10-17 16:54:32 -05:00
Kevin Gilbert d24f10e50e
Remove extra e in deepsleep 2018-10-17 16:44:15 -05:00
Kevin Gilbert 435f4724e0
underlyng->underlying 2018-10-17 12:23:35 -05:00
Cruz Monrreal 7085d16661
Merge pull request #8354 from kjbracey-arm/singletonptr_align
SingletonPtr: const and alignment
2018-10-17 08:35:12 -05:00
Jaakko Korhonen 4efec08127 Added missing _mutex->unlock() to FileBase::lookup(). 2018-10-17 14:07:09 +03:00
Kevin Bracey 2df322c43d Don't overrun in error prints
vsprintf returns the amount it would have written if the buffer had been
big enough, but we used that value directly when outputting, thus
overrunning memory and dumping stack contents.

Indicate truncation by inserting an ellipsis and newline. Slightly
increase the buffer size, so that we don't slightly decrease the maximum
printable characters because of the ellipsis insertion.

Partially addresses https://github.com/ARMmbed/mbed-os/issues/6850 by
forcing a newline when truncation happens - often truncation will drop a
newline and prevent a flush.
2018-10-17 12:55:20 +03:00
Kevin Bracey c989845d5a mbed_error_vfprintf -> mbed_error_vprintf
Name vfprintf doesn't make sense - if we have mbed_error_printf, this is
vprintf.
2018-10-17 12:55:20 +03:00
Kevin Bracey d05c60ee3f Sync output devices on exit
Mbed retarget does an `fflush` on stdout and stderr on exit - this
flushes the C library buffers (if it is buffering), but doesn't
flush any device buffers (eg UARTSerial's TX buffer). Add
sync() calls to the output device to do this.
2018-10-17 12:55:20 +03:00
Kevin Bracey 78f4b4bc82 Make mbed_error not serial-specific
Use write() on current output device instead - this works on the
assumption that write() is safe to call from critical section.

UARTSerial has previously been upgraded to support this, and this also
improves the behaviour when buffered serial is in use - the current
buffered output will be fully flushed before outputting the error
message.
2018-10-17 12:55:20 +03:00
Cruz Monrreal ce7e61e37e
Merge pull request #8255 from MateuszMaz/refactoring_mbed_assert
Change behaviour of mbed_asert to use mbed_error instead of mbed_die
2018-10-16 11:06:18 -05:00
Kevin Bracey e7815c64ad Align SingletonPtr data to 8 bytes, or use C++11
Be more cautious about alignment - align the data within a SingletonPtr
to 8 bytes rather than 4. This could increase padding overhead by up
to 8 bytes, sadly, but we may need this alignment for correct operation.

Conditional check added for C++11 - if in use we can get correct minimal
alignment by using alignas(T).
2018-10-16 13:32:52 +03:00
Deepika 1d23843833 Platform: Add required header file and namespace element instead add all 2018-10-15 10:39:41 -05:00
deepikabhavnani f55b929de9 ATCmdParser: Added namespace std for va_list 2018-10-15 10:39:41 -05:00
Cruz Monrreal ec03df4823
Merge pull request #7980 from kjbracey-arm/thread_deprecations
Clean up rtos::Thread deprecation warnings
2018-10-15 10:09:55 -05:00
Cruz Monrreal e0e915f5db
Merge pull request #8423 from cmonr/rollup2
Rollup PR: Additional doc PRs + lingering need:CI PRs
2018-10-15 10:04:04 -05:00
Cruz Monrreal II a51b0a3562 Merge branch 'atcmd_docs' of ssh://github.com/deepikabhavnani/mbed-os into deepikabhavnani-atcmd_docs 2018-10-12 21:46:59 -05:00
Cruz Monrreal II d0aec14124 Merge branch 'typo-fix-1-1' of ssh://github.com/ARMmbed/mbed-os into ARMmbed-typo-fix-1-1 2018-10-12 21:46:51 -05:00
Cruz Monrreal II 2f6aa3331f Merge branch 'heap_fix_7912' of ssh://github.com/deepikabhavnani/mbed-os into deepikabhavnani-heap_fix_7912 2018-10-12 21:46:27 -05:00
Amanda Butler 5b22304300
Edit ATCmdParser.md
Make minor grammar and spelling edits.
2018-10-12 17:16:09 -05:00
deepikabhavnani 92108858f5 Doc changes and rephrasing 2018-10-12 17:09:31 -05:00
Amanda Butler 00186e6f14
Copy edit mbed_rtc_time.h
Copy edit existing text for U.S. spelling and consistent capitalization.
2018-10-12 14:50:52 -05:00
Kevin Gilbert a9dbd728f6
wich->which 2018-10-12 13:52:23 -05:00
Cruz Monrreal II 8bb21afbf0 Merge branch 'sen_ErrorDoxyUpdate' of ssh://github.com/SenRamakri/mbed-os into SenRamakri-sen_ErrorDoxyUpdate 2018-10-12 12:07:28 -05:00
Cruz Monrreal II b7ef70dea4 Merge branch 'update_stats_docs' of ssh://github.com/bridadan/mbed into bridadan-update_stats_docs 2018-10-12 12:07:23 -05:00
Cruz Monrreal II 828b6f506a Merge branch 'sen_MemTraceDoxyUpdate' of ssh://github.com/SenRamakri/mbed-os into SenRamakri-sen_MemTraceDoxyUpdate 2018-10-12 12:07:21 -05:00
Cruz Monrreal II 98a9bb880b Merge branch 'fhtidy_doc' of ssh://github.com/kjbracey-arm/mbed-os into kjbracey-arm-fhtidy_doc 2018-10-12 12:07:07 -05:00
Senthil Ramakrishnan e547e3d88d Fix doxygen comments and spelling errors 2018-10-12 11:49:58 -05:00
Amanda Butler 9eab32e365
Copy edit changes to mbed_mem_trace.h
Delete extra spaces.
2018-10-12 11:13:31 -05:00
Amanda Butler 82c4ce607d
Edit mbed_stats.h
Capitalize ID for consistency.
2018-10-12 11:08:01 -05:00
Cruz Monrreal 6d7b655b87
Merge pull request #8331 from deepikabhavnani/getc_fix
Stream: add necessary flushes, removing unneeded IAR workaround
2018-10-12 08:59:16 -05:00
Kevin Bracey 1ef213ec89 Clean up Thread deprecation warnings
Static Thread methods and signal methods have been deprecated. Remove
all references in the main code, and most of the tests. Some tests of
the deprecated APIs themselves remain.
2018-10-12 14:57:13 +03:00
Brian Daniels ddedc155d4 Updating stats doc comments 2018-10-11 19:11:17 -05:00
Senthil Ramakrishnan 026c978515 Adding doxygen comments for mem trace enum 2018-10-11 16:58:47 -05:00
MateuszMaz e6ae3d2c51 Remove stray error_value 2018-10-09 18:49:47 +02:00
Filip Jagodzinski 9dce8b3ab5 HAL: SleepManager: Update header file
Move sleep manager API into its own doxygen group.
Add defined behavior section and links to tests.
2018-10-09 17:52:42 +02:00
Kevin Bracey 199d1667ff Make SingletonPtr methods const
Make get() and operators * and -> of SingletonPtr const - they are
logically const and thread-safe, despite the construction on first call.
This construction is "invisible" to the caller of those methods.
2018-10-09 18:08:05 +03:00
kegilbert eeada14721 Add enable/disable cb function in mem_trace 2018-10-08 11:50:10 -05:00
MateuszMaz cf43e1cb5c Fix message string 2018-10-08 18:41:50 +02:00
Cruz Monrreal f529dc799e
Merge pull request #8001 from kjbracey-arm/singletonptr_star
Add * operator to SingletonPtr
2018-10-08 10:25:46 -05:00
deepikabhavnani 0e758796f6 Signature to track memory allocations by wrapper functions.
Compilers allocate some section of memory without using wrapper function,
which is later freed when wrappers were initialized. Since the allocated
memory didn;t contain wrapper header the pointer got corrupt when calling to free.

This implementation of signature addition during malloc and signature check during
free helps in freeing the memory allocated by wrapper functions properly and
also the internal memory allocated by compilers (without malloc wrappers).
2018-10-08 07:45:01 -05:00
Deepika 6646323867 Alignment of 8 is not required for additional header
malloc guarantees aligned memory. If we add an alignment here, we are adding
additonal unused 4 bytes. Each allocator has its own 4/8 byte header
(GGC / ARM have 4 bytes).

So if user request for 8 bytes of memory stats will add 8 + allocator 8.
However if we remove the alignment in stats header, allocator will consider
add 4 bytes to 12 byte request and zero padding.

It will be beneficial to leave the padding to allocator.
2018-10-08 07:37:54 -05:00
Martin Kojtal 4fbd39c74e
Merge pull request #8108 from c1728p9/systick_rename
Rename device option STCLK_OFF_DURING_SLEEP
2018-10-06 07:46:49 +02:00
Deepika f79a354311 Replace fflush to fseek before writes
You are allowed in POSIX / ANSI C to read and write on the same stream, but you
have to do an fseek in between read and write call (getc->fseek->putc)

Thanks @Alex-EEE for sharing the fix: https://github.com/ARMmbed/mbed-os/pull/7749

Added test case for verification of the behavior
2018-10-05 14:29:15 -05:00
MateuszMaz 63d3a32894 Remove empty line 2018-10-05 21:25:28 +02:00
MateuszMaz 845655b621 Add case MBED_ERROR_CODE_ASSERTION_FAILED, fix names, pass expr to mbed_error 2018-10-05 21:15:03 +02:00
MateuszMaz a2f3c59768 Add ASSERTATION_FAILED error code 2018-10-04 20:47:16 +02:00
paul-szczepanek-arm 05a4337490 make it backwards compatible 2018-10-04 16:12:26 +01:00
paul-szczepanek-arm 3a408eb85a fix missing namespace mbed 2018-10-04 15:51:01 +01:00
deepikabhavnani 5f5882830f Add `overhead_size` element to get the overhead of stats
Heap statistics are used for analysing heap stats, but it doesn't tell anything
about real heap usage or malloc overheads. Adding `overhead_size` element
will help users to get the real heap usage.
2018-10-03 16:41:24 -05:00
Cruz Monrreal 4403a561b3
Merge pull request #7890 from deepikabhavnani/cb_issue_7701
Circular buffer should use conditional statement instead of modulo
2018-09-27 10:20:05 -05:00
MateuszM c3e7ddbb10 Changed behaviour of mbed_asert to use mbed_error instead of mbed_die. 2018-09-26 11:08:54 +02:00
Martin Kojtal ac6ca73dd8
Merge pull request #8165 from mprse/issue_8155_fix
Fix for issue #8155 (NRF52832: time stops after 35 minutes)
2018-09-24 12:59:22 +02:00
Martin Kojtal 9506f50112
Merge pull request #8036 from TeroJaasko/fix_mbed_error_c_memsets
platform: error: fix bogus usage of memset()
2018-09-24 08:23:02 +02:00
Cruz Monrreal 1a638c7870
Merge pull request #8106 from c1728p9/macros_to_config
Replace macros with config options
2018-09-22 16:40:53 -05:00
Martin Kojtal 3d94fb889b
Merge pull request #7903 from tkem/fix/cleanup-include-paths
Clean up include paths.
2018-09-19 12:16:09 +02:00
Kevin Bracey 1492829f82 poll: Un-doxygen internal comment 2018-09-18 12:40:03 +03:00
Przemyslaw Stekiel 814940cabe Fix for issue #8155 (NRF52832: time stops after 35 minutes)
Low power Timer is used as RTC for platforms that don't have HW RTC capabilities (like NRF52832).
`_rtc_lpticker_read(void)` function currently uses `Timer::read()` function to trace elapsed time.
`Timer::read()` returns seconds represented as `float` value, but this value is calculated from `int` since `Timer::read_us()` returns `int`.
This limits time tracing to ~35 min.
To fix this problem we will use `timer::read_high_resolution_us()` (which returns unsigned 64 bit value) instead of `Timer::read()`.
2018-09-18 09:48:53 +02:00
Cruz Monrreal 3da606e586
Merge pull request #8017 from TTornblom/master
IAR: Fix for #7662, only massage the error decode URL for the IAR .xcl
2018-09-17 19:46:12 -05:00
Russ Butler ab50681c33 Rename device option STCLK_OFF_DURING_SLEEP
Rename STCLK_OFF_DURING_SLEEP to SYSTICK_CLK_OFF_DURING_SLEEP to avoid
confusion with the STmicroelectronics.
2018-09-12 14:40:25 -05:00
Russ Butler b9b4b8ada6 Replace macros with config options
Add a config option for the following values:
MBED_SYS_STATS_ENABLED
MBED_STACK_STATS_ENABLED
MBED_CPU_STATS_ENABLED
MBED_HEAP_STATS_ENABLED
MBED_THREAD_STATS_ENABLED
MBED_CONF_APP_MAIN_STACK_SIZE
MBED_CONF_APP_TIMER_THREAD_STACK_SIZE
MBED_CONF_APP_IDLE_THREAD_STACK_SIZE
MBED_CONF_APP_THREAD_STACK_SIZE

To maintain backwards compatibility inside the RTOS both
APP and RTOS config values can be used.
2018-09-12 13:59:46 -05:00
Kevin Bracey eaddf0a160 FileBase: Fix unsetting of default when destroyed
Code that should unset a FileBase from being the default when it is
destroyed was broken by a `==` instead of `=` typo.
2018-09-10 11:20:36 +03:00
Tero Jääskö 321548cadc platform: error: fix bogus usage of memset()
Code had mixed up order of 'c' and 'n' arguments to memset().
Fix this.

Spotted-by: kjbracey-arm & a GCC profile without "-fno-builtin"

Related GCC warnings:
---8<---8<----
[Warning] mbed_error.c@123,5: 'memset' used with constant zero length parameter; this could be due to transposed parameters [-Wmemset-transposed-args]
[Warning] mbed_error.c@282,5: 'memset' used with constant zero length parameter; this could be due to transposed parameters [-Wmemset-transposed-args]
2018-09-07 15:40:44 +03:00
TTornblom 0d97803ad8 IAR: Fix for #7662, only massage the error decode URL for the IAR .xcl
file.
2018-09-06 12:16:15 +02:00
Kevin Bracey 390f6e7a7b Add * operator to SingletonPtr
Sometimes you want don't want to directly call a method on your
SingletonPtr-wrapped object, but you want to pass it to something
else.

For example

    SingletonPtr<PlatformMutex> mutex;
    mutex->lock();

is fine, but what about

    SingletonPtr<PlatformMutex> mutex;
    ScopedLock<PlatformMutex> lock(*mutex.get());

Add an overload for operator* to make this more elegant:

    SingletonPtr<PlatformMutex> mutex;
    ScopedLock<PlatformMutex> lock(*mutex);

This addition is consistent with standard C++ classes such as
`unique_ptr` and `shared_ptr`, which likewise have
get, operator-> and operator*.
2018-09-05 18:15:47 +03:00
Kevin Bracey a67f09851b Add special handling for "/default" filesystem
Allow a FileBase (normally a FileSystemLike) to be set as the default,
so it can be looked up as "/default" as well as its actual name.
2018-09-05 13:28:42 +03:00
Cruz Monrreal 83e0e65a42
Merge pull request #7726 from SenRamakri/sen_BLE_ErrorUpdate
Update BLE error calls to use new error codes and mbed_error
2018-09-02 20:47:40 -05:00
Cruz Monrreal f82feecc51
Merge pull request #7822 from donatieng/nfc-impl
Add initial NFC support to Mbed OS
2018-08-31 19:01:25 -05:00
Cruz Monrreal a849fa46df
Merge pull request #7662 from SenRamakri/sen_ErrorUrl
Add Error Decoding URL to error report
2018-08-31 18:27:30 -05:00
Cruz Monrreal 88eb8aab23
Merge pull request #7794 from c1728p9/boot_overhaul
Update Mbed 5 boot sequence
2018-08-30 10:22:15 -05:00
Senthil Ramakrishnan e84e56bc8d Add Error Decoding URL in error report 2018-08-30 12:19:59 +01:00
Vincent Coubard 913f219fc1 Span: Fix type used in is_convertible traits. 2018-08-29 19:42:46 +01:00
Thomas Kemmer a16c374725 Clean up include paths. 2018-08-27 20:47:19 +02:00
Cruz Monrreal 1b051c7687
Merge pull request #7402 from kegilbert/mem-tracing-config-patch
Replace mbed_mem_tracing_enabled macro with config option
2018-08-27 10:34:24 -05:00
Cruz Monrreal c12c69fef0
Merge pull request #7828 from pan-/span
Platform: Add C++ Span class.
2018-08-27 10:28:59 -05:00
Deepika 4e263b17b9 Refactor circular buffer test to platform folder 2018-08-27 09:33:07 -05:00
Russ Butler ec19bf1de4 Allow early use of singleton lock
Allow singleton_lock and singleton_unlock to be called before the
RTOS has been started by checking for a valid mutex before locking
and unlocking it.
2018-08-26 12:59:57 -05:00
Cruz Monrreal 2f8e679183
Merge pull request #7592 from orenc17/remove_uvisor
Remove uVisor from mbed-os
2018-08-25 19:52:24 -05:00
Deepika 546743aeb0 Replace modulo op with compare/reset op 2018-08-24 16:51:32 -05:00
Vincent Coubard 9d1fd9983c Span: Fix documentation. 2018-08-24 17:51:58 +01:00
Amanda Butler bf08651d3a
Copy edit Span.h
Copy edit file, mostly for consistent capitalization, punctuation and tense.
2018-08-24 09:31:10 -05:00
Vincent Coubard af69e1fb8b Span: use static assert to kill copy construction from an incompatible span type.
Copy construction between Span of compatible type is allowed to fulfil the use
case Span<T> -> Span<const T>. This is achieved by a templated copy constructor
like constructor.

In p0122, the overload is discarded from the constructor set if the ElementType
of the Span in input is not convertible into the ElementType of the Span being
constructed.

To discard function overload, SFINAE has to be used which polutes the documentation
and make the code harder to read and maintain.

Unlike p0122, our Span class doesn't exposes (yet) functions with default argument
or functions that convert container in input into span the only overload with the
a single parameter that we exposes are:
- template<size_t N> Span(ElementType (&element)[N])
- Span(const Span& other): <- generated by the compiler.

For both of this functions we expect exact match and their resolution should not
interfere with the constructor that converts from another type of Span.

As a result it is possible to rely solely on C++ default resolution rules as we
won't hit cases were constructors convert from another type (std::array, std
container, span) and raise an error with a static assert if the element type
can't be converted.

If another copy - conversion - constructor is added then SFINAE has to be
reintroduced.
2018-08-24 11:10:17 +01:00
Martin Kojtal 871d7e7361
Merge pull request #7730 from davidsaada/david_stack_stats_fail_fix
When stack stats enabled, prevent exceptions if memory allocations fail
2018-08-24 11:31:24 +02:00
Vincent Coubard d5051a8ca7 Span: Allow copy construction from convertible span.
Addition of these overloads help when Span<const T> is constructed from Span<T>.
2018-08-23 18:41:53 +01:00
Cruz Monrreal deb905da1d
Merge pull request #7815 from donatieng/shared_ptr
Re-add Shared Pointer Class into platform features
2018-08-23 10:09:02 -05:00
Vincent Coubard b7f074ef68 Span: Fix opening brace position. 2018-08-23 14:02:26 +01:00
Vincent Coubard 2a6c6d5985 Span: Use mbed way of writing types in documentation example. 2018-08-23 12:41:04 +01:00
Vincent Coubard 33ca10192d Span: Fix documentation. 2018-08-23 11:38:32 +01:00
Vincent Coubard 6b08320573 Span: Fix doxygen tags. 2018-08-23 09:02:28 +01:00
Vincent Coubard 4e7fa91b94 Span: amend documentation 2018-08-22 15:11:27 +01:00
Oren Cohen 787317b7eb Remove uVisor from mbed-os 2018-08-22 16:36:59 +03:00
Vincent Coubard 95fc284a83 Span: add boundary check in subscript operator for debug profile 2018-08-22 13:32:54 +01:00
Vincent Coubard f6dd5eaa31 Span: Fix static assert message in default constructor. 2018-08-22 13:31:26 +01:00
Vincent Coubard 26b546bab3 Span: Improve readability of precondition checks 2018-08-22 09:40:51 +01:00
Vincent Coubard 938d802ea0 Span: Fix subspan return type 2018-08-22 09:40:50 +01:00
Vincent Coubard 54e2d92c95 Span: Improve consistency with standard.
This commit aims to make Span implementation more in line with what is present in N4762:
- use appropiate index types where applicable.
- use typedefed type inside the class (index_type, reference, pointer, element_type)
- assertion where applicable
- restrict default construction to Span with extent == 0 or extent == dynamic.
- construct span from a range of pointer
- remove non const overload of the subscript operator
- remove non const overload of the data function
- implement subspan function
- implement missing first and last function of dynamic span
2018-08-21 18:20:58 +01:00
Donatien Garnier 298f847821 Fix use_count() in SharedPtr 2018-08-21 12:59:54 +01:00
Amanda Butler 7086d69a83
Copy edit SharedPtr.h
Copy edit for consistent capitalization and minor grammar nits.
2018-08-20 13:55:21 -05:00
Donatien Garnier d9c1748c14 Update formatting for SharedPtr.h 2018-08-20 12:04:53 +01:00
Vincent Coubard 3985fb8d62 Span: Fix documentation error. 2018-08-20 12:00:20 +01:00
Vincent Coubard 1f00336c7e Span: replace reference to Size with Extent. 2018-08-20 11:58:48 +01:00
Vincent Coubard 6fcf1e8284 Span: Make type pointer and reference declaration consistent with guideline. 2018-08-20 10:47:41 +01:00
Vincent Coubard 9b9d33a7b4 Span: Fix typo. 2018-08-20 10:41:47 +01:00
Vincent Coubard 3fb3173876 Span: Fix odd condition in Span::empty. 2018-08-20 10:30:35 +01:00
Vincent Coubard 43170d21bf Span: Make name of dynamic span tag consistent with C++ standard. 2018-08-20 10:29:43 +01:00
Vincent Coubard eba1dc6dd6 Span: Improve comparison operator to array by using fixed size Span. 2018-08-20 09:13:31 +01:00
Vincent Coubard 7f195b8ec1 Span: Cleanup usage of ptrdiff_t and size_t 2018-08-20 09:13:17 +01:00
Vincent Coubard d8c788a413 Platform: Add C++ Span class.
The Span class allows the creation of views over contiguous memory. The view
do not own memory, is typed and has a length. It can be used as a replacement of
the traditional pair of pointer and size in parameters or class fields.

Main operations:
- size(): return the lenght of the memory viewed
- empty(): return if the memory viewed is empty
- [index]: access elements viewed
- data(): return a pointer to the memory viewed.
- first(count): Create a subview from the first count elements.
- last(count): Create a subview from the last count elements.
- == and !=: compare two views or a view to array and return if they are equal or
not.

The Span class came in two flavors:
- Static size: The size is encoded in the Span type and it is as lightweitgh as
a single pointer,
- Dynamic size: The object can store arbitrary views and it costs one pointer
and the size of the view.
2018-08-19 20:20:05 +01:00
Senthil Ramakrishnan 529af2b0f4 Changes to error code names 2018-08-17 23:13:59 -05:00
Senthil Ramakrishnan 7803a40fbd Update BLE error calls to use new error codes and mbed_error 2018-08-17 22:52:50 -05:00
Donatien Garnier 6f3c07f6eb Optimize SharedPtr code 2018-08-17 20:11:00 +01:00
Donatien Garnier ac79b007d0 Cleanup description 2018-08-17 19:05:19 +01:00
Donatien Garnier 2608478e87 Cleanup shared pointer implementation and add reset() methods 2018-08-17 18:45:01 +01:00
Donatien Garnier f45642cec0 Make shared pointer thread safe and clean-up class and doc 2018-08-17 18:25:28 +01:00
Russ Butler 472ababfef Update deep sleep lock check in tests
When the define LPTICKER_DELAY_TICKS is set deep sleep can be randomly
disallowed when using the low power ticker. This is because a Timer
object, which locks deep sleep, is used to protect from back-to-back
writes to lp tickers which can't support that. This causes tests which
assert that deep sleep is allowed to intermittently fail.

To fix this intermittent failure this patch adds the function
sleep_manager_can_deep_sleep_test_check() which checks if deep sleep
is allowed over a duration. It updates all the tests to use
sleep_manager_can_deep_sleep_test_check() rather
than sleep_manager_can_deep_sleep() so the tests work even if deep
sleep is spuriously blocked.
2018-08-17 09:29:41 -05:00
Donatien Garnier 9ebfbc0cdd Re-introduce a shared pointer class in mbed OS 2018-08-17 12:30:51 +01:00
David Saada cfe7df28c9 When stack stats enabled, prevent exceptions if memory allocations fail 2018-08-08 16:18:29 +03:00
Martin Kojtal 7a44185c1c CircularBuffer: volatile specifier removal
Volatile specifier in this case it not required as we currently have all accesses
to the buffer protected by critical section. This shall optimize accesses in
some cases to the buffer.

Fixes #7702
2018-08-08 10:11:59 +01:00
kegilbert 9b53d1256f Replace mbed_mem_tracing_enabled macro with config option 2018-08-06 13:44:12 -05:00
Cruz Monrreal 8292affb53
Merge pull request #7609 from bremoran/patch-2
Make location meaningful in print_error_report
2018-07-26 22:07:22 -05:00
Cruz Monrreal cc506eed14
Merge pull request #7603 from OpenNuvoton/nuvoton_override_gcc_sbrk
Nuvoton: Replace __wrap__sbrk with overriding _sbrk
2018-07-26 12:54:45 -05:00
Brendan Moran 96fbd02f8c
Make location meaningful in print_error_report
`handle_error` calls `MBED_CALLER_ADDR()`, but this is always a location from within platform/mbed_error.c. This is because `handle_error` is declared static. This does not cause the function to be inlined however. Instead, it is called by each function within mbed_error.c. For example, mbed_error yields this code:

```
000625c8 <mbed_error>:
   625c8:       b510            push    {r4, lr}
   625ca:       460c            mov     r4, r1
   625cc:       4611            mov     r1, r2
   625ce:       461a            mov     r2, r3
   625d0:       9b02            ldr     r3, [sp, #8]
   625d2:       f7ff feff       bl      623d4 <handle_error>
   625d6:       b968            cbnz    r0, 625f4 <mbed_error+0x2c>
   625d8:       4620            mov     r0, r4
   625da:       f7ff ff67       bl      624ac <print_error_report.constprop.0>
   625de:       f7ff fea8       bl      62332 <core_util_is_isr_active>
   625e2:       b910            cbnz    r0, 625ea <mbed_error+0x22>
   625e4:       f7ff fe9f       bl      62326 <core_util_are_interrupts_enabled>
   625e8:       b908            cbnz    r0, 625ee <mbed_error+0x26>
   625ea:       bf30            wfi
   625ec:       e7fd            b.n     625ea <mbed_error+0x22>
   625ee:       2001            movs    r0, #1
   625f0:       f000 f948       bl      62884 <__wrap_exit>
   625f4:       4800            ldr     r0, [pc, #0]    ; (625f8 <mbed_error+0x30>)
   625f6:       bd10            pop     {r4, pc}
   625f8:       80ff010f        .word   0x80ff010f
```

Note that at `625d2` there is a bl to handle error. That replaces the LR, which means that ALL calls to mbed_error will report a location of 0x625d6 or 0x625d7 (user vs. supervisor). I do not expect that this was the intention of the code. The simplest fix is to change line 99:

```C
static inline mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number)
```

Since `handle_error()` will be inlined, the link register will be kept the same, so `MBED_CALLER_ADDR()` will yield the expected result. However, there is no guarantee that the compiler will respect the `inline` keyword in all circumstances.

The result is that each function that wishes to report its caller must extract its caller. This code cannot be centralised.

I have modified `mbed_error.c` to report the caller of each error reporting function, rather than the error reporting function itself.
2018-07-26 16:21:17 +01:00
ccli8 313f322cf7 [Nuvoton] Replace __wrap__sbrk with overriding _sbrk
With _sbrk being weak, we can override it directly rather than #if to support heap with
two-region model.
2018-07-26 15:47:25 +08:00
Senthil Ramakrishnan 7cedccc488 Improved logic in wait_us to avoid division operation in sub-millisec case 2018-07-25 15:04:06 -05:00
Deepika b05d105493 Update stats to fetch Mbed OS version info 2018-07-13 11:58:49 -05:00
Cruz Monrreal 6fcb77ee34
Merge pull request #7434 from deepikabhavnani/version_header
Separate version header file in Mbed OS
2018-07-13 11:43:15 -05:00
Deepika 05d8c74aee Separate version header file to get version updates in Mbed OS 2018-07-11 09:41:30 -05:00
Senthil Ramakrishnan b6179d281d Remove error reporting for release builds 2018-07-06 10:15:07 -05:00
Senthil Ramakrishnan a29eee4e73 Don't print error reports in release builds 2018-07-06 09:56:34 -05:00
Senthil Ramakrishnan a443e9bb47 Fix wrong config binding 2018-07-03 14:00:46 -05:00
Cruz Monrreal 7e0f75e831
Merge pull request #7331 from TomoYamanaka/improve_bootloader
Improve the process for Cortex-A9 in mbed_application
2018-07-03 07:37:19 -05:00
Martin Kojtal ffcb6ecfb5 platform: astyle update 2018-06-29 10:38:44 +01:00
Senthil Ramakrishnan 0e25447b78 Fix error history related comments 2018-06-27 15:32:38 -05:00
TomoYamanaka 9c99d7eb17 Improve the process for Cortex-A9 in mbed_application
I added the powerdown func by GIC in mbed_application because Cortex-A9 use GIC instead of NVIC.
This process prevent unexpected interrupt when updating software by using bootloader.
2018-06-26 19:17:59 +09:00
Cruz Monrreal ea47342f81
Merge pull request #7214 from SenRamakri/sen_ErrorOptimAndConfig
Error handling configuration updates and Optimization for exception handling
2018-06-25 10:10:49 -05:00