Commit Graph

1152 Commits (7e2acee49a35d1744efe03aa3ab5c17493b51a22)

Author SHA1 Message Date
Martin Kojtal 4a68b8af89
Merge pull request #13486 from rajkan01/fix_malloc_overhead_calculation
Fix heap stats overhead_size calculation
2020-09-03 11:38:41 +01:00
Lingkai Dong d6a2269de3 Restructure platform/randlib
* Move mbed-client-randlib/ headers into include/
  (Note: we don't rename it to "randlib" because this library
   is mirrored to https://github.com/ARMmbed/mbed-client-randlib,
   and "mbed-client-randlib" may be reference by some projects)
* Move the standalone local unit test into tests/unit
2020-09-02 12:31:00 +01:00
Lingkai Dong 9b1e0a38fe Move mbed-client-randlib -> platform/randlib 2020-09-02 12:31:00 +01:00
Lingkai Dong af1950fb16 Add include/ path for mbed-trace 2020-09-02 12:30:59 +01:00
Lingkai Dong a88438ce04 Move mbed-trace into platform 2020-09-02 12:30:59 +01:00
Hugues Kamba 834e530abd CMSIS: Restructure ported CMSIS_5
See docs/adr/0001_cmsis_component_source_structure_recommendations.md
For details information.
2020-09-01 15:55:13 +01:00
Rajkumar Kanagaraj f3c9132637 Incorporated the review comments 2020-09-01 14:46:36 +01:00
Anna Bridge b3c19227a4
Merge pull request #13459 from 0xc0170/fix_platform_component
platform: fix internal platform headers
2020-08-25 15:53:12 +01:00
Rajkumar Kanagaraj d30ba6ba62 Fix malloc internal overhead size calculation for newlib and newlib-nano 2020-08-24 15:07:36 +01:00
Martin Kojtal 2c18e93979
Update platform/source/mbed_os_timer.cpp
fix the typo

Co-authored-by: Lingkai Dong <lingkai.dong@arm.com>
2020-08-21 14:55:58 +01:00
Rajkumar Kanagaraj 118c01016b Move FEATURE_EXPERIMENTAL_API for PSA to platform 2020-08-21 14:35:10 +01:00
Martin Kojtal 207a164c08
Merge pull request #13434 from LDong-Arm/move_drivers_platform_tests
Move Callback tests to platform, USB tests to drivers
2020-08-21 13:50:22 +01:00
Martin Kojtal a6ce2c53a0 platform: move internal headers to internal/
They belong to internal folder to follow our guideline, not in source as they were.
2020-08-20 08:58:00 +01:00
Martin Kojtal 8078e20cb4 platform: remove platform/ prefix for source
If we take platform as a component, platform/source would be outside of this component.
I removed the prefix as these are implementation specific (they are located in source folder,
not in include as the others).
2020-08-18 15:55:39 +01:00
mbedmain 83fa12183b Update Mbed version block 2020-08-16 20:59:02 +01:00
Lingkai Dong bf3e1237aa Move mbed_functional tests into platform/tests/TESTS 2020-08-14 17:53:19 +01:00
Ashok Rao a78554ebfa Fixing .astyleignore conflict 2020-07-31 15:50:03 +01:00
Ashok Rao 0d9a1cc24e Adding required host_tests 2020-07-31 15:15:08 +01:00
Matthew Macovsky b7c0e89eb9 Fix IAR assembler errors on except.S
Fixes two errors produced on except.S by the IAR assembler (as seen in
issue #13200).

The first: "'ALIGN' is illegal. Use directive ALIGNROM or ALIGNRAM (the
first parameter is raised to the power of 2, the second is a 32-bit fill
value)."
Fixed by changing ALIGN to ALIGNROM 2 to align to a 4-byte boundary
(mirroring what ALIGN does in the ARM except.S).

The second (on THUMB): "Must be placed inside a section"
Fixed by moving THUMB after the SECTION directive so that it affects
that section.
2020-07-29 08:25:41 -07:00
George Psimenos 99803be98f Relocate platform unit tests 2020-07-28 10:16:47 +01:00
Ashok Rao 09734a861d Refactoring \platform as per directory structure proposal.
Mbed OS will soon be changing directory structure to the below:

```
[component name]
├── mbed_lib.json
├── CMakeList.txt
├── README.md
├── include
│   └── [component name]
│       └── internal
├── source
└── tests
    ├── <framework>
    │   └── <test suite one>
    ├── UNITTESTS
    │   └── <unit test suite one>
    └── TESTS
        └── <greentea test suite one>
```
This PR implements the above new directory structure for the current \platform directory.
**NOTE:** This PR does NOT include the refactoring of UNITTESTS as shown in the above directory structure. This will be done in a subsequent PR.
2020-07-28 10:14:44 +01:00
adbridge a2ada74770 Update Mbed version block 2020-07-15 10:47:30 +01:00
Marc Emmers a20ff63574 Add include <iterator> 2020-07-09 12:23:00 +02:00
Marc Emmers dfa8ea714d Add begin, end, rbegin and rend iterator functions to Span 2020-07-08 17:14:39 +02:00
adbridge a6207cadad Update Mbed version block 2020-06-24 16:41:27 +01:00
Martin Kojtal 3e42991289
Merge pull request #13046 from hugueskamba/hk_use_chrono
Use std::chrono based functions
2020-06-18 22:16:00 +02:00
Devaraj Ranganna 76e911c5ef psa: Replace Mbed PSA with TF-M
Add TF-M to Mbed OS, replacing the previous PSA implementation for
TF-M-capable targets. This commit adds files imported from TF-M, without
modification. The version of TF-M imported can be found in
`features/FEATURE_PSA/TARGET_TFM/VERSION.txt`.

These changes switch to TF-M as the sole PSA implementation for v8-M and
dual core targets, with TF-M running on the secure side and Mbed OS
running on the non-secure side. Single core v7-M targets will continue
to have PSA implemented via PSA emulation, implemented by Mbed OS.

Move or remove many PSA-implementing files, as PSA will be provided by
TF-M on non-single-v7-M targets. Delete any files that are not relevant
for PSA emulation mode.
 - Remove imported TF-M SPM
 - Remove Mbed SPM and tests
 - Remove Mbed-implemented PSA services and tests
 - Remove PSA_SRV_IMPL, PSA_SRV_IPC, PSA_SRV_EMUL and NSPE.
 - Replace PSA_SRV_EMUL and PSA_SRV_IMPL with MBED_PSA_SRV
 - Remove any files autogenerated by
   "tools/psa/generate_partition_code.py", which no longer exists.

Add new feature `PSA` to support PSA in Mbed OS.

Move the Mbed OS implementation of PSA services for v7-M targets (which
employ PSA emulation, and don't yet use TF-M) to
features/FEATURE_PSA/TARGET_MBED_PSA_SRV. Update the `requires`
attribute in TESTS/configs/baremetal.json to avoid breaking baremetal
testing builds.

Update .astyleignore to match new directory structure

Update Mbed TLS importer to place files into FEATURE_PSA

Create the following generic PSA targets:

* `PSA_Target` (Root level PSA generic target)
* `PSA_V7_M` (Single v7-M PSA generic target)
* `PSA_DUAL_CORE` (Dual-core PSA generic target)
* `PSA_V8_M` (v8-M PSA generic target)

Flatten MUSCA_NS and private MUSCA targets into public MUSCA targets.

Move mcuboot.bin to flat location (removing prebuilt folder)

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-06-18 12:16:20 +01:00
Martin Kojtal 62c2431344
Merge pull request #12824 from kjbracey-arm/faultasm
Optimise fault handler assembly
2020-06-18 09:43:00 +02:00
Hugues Kamba a3f4cf212d Use std::chrono based functions
The chrono based functions improve readability. Using them also removes
warnings related to usage of deprecated warnings.
2020-06-17 14:52:50 +01:00
Anna Bridge d0d35c2743
Merge pull request #12772 from pea-pod/scoped-enums
Add enum class flag definition to platform
2020-06-12 11:39:29 +01:00
Martin Kojtal b287d98d2c
Merge pull request #13002 from pea-pod/simplify-mbed-assert
Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword
2020-06-10 11:46:55 +02:00
Martin Kojtal dc30e1bf60
Merge pull request #13015 from jeromecoutant/PR_IARTRIVIAL
Force callback non-trivial for IAR
2020-06-05 10:45:21 +02:00
Martin Kojtal 7ae621ee86
Merge pull request #12988 from jeromecoutant/PR_OS_TIMER
OS timer uses LPTICKER by default, then USTICKER
2020-06-04 15:15:43 +02:00
adbridge 782fa9bb18 Update mbed version number 2020-06-02 11:38:04 +01:00
pea-pod 5fb87eb0b0 Simplify MBED_STATIC_ASSERT for C11 and C++14 2020-06-02 00:16:49 -05:00
jeromecoutant d8fc1e9121 Force callback non-trivial for IAR 2020-05-25 15:29:27 +02:00
pea-pod 77a1a72c46 Add enum class flag definition to platform 2020-05-24 00:23:06 -05:00
jeromecoutant a7c9601d08 OS timer uses LPTICKER by default, then USTICKER
This PR makes the bare-metal mode work automatically
regardless of the tickless-from-us-ticker setting
- in non RTOS mode
- and in RTOS tickless mode
2020-05-19 12:34:11 +02:00
Martin Kojtal 37ee008b90
Merge pull request #12961 from MarceloSalazar/remove_nrf51
Remove nRF51 targets
2020-05-15 08:08:26 +02:00
jeromecoutant dd46dfccb2 STM32F4 code cleaning 2020-05-14 13:55:22 +02:00
Marcelo Salazar ccd95f1e14 Remove nRF51 targets
The following public nRF51 targets are being removed:

- NRF51822
- NRF51_DK
- NRF51_MICROBIT
2020-05-13 10:36:50 +01:00
Martin Kojtal f13db5fa76
Merge pull request #12906 from kjbracey-arm/chrono_asserts
Work around C++14 assert problem
2020-05-12 14:27:04 +02:00
Martin Kojtal 7698b34e8c
Merge pull request #12938 from kjbracey-arm/chrono-sleep-correct
Correct core RTOS sleep routine timing
2020-05-07 13:58:56 +02:00
Kevin Bracey 3f67eed31c Correct core RTOS sleep routine timing
Chrono conversions inadvertantly changed the core timed sleep routine
used by the RTOS idle to use `OsTimer::update_and_get_tick()` instead of
`OsTimer::get_tick()`.

Correct this, and expand/clarify documentation and naming to try to
prevent recurrence.

Another minor fix observed while inspecting code - `OsClock` can't just
use `milliseconds`, it should match the period of `OsTimer`, which
theoretically can be different.
2020-05-07 11:43:01 +03:00
Marcelo Salazar 4083469d09 Remove Ublox targets 2020-05-06 16:39:29 +01:00
Martin Kojtal dbf05ceaed
Merge pull request #12735 from Patater/musca-tfm
Make MUSCA B1 and MUSCA A1 TF-M ready
2020-05-04 11:06:48 +02:00
Martin Kojtal 32ea606add
Merge pull request #12889 from hugueskamba/hk_stdio_config
Convert newlines on all terminal (tty) devices by default
2020-04-30 14:53:41 +02:00
Martin Kojtal 0df2188f3e
Merge pull request #12761 from kjbracey-arm/callback_trivial
Callback: Trivial default
2020-04-30 14:50:40 +02:00
Kevin Bracey fd933b4c72 mbed_chrono: restore asserts
Now that we've got a workaround for ARMC6, asserts can be restored.
2020-04-30 14:14:25 +03:00
Kevin Bracey ff2a928091 Work around ARM C 6 constexpr assert
ARMC6's assert macro does not work in C++14 constexpr context as it should.
By defining __DO_NOT_LINK_PROMISE_WITH_ASSERT, we deactivate the
extension that breaks it (having `__promise` inside `assert` - see the
compiler manual).

The extension does not appear to be useful - we have no code using
ARMC6's `__promise` directly, and putting a `__promise` inside the
assert does not appear to affect code generation in my tests.
2020-04-30 14:14:25 +03:00
Jaeden Amero 808da40695 musca: Use the default baud rate
Avoid surprising users. Use the Mbed OS default baud rate. Applications
that want to see TF-M debug prints can both enable and set their baud
rate at the application level. Mbed OS should not turn on TF-M debug
prints nor surprise the user with a non-default baud rate.

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-30 11:32:10 +01:00
Hugues Kamba 5cb7bd5cca Convert newlines on all terminal (tty) devices by default
Applications can reduce their ROM usage by replacing
"\r\n" by "\n".
2020-04-30 10:56:27 +01:00
Martin Kojtal d1ae0d570c
Merge pull request #12425 from kjbracey-arm/chrono
C++ Chrono support
2020-04-30 11:41:43 +02:00
Jaeden Amero fcf427ac11 psa: Remove S-mode only code
Remove all PSA S-mode only code, as it is unused. Only PSA S targets
would use the code, and we've removed those targets in a previous
commit.

Ensure all tests for S-mode code we are deleting is also removed, even
if that code would run in NS-mode. Keep any tests that also test our PSA
emulation support (for single v7-M targets).

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-27 09:51:13 +01:00
Kevin Bracey 8e3e19837a More Chrono test fixes
* Timer test - handle removal of Timer(ticker_data_t *)
* Timer test - use Chrono, don't test deprecated methods
* Kernel tick count test - TEST_ASSERT_WITHIN -> TEST_ASSERT_INT_WITHIN
* Mutex test - fix up Chrono changes
* SysTimer test - adapt to SysTimer Chrono changes
* Thread test - use Chrono
* SysTimer - devirtualize destructor
2020-04-27 10:19:08 +03:00
Rajkumar Kanagaraj a10dafdda8 Fix the CI build issue 2020-04-27 10:19:08 +03:00
Kevin Bracey b17355f588 mstd_mutex: Add missing Chrono bits 2020-04-27 10:19:08 +03:00
Kevin Bracey a88622527f Add mbed_chrono.h for handy extensions 2020-04-27 10:19:08 +03:00
Kevin Bracey f4e0ea2c75 Add Chrono support to Kernel and SysTimer 2020-04-27 10:19:08 +03:00
Kevin Bracey b6a7a0896e Streamline crash data access
Use correctly-typed external definition for the crash data region, and
eliminate unnecessary pointer indirection.

Results in a small ROM saving even with crash capture disabled, as there
was a pointer for the fault context store in either case. The pointer
isn't needed, as the context store location is fixed according to the
configuration flag.
2020-04-24 10:59:13 +03:00
Kevin Bracey 03ce9190f9 Optimise fault handler assembly
Fault handler assembly was very simplistic. Optimise for a 112 byte saving.
2020-04-23 11:28:35 +03:00
Kevin Bracey c1641e79c5 Reformat except.S
Tidy up formatting, and make all 3 toolchain versions more consistent,
for ease of diffing and transferring changes between them.
2020-04-23 11:28:35 +03:00
Hugues Kamba d6b764e75f Remove deprecated Platform header files 2020-04-16 09:28:27 +01:00
Martin Kojtal d4da29840f
Merge pull request #12758 from hugueskamba/hk_fix_microlib_minimal_console
Fix: Return the correct std I/O device handle for Microlib in retarget code
2020-04-15 09:24:17 +02:00
MarceloSalazar a15f6a43ad General clean-up of unsupported targets 2020-04-09 15:36:21 +01:00
Martin Kojtal 7fce7f552c
Merge pull request #12572 from rajkan01/waitapi_remove_deprecated
Remove mbed wait deprecated APIs
2020-04-09 14:57:46 +02:00
Rajkumar Kanagaraj 9739b565b2 Fix the CI build issue 2020-04-08 10:35:07 +01:00
Rajkumar Kanagaraj 83be3f24a5 Remove mbed wait deprecated APIs 2020-04-08 10:35:07 +01:00
Hugues Kamba eca09b7c17 Fix: Return the correct std I/O device handle for Microlib in retarget code
Return the correct filehandle based on the mode requested. The mode is used
as the pathname is always the default one (":tt") for Microlib. The
previous implementation relied on three successive calls to open the std
I/O device handles, this was not the case.
2020-04-07 13:10:20 +01:00
Kevin Bracey 616b4e7bd8 Callback: Trivial default
Turn off `callback.non-trivial` by default to save ROM space.
2020-04-06 09:45:51 +03:00
Kevin Bracey 874e36e05a Fully enforce NonCopyable
Make NonCopyable fully operational so it gives compile errors in all
build profiles.
2020-03-31 19:01:42 +03:00
Martin Kojtal b090065dec
Merge pull request #12708 from rajkan01/ARM_compiler_version
Remove compatibility for Arm Compiler versions prior to 6.01.0050
2020-03-31 10:36:56 +02:00
Martin Kojtal 5a07aab474
Merge pull request #12569 from evva-sfw/feature/mbed-error-weak
Replace with weak mbed_error_hook implementation (deprecate the hook function)
2020-03-30 10:02:29 +02:00
Rajkumar Kanagaraj 47e68b20cb - Remove the pre-processor directive __ARMCC_VERSION >= 6010050
- Add the code prior to 6.01.0050 versions.
2020-03-27 14:37:01 +00:00
Anna Bridge 009ff7adf3
Merge pull request #12036 from kjbracey-arm/callback_fiddle
Callback extension and optimisation
2020-03-27 14:07:20 +00:00
Martin Kojtal cb131c39b3
Merge pull request #12629 from evedon/ed-rtos-api
Add "rtos-api" to bare metal
2020-03-26 18:21:05 +01:00
phst 75f8c70935 Fix Astyle error 3 2020-03-25 16:20:43 +01:00
phst 406e7a2f4f Fix Astyle error 2 2020-03-25 16:05:55 +01:00
phst 413b6d62f4 Fix Astyle error 2020-03-25 15:37:13 +01:00
phst ac20dfc745 Fix Astyle error 2020-03-25 14:20:21 +01:00
Martin Kojtal ddd3b013e8
Merge pull request #12632 from evedon/ed-minimal-snprintf
Fix snprintf in minimal-printf library
2020-03-25 11:34:23 +01:00
Evelyne Donnaes a3c3656557 Removed mbed_minimal_formatted_string_character
mbed_minimal_formatted_string_character is no longer
required since fputc does the new line conversion.
This results in a small Flash saving.
2020-03-23 13:51:47 +00:00
Evelyne Donnaes 94acb5da50 Fix snprintf in minimal-printf library.
mbed_minimal_putchar assumed that buffer being NULL meant that it
should print to a file. This caused a system crash when calling
snprintf with both buffer and stream set to NULL.
It is valid to call snprintf with a NULL buffer; nothing should
be outputted, but the string length should be measured.
2020-03-23 13:46:12 +00:00
Rajkumar Kanagaraj eb40dbcc20 Remove ARMC5 reference from Mbed OS platform 2020-03-19 10:48:14 -07:00
Martin Kojtal 4f45b95ca3
Merge pull request #12607 from facchinm/sys_stat_h_inclusion
Use toolchain's struct stat if available
2020-03-17 09:30:03 +01:00
Evelyne Donnaes ebf5d27788 Add "rtos-api" to bare metal 2020-03-16 11:40:49 +00:00
Anna Bridge 0699ac4e7e
Merge pull request #12571 from kjbracey-arm/noncopy
C++11-ify NonCopyable
2020-03-12 11:07:05 +00:00
Kevin Bracey bb733f1ee8 Callback updates
* Optimise clearing by adding `nullptr` overload. This overload means
  `Callback(NULL)` or `Callback(0)` will no longer work; users must
  use `Callback(nullptr)` or `Callback()`.
* Optimise clearing by not clearing storage - increases code size of
  comparison, but that is extremely rare.
* Reduce ROM used by trivial functors - share copy/destroy code.
* Config option to force trivial functors - major ROM saving by
  eliminating the "operations" table.
* Config option to eliminate comparison altogether - minor ROM saving by
  eliminating zero padding.
* Conform more to `std::function` API.
2020-03-11 15:46:03 +02:00
Anna Bridge 33f3049286
Merge pull request #12233 from bulislaw/minimal_printf_default
Enable minimal-printf by default for all builds
2020-03-10 12:13:11 +00:00
Martino Facchin b865d90bff Use toolchain's struct stat if available
Fixes https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues/49

The patch should be as safe as possible, since __has_include is guarded itself.
2020-03-10 10:17:41 +01:00
Kevin Bracey 489525c191 C++11-ify NonCopyable
Define copy operators public and deleted rather declaring them private
and undefined. Will give immediate compilation errors rather than
delayed linking errors.
2020-03-05 15:45:39 +02:00
Philipp Steiner 3dcd279fa1 correct comment 2020-03-05 09:13:55 +01:00
Philipp Steiner e3917e495a set mbed_set_error_hook() to deprecated 2020-03-05 08:49:17 +01:00
Philipp Steiner 17e8b9c756 Remove mbed_set_error_hook and replace with weak mbed_error_hook implementation 2020-03-04 12:21:22 +01:00
Martin Kojtal ba9496451a
Merge pull request #12554 from rajkan01/fliesys_remove_deprecated
Remove FileSystemLike deprecated APIs
2020-03-04 08:23:02 +00:00
Martin Kojtal b4034dc547
Merge pull request #12551 from rajkan01/mpm_remove_deprecated
Remove mbed power management deprecated API
2020-03-04 08:22:52 +00:00
Martin Kojtal b611de8b6b
Merge pull request #12550 from rajkan01/mbedint_remove_deprecated
Remove mbed interface deprecated API
2020-03-04 08:22:27 +00:00
Martin Kojtal 40fb45e4da
Merge pull request #12549 from rajkan01/fh_remove_deprecated
Remove FileHandle deprecated APIs
2020-03-04 08:21:52 +00:00
Martin Kojtal 6e6603f97d
Merge pull request #12534 from rajkan01/callchain_remove_deprecated
Remove the deprecated CallChain class and its APIs
2020-03-03 14:57:59 +00:00
Martin Kojtal 2dc5520c2b
Merge pull request #12553 from rajkan01/dh_remove_deprecated
Remove DirHandle deprecated APIs
2020-03-03 14:57:16 +00:00