Commit Graph

660 Commits (96e0689204d375e23bf69d7787a18ba07182f085)

Author SHA1 Message Date
Bartek Szatkowski 96e0689204 CMSIS/RTX: Pre-processor defines used for assembly
CMSIS repo does not support pre-processor defines, hence multiple assembly
files are added for secure/non-secure and floating point tools.
Mbed OS tools support assembly file pre-processing, but the build system
does not support multiple assembly files for each target, hence updating
the assembly files.

1. Patch RTX so irq_cm4f.S files work with no FPU targets
2. Patch RTX so irq_armv8mml.S files to work with and without FPU
2. Patch RTX so irq_armv8mml.S and irq_armv8mbl.S files to work with secure and
   non-secure builds
2020-05-11 10:36:13 +01:00
deepikabhavnani 9549fff786 CMSIS/RTX: Move Idle and Timer thread stack to bss section.
In case of ARM compiler, idle and timer thread stack though assigned
to `.bss.os` section since not zero initialized are part of `data` section.

In this commit, we are moving stacks of idle and timer thread to bss
section and thereby saving ROM space.
2020-05-11 10:35:25 +01:00
Bartek Szatkowski dd21ea0ae0 CMSIS/RTX: Fix using FALSE/TRUE with preprocesor 2020-05-11 10:34:45 +01:00
Bartek Szatkowski 08ab8cc47d CMSIS/RTX: Allow overwriting mutex ops for ARMC 2020-05-11 10:28:12 +01:00
Bartek Szatkowski db2ef01580 CMSIS/RTX: Patch RTX4 to preserve osThreadDef compatibility
mbed OS used older RTX4 version and with osThreadDef accepting only 3
parameters, to preserve compatibility we hardcode the 'instances'
parameter to 1.

(cherry picked from commit 428acae1b2ac15c3ad523e8d40755a9301220822)
(cherry picked from commit 4360b7bbf8)
2020-05-11 09:47:34 +01:00
Martin Kojtal 48747cdb26 [CMSIS_5]: Updated to b5f0603d6 2020-05-11 09:47:34 +01: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
Martin Kojtal d1ae0d570c
Merge pull request #12425 from kjbracey-arm/chrono
C++ Chrono support
2020-04-30 11:41:43 +02:00
Martin Kojtal 6052b4540a
Merge pull request #12872 from rajkan01/kernel_interface_func_doxygen
Add the Doxygen note to non-supported RTOS kernel APIs.
2020-04-29 22:17:14 +02:00
Lingkai Dong 81e676b86b RTOS: use default boot-stack-size for nRF as SoftDevice is no longer used
Previously we overrode nRF targets to have a larger stack
due to memory required by SoftDevice. Having deprecated SoftDevice
in favour of Cordio for BLE (#12674), such requirement does not
apply anymore.
2020-04-27 17:22:49 +01:00
Rajkumar Kanagaraj 57e0063e8d Add the Doxygen note to non-supported RTOS kernel APIs. 2020-04-27 14:38:14 +01:00
Kevin Bracey e5e45d83e7 Chrono test fixes
* Remove ambiguity in single-parameter Queue::put and get
* Fix type problems in RTC test - add missing include
* Don't attempt to use TimerEvent default constructor
* Remove references to Timer::read_duration
2020-04-27 10:19:08 +03:00
Rajkumar Kanagaraj c71c980ccd Fix the CI build and unit test issue 2020-04-27 10:19:08 +03:00
Kevin Bracey 4575ad3f23 Add Chrono support to Queue,MemoryPool,Mail 2020-04-27 10:19:08 +03:00
Kevin Bracey f6e8ecadec Add Chrono support to EventFlags 2020-04-27 10:19:08 +03:00
Kevin Bracey 4f2fa53b37 Thread: minor space optimisation 2020-04-27 10:19:08 +03:00
Kevin Bracey 2c4e59012f Add Chrono support to Mutex 2020-04-27 10:19:08 +03:00
Kevin Bracey 53cfe0f610 Add Chrono support to Semaphore 2020-04-27 10:19:08 +03:00
Kevin Bracey 0223d92f7e Add Chrono support to ThisThread 2020-04-27 10:19:08 +03:00
Kevin Bracey fdc697ee85 Add Chrono and predicate support to ConditionVariable 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
Martin Kojtal 31e3305c82
Merge pull request #12818 from rajkan01/rtos_driver_doxygen_note
Add the Doxygen note to non-supported RTOS and Driver class.
2020-04-21 15:48:18 +02:00
Rajkumar Kanagaraj 9b2cea75ad Add the Doxygen note to non-supported RTOS and Driver class. 2020-04-20 18:24:37 +01:00
Martin Kojtal a79d3ce18d
Merge pull request #12271 from jainvikas8/jae-feature-twincpu-6-mbed-os-integration
Make cypress psoc64 TFM ready and also add TF-M initialization
2020-04-17 15:48:58 +02:00
Martin Kojtal dcd863bfe9
Merge pull request #12736 from Patater/rtosv2-compat
rtos: Improve CMSIS-RTOSv2 app compatibility
2020-04-17 09:29:01 +02:00
Jaeden Amero 07a84ec10a psa: Remove MBED_SPM code
All MBED_SPM targets have been removed previously, via commits
5cc66282dd ("PSOC6: remove PSA targets") and 115b09aba43b ("psoc6:
Remove FUTURE_SEQUANA and FUTURE_SEQUANA_M0"). Remove all the dead
MBED_SPM code, as no targets use it.

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-16 14:10:54 +01:00
Devaraj Ranganna fa5a954031 rtos: Improve CMSIS-RTOSv2 app compatibility
Some non-Mbed-OS, pre-existing CMSIS-RTOSv2 applications depend on
CMSIS-RTOSv2 Automatic Dynamic Allocation, also known as Object-specific
memory pools. Mbed OS doesn't by default provide any memory to the
CMSIS-RTOSv2 Automatic Dynamic Allocation pool, as doing so would waste
memory if the feature is not used; even if the feature is used, as a
platform, Mbed OS can't know how many objects of which types will be
created by an application and therefore will either waste memory or not
provide enough memory in a hard to debug manner. Portable CMSIS-RTOSv2
applications depending on CMSIS-RTOSv2 Automatic Dynamic Allocation
should instead configure the memory pools themselves, as applications
know best their memory requirements.

Add Mbed configuration options which can be used by applications to
control the amounts of memory available to the CMSIS-RTOSv2 Automatic
Dynamic Allocation subsystem. This enables portable CMSIS-RTOSv2
applications, which can run on any CMSIS-RTOSv2 OS, to be able to run on
Mbed OS as well.

RTX's configuration options for CMSIS-RTOSv2 memory are documented at
http://www.keil.com/pack/doc/CMSIS_Dev/RTOS2/html/config_rtx5.html

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-15 18:08:14 +01: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
Vikas Katariya 9b7ef82b40 psa: Init IPC, Mailbox and Non-secure Interface
These changes are for TFM_DUALCPU and TFM_V8M platforms.
The initialization happens after mbed-os kernel is kicked off and
when the thread is up and running.

We are initializing the following for TFM_DUALCPU platforms:
* IPC Interrupts for syncing multi-core platforms.
* NS Mailbox to receive messages.
* NS interface.

We are only initializing Non-secure interface for TFM_V8M platforms.

mbed_tfm_init() in tfm_mbed_boot.c overrides the WEAK mbed_tfm_init()
for a specific platform.

Signed-off-by: Vikas Katariya <vikas.katariya@arm.com>
2020-04-03 15:48:58 +01:00
Martin Kojtal 6678efe571
Merge pull request #12696 from 0xc0170/fix_boot_iar_vector
rtos: declare vector table type as in Technical Note 11578
2020-04-01 12:22:21 +02: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 5cbf666347 rtos: fix iar vector table type
Following IAR guide for RAM vector table, this is in the code snippet there:

```
extern void * __vector_RAM_table [];
void main(void)
```

Found in https://github.com/ARMmbed/mbed-os/pull/12547
2020-03-30 13:37:15 +01: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
Rajkumar Kanagaraj a6b78c6429 Remove Semaphore deprecated APIs 2020-03-16 09:37:45 -07:00
Evelyne Donnaes 4df8432523 Updated doxygen for Mail get API 2020-03-11 16:25:11 +00:00
Anna Bridge f6c6a9c4d6
Merge pull request #12601 from rajkan01/rtostimer_remove_deprecated
Remove RtosTimer deprecated class
2020-03-11 12:40:48 +00:00
Rajkumar Kanagaraj 30852be00a Change Mutex lock and unlock API return value to void 2020-03-10 05:14:19 -07:00
Rajkumar Kanagaraj 8ae2ab404a Remove RtosTimer deprecated class and its APIs 2020-03-09 09:52:29 -07:00
Rajkumar Kanagaraj 3674bd1842 Remove Mutex deprecated API 2020-03-06 09:39:30 -08:00
Martin Kojtal 2e7fa8ba6b rtos: fix SPDX identifiers 2020-02-21 07:00:57 +00:00
Martin Kojtal aa4e7b17aa rtos: add SPDX identifiers 2020-02-21 07:00:56 +00:00
Martin Kojtal 5165559a2c
Merge pull request #12142 from kjbracey-arm/thread_rm510
Thread: remove methods deprecated in 5.10
2020-02-03 15:09:34 +00:00
Seppo Takalo c352488412 Disable write buffering on debug builds.
In mbed_start_application() there was a code that was supposed to
set DISDEFWBUF to one when running a debug build. However, this code
was in the wrong place, as this function is only called from
bootloader.

Move the code to correct place so that standalone applications use it
as well.

For the reference of DISDEFWBUF bit, see
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/CHDCBHEE.html
2020-01-30 16:19:28 +02:00
Kevin Bracey 8b02c4ed1c Add missing <string.h> includes 2020-01-09 14:52:54 +02:00
Kevin Bracey a0197dba49 Thread: remove methods deprecated in 5.10 2020-01-08 16:47:18 +02:00
Martin Kojtal fc2a71064d
Merge pull request #12068 from rajkan01/feature_bare_metal
Enabling small C library option and deprecating uARM toolchain
2020-01-03 11:35:48 +00:00
Rajkumar Kanagaraj 6a8c43252b Fix the CI build issue 2020-01-02 02:46:21 -08:00
Anna Bridge 06734e0f57
Merge pull request #12141 from kjbracey-arm/thread_rm51
Thread: remove constructors deprecated in 5.1
2019-12-24 11:42:43 +00:00
jeromecoutant 5cedd3320c STM32F0: clean main-thread-stack-size setting 2019-12-23 12:29:40 +01:00