Commit Graph

25632 Commits (c94d6a8cc7ef2a7599c76f156fc6ac646501f9a3)

Author SHA1 Message Date
Kevin Bracey c94d6a8cc7 Make events use RTOS API
Switch from CMSIS-RTOS to mbed C++ API, which are available in bare
metal build.

Other minor tidies, like removing unnecessary volatile.
2019-07-15 10:13:50 +03:00
Kevin Bracey a522dcfa0a Replace deprecated wait calls 2019-07-15 10:13:50 +03:00
Kevin Bracey fc8e8f67c6 Deprecate wait/wait_ms APIs 2019-07-15 10:13:50 +03:00
Kevin Bracey 04cb39da07 Minimal C thread API 2019-07-15 10:13:50 +03:00
Kevin Bracey 83b329cb71 RTOS API for bare metal
Provide partial RTOS API for bare metal builds - things that
can be done in a single threaded environment.

Allows more code to work in both RTOS and bare metal builds without
change, and in particular gives easy access to the ability to
efficiently wait for something occurring in interrupt.

Available in bare-metal:
* ThisThread
* osThreadFlagsSet to set flags on main thread (can be set from IRQ)
* EventFlags (can be set from IRQ)
* Semaphores (can be released from IRQ)
* Mutex (dummy implementation)

Not useful:
* ConditionVariable (could only be signalled from 2nd thread)
* RtosTimer (calls in a second thread context)
* Thread

Unimplemented:
* Mail, Queue, MemoryPool

Possible future work:
* ConditionVariableCS to act as IRQ signalled ConditionVariable
2019-07-15 10:13:50 +03:00
Kevin Bracey 38160035d4 rtos/mbed_lib.json: Correct indents 2019-07-15 10:13:49 +03:00
Kevin Bracey 89eba7303f Timed sleep rework 2019-07-15 10:13:49 +03:00
Kevin Bracey a1e1ab61a4 Switch SysTimer license to Apache 2019-07-15 10:13:49 +03:00
Kevin Bracey 20451082c1 Move SysTimer to platform, for non-RTOS use 2019-07-15 10:13:49 +03:00
Kevin Bracey 28b770510c CPU stats: strip more when disabled 2019-07-15 10:13:49 +03:00
Evelyne Donnaes 2d6db332e6
Merge pull request #11010 from jeromecoutant/PR_ASYNCSPI
FPGA SPI: ASYNC issue
2019-07-12 16:34:42 +01:00
Kevin Bracey d53bd6120d
Merge pull request #10274 from kjbracey-arm/atomic_template
Add Atomic<T> template
2019-07-12 14:26:03 +03:00
Evelyne Donnaes 0f39f01595
Merge pull request #11027 from vmedcy/pr/cy-lwip
PSOC6: add LwIP configuration for Cypress boards
2019-07-12 11:22:11 +01:00
Evelyne Donnaes 22c82dcb9c
Merge pull request #10692 from vmedcy/pr/psoc6-hal
PSOC6: initial integration of Cypress HAL
2019-07-11 17:28:23 +01:00
Volodymyr Medvid 579cd9a355 PSOC6: add LwIP configuration for Cypress boards 2019-07-11 15:47:38 +01:00
Arto Kinnunen 237ad40093
Merge pull request #10963 from devran01/pr/10888/fix
PSA TESTS: Include mbedtls/config.h before evaluating MBEDTLS_PSA_CRYPTO_C
2019-07-11 15:49:57 +03:00
Volodymyr Medvid b6524070eb PSOC6: TARGET_PSOC6_FUTURE doesn't implement DEVICE_I2CSLAVE 2019-07-11 15:43:25 +03:00
Evelyne Donnaes 7db0e83836
Merge pull request #11013 from tymoteuszblochmobica/revert-10938-iar
Revert "K64F, STM32F429: IAR linker scripts dynamic  heap fix"
2019-07-11 12:18:53 +01:00
Volodymyr Medvid adfac3c1f9 PSOC6: do not remove QSPI from FUTURE_SEQUANA targets
Since QSPi is not yet supported by base TARGET_PSOC6,
there is no need to remove the device label from
FUTURE targets that inherit from TARGET_PSOC6.

This will need to be reverted back once the QSPI support
is implemented for Cypress PSOC6 targets.
2019-07-11 12:51:52 +03:00
Volodymyr Medvid bab34cb467 PSOC6: cleanup DEVICE_QSPI mappings
Note: device_has: "QSPI" is still disabled for TARGET_PSOC6
(QSPI HAL implementation is incomplete).
2019-07-11 12:50:56 +03:00
Volodymyr Medvid 2524a67c38 Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-11 10:19:03 +01:00
Martin Kojtal bd88d3ba00
Merge pull request #10997 from mark-edgeworth/iotbtool-21_absolute_path
Removing absolute paths to compiler executables
2019-07-11 10:08:17 +01:00
Martin Kojtal 9fdfe3fa30
Merge pull request #11002 from NXPmicro/Add_Restricted_List
LPC546XX: Add pins to LPCXpresso restricted list
2019-07-11 08:14:20 +01:00
Martin Kojtal 90aaa83723
Merge pull request #11012 from c1728p9/remove_analog_out
Remove FPGA analog out test
2019-07-11 06:32:18 +01:00
Tymoteusz Bloch 878c93673b Reverted "K64F, STM32F429: IAR linker scripts dynamic heap fix"
due to side effect with K64F bootloader application jump after three consecutive HW resets.
2019-07-10 13:30:40 +02:00
Volodymyr Medvid 140b72d3ed Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-10 10:54:14 +01:00
Martin Kojtal 279f4cd584
Merge pull request #11011 from SiliconLabs/fix/fpga_tests/i2c
Allow re-initialising an I2C peripheral on Silicon Labs targets
2019-07-10 10:44:54 +01:00
Russ Butler 8fffb94be2 Remove FPGA analog out test
Remove the analog out test temporarily due to limitations of the
FPGA rev 2 hardware.
2019-07-10 07:39:30 +01:00
Steven Cooreman fb4d898f2e Allow re-initializing an I2C peripheral
Allows the FPGA based test to pass, but requires #11004 before it will
2019-07-09 23:37:11 +01:00
jeromecoutant d14d934f8d FPGA SPI: ASYNC issue 2019-07-10 00:30:13 +02:00
Mahesh Mahadevan 58ba83b6e4 LPC546XX: Add pins to LPCXpresso restricted list
FPGA GPIO tests cannot be run on certain pins

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-09 15:40:55 -05:00
Kevin Bracey c9faf244ea Test Atomic<T> with user T 2019-07-09 19:09:02 +03:00
Kevin Bracey e2f65ec4a9 Make atomic test use Atomic<T>
Make the atomic functional test use `Atomic<T>` rather than the
standalone functions - this then tests both layers simultaneously.
2019-07-09 19:09:02 +03:00
Kevin Bracey f9f073245b Add Atomic<T> template
Add a C++ `Atomic<T>` template to make atomics even easier. Basically
compatible with C++11 `std::atomic<T>`, but using the underlying
`core_util_atomic_xxx` functions from mbed_atomic.h, so appropriate for
synchronising with interrupts and optimised for uniprocessor.

One extra piece of functionality beyond the `core_util_atomic_xxx`
functions is the ability to have an arbitrary atomic type - eg a small
structure with 2 `uint16_t`s can be stored in a `uint32_t` container.
2019-07-09 19:09:02 +03:00
Kevin Bracey 5d2b37d205 mbed_atomic.h: Improve template type deduction
Avoid template ambiguities using type_identity_t.

Previously the compiler would be unable to figure out whether

     uint8_t x;
     core_util_atomic_store(&x, 0);

should invoke core_util_atomic_store<uint8_t>, matching the pointer
type, or core_util_atomic_store<int>, matching the value, leading to
an ambiguity error.

Templates now select only on the type of the atomic pointer parameter.
2019-07-09 19:09:02 +03:00
Kevin Bracey 3fd7e11595 mbed_atomic templates: add noexcept
Add noexcept for consistency with upcoming Atomic.h
2019-07-09 19:09:02 +03:00
Kevin Bracey f9f887d88e mbed_atomic_impl.h: Add pre-op (xxx_fetch) forms
Even though C/C++11 don't offer pre-op forms (that do the operation then
return the new value) of their freestanding functions, we will be making
them visible via pre-op operators on `Atomic<T>` (++, --, +=, -=, &=,
|=, ^=).

It is easier to do a pre-op than a post-op, as we can use one
fewer register in the assembler, so it's worth optimising for what will
be quite common cases. Make these forms accessible for `Atomic<T>`, but
don't document them for standalone use at this stage.
2019-07-09 19:09:02 +03:00
Kevin Bracey 607856ee9a Set unit tests to C++14
Adjust some non-C++11-compatible code that failed as a result.
2019-07-09 19:08:57 +03:00
Arto Kinnunen 28eb39c724
Merge pull request #10885 from kjbracey-arm/callback_variadic
Reduce Callback.h using C++11
2019-07-09 13:54:42 +03:00
Mark Edgeworth c8f33b1e45 Removing absolute paths to compiler executables
VSCode exporter was generating a launch config that contained absolute paths to the
compiler executables. It makes more sense to use the executables that are
installed into the system PATH.
2019-07-09 11:06:03 +01:00
Martin Kojtal f0ec856020
Merge pull request #10954 from fkjagodzinski/docs_update-watchdog_driver
Watchdog: Clean up the doxygen comments
2019-07-09 08:33:49 +01:00
Martin Kojtal ee5b6d2c74
Merge pull request #10976 from vmedcy/tests-mbed_drivers-ticker
Fix error in tests-mbed_drivers-ticker when LED2 is not connected
2019-07-09 08:33:25 +01:00
Martin Kojtal 647b5817ce
Merge pull request #10982 from jeromecoutant/PR_LPUART
STM32 LPUART minor update  for easy maintenance
2019-07-09 08:33:06 +01:00
Martin Kojtal 34dd527d4d
Merge pull request #10990 from fkjagodzinski/fix-reset_reason-doxy_json
Fix doxygen_options.json for ResetReason
2019-07-09 08:32:20 +01:00
Martin Kojtal 358046e472
Merge pull request #10989 from mprse/spi_fpga_basic_test_ext
SPI FPGA test extension + SPI driver fix (K64F)
2019-07-08 20:42:47 +01:00
Devaraj Ranganna 7ead3fedb8 Include psa/crypto.h instead of mbedtls/config.h.
Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-07-08 16:28:58 +01:00
Volodymyr Medvid d77fb26e9f PSOC6: fix license headers per review feedback 2019-07-08 18:25:03 +03:00
Filip Jagodzinski d06e12834c Fix doxygen_options.json for ResetReason
Add a missing DEVICE_RESET_REASON macro.
2019-07-08 15:55:25 +02:00
Arto Kinnunen cd4283e5fb
Merge pull request #10977 from vmedcy/tests-mbedmicro-rtos-mbed-malloc
Fix out-of-bounds array access in tests-mbedmicro-rtos-mbed-malloc
2019-07-08 16:39:22 +03:00
Arto Kinnunen 1264660314
Merge pull request #10972 from 0xc0170/test_target
add new target IM880B
2019-07-08 16:34:36 +03:00