Commit Graph

1099 Commits (5ab6f1cef68349c717b7e4e77652ffe89f56b7c3)

Author SHA1 Message Date
Kevin Bracey 5ab6f1cef6 Make readdir reentrant
Remove the static allocation for the dirent, and allocate it from the
heap during opendir().

Removing the static data can reduce RAM usage on some toolchains when
directories are not being used. The static allocation sometimes is
combined with the file handle array and can't be dropped by the linker.

Original readdir() was not thread-safe at all.

This was in violation of POSIX which states the result of readdir "is
not overwritten by another call to readdir() on a different directory
stream."

POSIX also defines readdir_r() as separate totally reentrant form where
the caller allocates the dirent, but this is generally deprecated as it
opens the door for an inadequate allocation causing a stack smash. Full
reentrancy is not typically necessary - having readdir()'s buffer data
be per-DIR is generally sufficient.
2020-09-04 16:58:23 +03:00
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
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