Commit Graph

694 Commits (3a301cd5f37a336ce77c8da2eaa605fd409cfee5)

Author SHA1 Message Date
Russ Butler cdc61c5954 Use MPU platform deinit rather than hal free
Use the MPU through the platform layer rather than through the HAL.
2018-12-11 18:59:58 +02:00
Kevin Bracey 770baa22ea Rework MPU use option
Make the option positively named, and as it is a platform config
option make sure it only affects platform code.

HAL functions still remain available even if platform is told not
to use them.
2018-12-11 13:03:59 +02:00
Russ Butler 2af6642f68 Add a platform config to disable the MPU
Add the platform config DISABLE_MPU to allow the MPU to be disabled
from an application.
2018-12-11 13:03:58 +02:00
Cruz Monrreal 89527604ae
Merge pull request #9033 from fkjagodzinski/fix-stream
Fix Stream for IAR toolchain
2018-12-10 19:20:06 -06:00
Russ Butler 390ef301a8 Add header to fix compile failures
Add the header platform/mbed_assert.h to fix build errors with
platform/mbed_mpu_mgmt.c.
2018-12-10 12:54:17 -06:00
Kevin Bracey 1289406f9f Use MBED_ASSERT in MPU manager
MPU lock under- or overflow is not a likely random runtime failure - it
will be a mismatched lock/unlock programming error, so should be
detected during development.  Make the checks asserts so they can be
left out from release builds.  MBED_ASSERT is also a bit smaller than
MBED_ERROR in develop builds.
2018-12-10 15:53:35 +02:00
Filip Jagodzinski 89a475bc4e Fix: Stream: Replace fflush() with fseek()
This is a follow-up to PR #8331; fixing the Stream methods not covered
there.
2018-12-10 14:31:30 +01:00
Kevin Bracey e2f6025b17 Exclude MPU manager code if MPU disabled
Save around 400 bytes from images using FlashIAP by omitting MPU manager
reference counting if DEVICE_MPU is 0.
2018-12-10 14:44:03 +02:00
Martin Kojtal 8230fd7784
Merge pull request #8888 from kegilbert/sys-struct-whitespace-patch
Align comment block in sys stats struct
2018-12-03 13:40:36 +01:00
Martin Kojtal bf36ff77c1
Merge pull request #8855 from michalpasztamobica/warnings_fix
Fix compilation warnings (apart from nanostack)
2018-12-03 13:31:55 +01:00
Martin Kojtal 226219f3f2 rtos: fix style in rtos wait
Found during editing copyright message
2018-11-29 10:51:18 +00:00
Martin Kojtal ad759b7749 platform: add spdx license 2018-11-28 10:39:52 +00:00
Martin Kojtal 52822cb8af
Merge pull request #8871 from c1728p9/mpu
MPU API (Reopened)
2018-11-28 10:28:32 +01:00
Martin Kojtal 4758ddd2c6
Merge pull request #8738 from pan-/ble-extended-advertising
Ble extended advertising
2018-11-28 09:39:13 +01:00
kegilbert 31bbbff08a Align comment block in sys stats struct 2018-11-27 18:06:26 -06:00
Russ Butler caa7b93921 Rename lock functions and classes
Invert the name of the lock functions and classes so you are not
locking a negative.
2018-11-27 09:29:32 +00:00
Russ Butler 1821d37621 Overhaul MPU for new requirements
Make the following changes:
-Allow a vector specific ARM MPU driver by defining MBED_MPU_CUSTOM
-Allow ROM address to be configured for ARMv7-M devices by
    setting the define MBED_MPU_ROM_END
-Add ROM write protection
    -Add new functions and lock
    -enable at boot
    -disable during flash programming
2018-11-27 09:29:32 +00:00
Russ Butler d27566c955 Rename MpuXnLock
Rename MpuXnLock  to ScopedMpuXnLock so it has the same naming
convention as ScopedMutexLock. Also make this class inherit from
NonCopyable to prevent misuse.
2018-11-27 09:29:32 +00:00
Russ Butler ab18442988 Add an RAII class for MPU execute never
Add the class MpuXnLock which uses RAII  to allow execution from RAM
in a block of code.
2018-11-27 09:29:31 +00:00
Russ Butler ecd0414494 Integrate MPU with mbed
Enable the MPU as part of the boot sequence and disable it before
starting a new application. Also add reference counted MPU lock and
unlock functions to allow code to execute from ram when necessary.
2018-11-27 09:29:31 +00:00
Martin Kojtal 29b64e15bf
Merge pull request #8761 from kegilbert/add-all-stats-config-opt
Add MBED_ALL_STATS_ENABLED to config system
2018-11-27 09:12:17 +01:00
Martin Kojtal 436644b7bd
Merge pull request #7760 from ARMmbed/feature_namespace
Give an option to remove 'using namespace'
2018-11-27 09:04:58 +01:00
kegilbert 2a9c930f9b Add MBED_ALL_STATS_ENABLED to config system 2018-11-26 16:59:33 -06:00
deepikabhavnani da69da972f Add BlockDevice and Filesystem classes inside mbed namespace.
Adding new modules inside the namespace could be breaking change for existing code base
hence add `using namespace::class` for classes newly added to mbed namespace to maintian
backwards compatibility.

MBED_NO_GLOBAL_USING_DIRECTIVE is added to remove auto-addition of namespace
Macro guard `MBED_NO_GLOBAL_USING_DIRECTIVE` is added around namespace, to avoid
polluting users namespace.
2018-11-26 13:35:40 -06:00
deepikabhavnani 2df0289ae9 Resolve build issue for unittest
Error Resolved here is:
SingletonPtr.h:93:13: error: ‘NULL’ was not declared in this scope
2018-11-26 09:53:19 -06:00
Deepika f6c1a40b29 Add config options for socket statistics
1. MBED_CONF_NSAPI_SOCKET_STATS_ENABLE to enable the statistics
2. MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT max sockets statistics cached
2018-11-26 09:42:45 -06:00
Deepika 09b4bc07ce This is the initial version of stats implementation in network layer.
SocketStats Class is added to collect and provide the statistics information.
In this phase only socket information is collected and max sockets that can
be recorded at any time are configurable through 'MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT'

Network statistics can be enabled through a macro MBED_NW_STATS_ENABLED

More information on design is captured in #8743
2018-11-26 09:42:39 -06:00
Michal Paszta e101943cce Fix compilation warnings (apart from nanostack) 2018-11-26 14:27:48 +01:00
Vincent Coubard 1a14453da1 BLE: Add mechanism to track use of non compatible scan API. 2018-11-26 10:24:30 +00:00
Vincent Coubard 732b4255ce revert toolchain changes 2018-11-26 10:21:32 +00:00
Vincent Coubard 0c1e01952b Compilation fixes 2018-11-26 10:21:32 +00:00
Nir Sonnenschein 0283bb84e4
Merge pull request #8667 from davidsaada/kvstore_integration
KVStore & derived classes: design docs, implementation & configuration
2018-11-25 07:30:53 +02:00
David Saada e9c25e23a5 KVStore & derived classes: design docs, implementation & configuration
Implement the following:
KVStore base class
TDBStore class
FileSystemStore class
SecureStore class
Global APIs
Configuration framework
Design documentation
2018-11-24 17:43:35 +02:00
Martin Kojtal 52aea31655
Merge pull request #8702 from SenRamakri/sen_CrashReportingImpl
Crash Reporting implementation
2018-11-23 20:24:53 +01:00
Martin Kojtal 70dfbbfee4
Merge pull request #8189 from deepikabhavnani/wait_updated
Wait API updated to remove deepsleep lock
2018-11-22 11:01:27 +01:00
Martin Kojtal 5b42e2886f
Merge pull request #8607 from aashishc1988/ram_rom_fetch
Fetch ram/rom start/size
2018-11-22 10:49:50 +01:00
Senthil Ramakrishnan f59b99d889 Removing support for printing error-report after reboot and other minor fixes 2018-11-18 22:42:37 -06:00
Senthil Ramakrishnan 423b52e1c3 Fix crc calculation error, code-style issues and other fixes 2018-11-16 17:24:52 -06:00
Senthil Ramakrishnan a07a373c9f Change the reboot-max value semantics and code style and other fixes 2018-11-16 14:00:00 -06:00
Senthil Ramakrishnan 254062fc5a Add thread safety across reboot error info operations 2018-11-16 14:00:00 -06:00
Senthil Ramakrishnan 9ac31dbaef Enable crash capture feature for platforms with linkerscript changes 2018-11-16 13:59:59 -06:00
Senthil Ramakrishnan 6181394e37 Error and fault handling changes for crash reporting 2018-11-16 13:59:59 -06:00
Cruz Monrreal II 5c1c7bf71f Merge branch 'fix_astyle_error' of ssh://github.com/0xc0170/mbed-os into rollup-b.1 2018-11-15 18:26:09 -06:00
Aashish chaddha 0c594a42dc The check for managed bootloader support should be in regions and we need a try/catch when we call it.
Moved "bootloader_not_supported" check to where it was and handle that exception at only one place.

Removed ram/rom size info for realtek from targets.json. THe info we have is not correct.

was Not handling config exceptions from regions and ram_regions property

adding rom-ram info for REALTEK_RTL8195AM
2018-11-15 15:28:14 -06:00
Martin Kojtal 2422949398 Merge branch 'platform-lib-whitespace-patch' of https://github.com/kegilbert/mbed-os into dev_rollup 2018-11-15 13:59:30 +00:00
Martin Kojtal 3d859575d2 platform: fix coding style 2018-11-15 07:20:11 +00:00
Martin Kojtal 43615baf0e CThunkbase: fix coding style 2018-11-15 07:20:09 +00:00
Deepika ad736e9894 Add RAM/ROM memory statistics to system stats structure
Internal RAM / ROM memory size and start address of target can be
fetched using `mbed_stats_sys_get()` API.
2018-11-14 09:51:33 -06:00
kegilbert 44d3e62835 Patch whitespace inconsistencies in platform lib file 2018-11-13 19:08:44 -06:00
shileiyu 627064297e New target UNO_91H from RDA Microelectronics. 2018-11-10 18:15:26 +08:00
Cruz Monrreal e635613b28
Merge pull request #7849 from TacoGrandeTX/fix_rtc_settime
Low power timer needs to be reset when setting time
2018-11-08 10:50:04 -06:00
Cruz Monrreal 0fe6369950
Merge pull request #8488 from c1728p9/cthunk_overhaul
Rewrite CThunk so it does not execute from ram
2018-11-07 19:15:14 -06:00
Russ Butler 5a8727623b Rewrite CThunk so it does not execute from ram
Modify the implementation of CThunk so it does not execute from ram.
Instead is uses an array of functions in flash which can be allocated
as a thunk. The number of CThunks that can be used by an application
can be configured with MBED_CONF_PLATFORM_CTHUNK_COUNT_MAX.
2018-11-06 09:49:56 -06:00
Martin Kojtal 2ae9981bea Merge branch 'platform-doxy-typo-fix' of https://github.com/kegilbert/mbed-os into dev_rollup 2018-11-06 12:10:26 +00:00
RFulchiero d82990cd25 Low power timer needs to be reset when setting time.
Reset _rtc_lp_timer only if DEVICE_LPTICKER is defined.
2018-11-01 17:11:45 -05:00
Cruz Monrreal 430fb3e7ba
Merge pull request #8601 from kjbracey-arm/error_fmtcheck
Add format checking to printf-type APIs
2018-11-01 16:09:05 -05:00
kegilbert 766359c7c5 Typo fixes in Doxygen for Platform 2018-11-01 12:10:08 -05:00
Cruz Monrreal 3d09f3bd98
Merge pull request #8598 from VeijoPesonen/fix_atcmdparser_oob_handling
ATCmdParser: Fix OOB handling performance-wise
2018-10-31 18:52:21 -05:00
Cruz Monrreal b35799dd8c
Merge pull request #8329 from paul-szczepanek-arm/fix-namespace
Platform: fix missing namespace for SharedPtr
2018-10-31 12:35:25 -05:00
Amanda Butler c58c80e042
Make minor copy edits to mbed_wait_api.h
Make minor edits to existing text.
2018-10-31 11:12:35 -05:00
Martin Kojtal 56293af0e7
Merge pull request #8584 from kjbracey-arm/noreturn
system_reset is MBED_NORETURN
2018-10-31 14:46:46 +01:00
Kevin Bracey 638e071820 mbed_error.c: Fix format specifiers 2018-10-31 14:49:22 +02:00
Kevin Bracey 814d631c55 Add format checking to Stream methods 2018-10-31 14:26:35 +02:00
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