Commit Graph

670 Commits (3056ba730c6eb699521a0811f5a7ea69a36e87c6)

Author SHA1 Message Date
Kevin Bracey 3056ba730c mbed_die: Use wait_us not wait_ms
mbed_die was calling wait_ms in a critical section - this is deprecated
behaviour, and caused a fatal error in debug builds, potentially leading
to an infinite reboot loop if this was caused due to a reboot limit
halt.

Switch to using wait_us - this is safe in a critical section. This does
trigger a call to mbed_warning, due to the large parameter, but that is
harmless - it doesn't output anything to the console, and won't
overwrite the error context if it already contains something.
2019-01-30 13:29:13 +02:00
Kevin Bracey f60bb8f3a7 Second barrier for core_util_atomic_flag_clear
As barriers were added in #9247, review comments pointed out that atomic
stores needed a second barrier, and they got one. But atomic_flag_clear
was missed.
2019-01-29 10:45:20 +02:00
Senthil Ramakrishnan d0b95031c5 Print crash report reboot messages only for non-release builds 2019-01-23 17:40:05 -06:00
Senthil Ramakrishnan cc5969b1ec Remove printf completely and fix the optimization check 2019-01-22 16:04:47 -06:00
Martin Kojtal 4019efb21d
Merge pull request #9399 from paul-szczepanek-arm/fix-null-check
BLE: fix missing null checks on Gap event handler
2019-01-21 13:43:16 +01:00
paul-szczepanek-arm 42e4290160 error when there is no handler 2019-01-18 14:55:38 +00:00
Kevin Bracey 703e44031c Add atomic loads and stores and barriers
Add atomic load and store functions, and add barriers to the existing atomic
functions.

File currently has no explicit barriers - we don't support SMP, so don't
need CPU barriers.

But we do need to worry about compiler barriers - particularly if link time
optimisation is activated so that the compiler can see inside these
functions. The assembler or intrinsics that access PRIMASK for
enter/exit critical act as barriers, but LDREX, STREX and simple
volatile pointer loads and stores do not.
2019-01-18 09:32:04 +02:00
Martin Kojtal 53bb9868ed
Merge pull request #9405 from cmonr/fix-doxy
Travis: Fix doxy-spellcheck job
2019-01-17 17:21:14 +01:00
Martin Kojtal a1daecb200
Merge pull request #9280 from deepikabhavnani/refactor_a
Sleep manager implements all the API's in platform file
2019-01-17 12:40:03 +01:00
Cruz Monrreal II 26696c2f5b Fixed rtc doxygen spelling errors 2019-01-16 23:30:03 -06:00
Cruz Monrreal 5dbb4b9de9
Merge pull request #8497 from kegilbert/gettimeofday_patch
Add get/settimeofday retargets
2019-01-16 22:07:35 -06:00
Deepika a1a90518ed Update the header files
File was moved from hal -> platform folder, hence includes should be
changed accordingly.
2019-01-15 11:47:51 -06:00
deepikabhavnani e2a7b89a90 Sleep manager implements all the API's in platform/mbed_sleep_manager.changes
Not sure why mbed_sleep_manager.c was in hal, moving it to platform
2019-01-15 11:47:51 -06:00
kegilbert dafb01c755 Add get/settimeofday retargets 2019-01-11 14:30:44 -06:00
kegilbert 70b9b753db Add doxygen spellcheck jobs to Travis
Currently tests
    - drivers
    - platform
    - rtos
    - events
    - features/netsocket
2019-01-11 10:22:15 -06:00
Cruz Monrreal f8d7c31a9b
Merge pull request #9188 from SenRamakri/sen_ErrorUrlEnhance
Add more information to error url to enhance error analytics
2019-01-10 00:12:46 -06:00
Martin Kojtal 965f15da82
Merge pull request #9231 from kjbracey-arm/critical_volatile
critical sections: remove unnecessary volatile
2019-01-07 16:26:38 +00:00
Senthil Ramakrishnan f10ed4b286 Add more information to error url to enhance error analytics 2019-01-04 09:24:31 -06:00
bcostm f3b304d3af NUCLEO_H743ZI: enable crash capture 2019-01-04 10:03:36 +01:00
Kevin Bracey 70af016348 critical sections: remove unnecessary volatile
Critical section count/state variables are synchronised by IRQ disabling and
critical section calls themselves, so do not need to be volatile.

This eliminates a couple of unnecessary reads of the counter variable.
2019-01-03 11:06:44 +02:00
Senthil Ramakrishnan daa8b0e5c1 Disable printf in crash reporting for release builds 2018-12-20 13:47:35 -06:00
Alastair D'Silva 2617c5d55b Don't use define checks on DEVICE_FOO macros (mbed code)
The DEVICE_FOO macros are always defined (either 0 or 1).

This patch replaces any instances of a define check on a DEVICE_FOO
macro with value test instead.

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2018-12-20 10:16:42 +11:00
Cruz Monrreal 6f576009c7
Merge pull request #9061 from kjbracey-arm/more_mpu_work
More MPU work
2018-12-19 12:32:54 -06:00
Cruz Monrreal 80c6f5f8ee
Merge pull request #8972 from kjbracey-arm/merge_file_truncate
Merge feature-posix branch (FileHandle::truncate)
2018-12-17 14:49:56 -06:00
Kevin Bracey ae17f6ebba Add FileHandle::truncate and ftruncate
Add support for file truncation (or extension) to the abstract API.

No hooks to actual implementations in this commit.
2018-12-14 19:29:28 +02:00
Kevin Bracey bd413f1d82 Disable write buffer in debug builds (M3/M4)
As part of work to improve the debugging of exceptions, have
Mbed OS make an effort to make exceptions more precise in debug builds
at the cost of performance.

Related pyOCD work:

   https://github.com/mbedmicro/pyOCD/pull/430
2018-12-13 16:32:38 +02:00
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