Commit Graph

33024 Commits (26c6b75d3b3af8c50238f372591bea9f58187bed)

Author SHA1 Message Date
Lingkai Dong 86e7bc559b CMake: Fix Mbed TLS compilation for Cortex-M0/0+/1/M23
Due to a known issue in Mbed TLS's architecture determination
(ARMmbed/mbedtls#1077), we get the error

    error: inline assembly requires more registers than available

when compiling `bignum.c` for Cortex-M0/0+/1/M23 which do not have
the macro `__thumb2__` set by the compiler.

The workaround is to define the macro `MULADDC_CANNOT_USE_R7` which
is already defined by Mbed CLI 1 but missing in our CMake support.

Fixes ARMmbed/mbed-os-example-lorawan#220
2021-04-15 11:04:40 +01:00
Martin Kojtal 076cf3557a
Merge pull request #14546 from rwalton-arm/dev/rwalton-arm/fix-connectivity-driver
CMake: Fix mbed-802.15.4-rf driver
2021-04-15 11:43:30 +02:00
Martin Kojtal b5652a45c9
Merge pull request #14483 from LDong-Arm/tdbstore_whitebox_low_ram
Improve HeapBlockDevice, TDBStore and tests
2021-04-15 10:36:36 +02:00
Martin Kojtal a3be10c976
Merge pull request #14541 from LDong-Arm/crash-reporting-baud
Increase baud rate of mbed-os-example-crash-reporting to 115200
2021-04-14 20:16:32 +02:00
Martin Kojtal dd1da3da40
Merge pull request #14469 from jeromecoutant/PR_FLASH_PROGRAM
STM32: remove critical sections in flash_program_page
2021-04-14 20:15:11 +02:00
Lingkai Dong 7b763be0e3 TDBStore Whitebox tests: fix memory check
Each block of HeapBlockDevice is only allocated from the heap when
that block is programmed. And erasing a block frees the associated
buffer.

To decide if there is enough heap to run the TDBStore Whitebox tests,
we need to perform a trial program() instead of erase().
2021-04-14 17:19:38 +01:00
Lingkai Dong aedc6009ea TDBStore: call `BlockDevice::erase()` regarless of erase value
From the documentations of `BlockDevice::get_erase_value()`:

    -1 if you can't rely on the value of the erased storage

and `BlockDevice::program()`:

    The blocks must have been erased prior to being programmed

So, `BlockDevice::erase()` should always be called regardless of
erase value.
2021-04-14 17:19:38 +01:00
Lingkai Dong fb4e5e80b4 TDBStore: optimize erase algorithms
Currently `TDBStore::offset_in_erase_unit()` and
`TDBStore::check_erase_before_write()` loop through erase units
one-by-one, until the entire range is covered. This is very inefficient
when the erase size is tiny, e.g. one-byte on a non-flash device for
which we use program as erase.

This commit reworks the algorithms, based on the fact that a block
device can erase or program as many units as needed in one go.
2021-04-14 17:19:38 +01:00
Lingkai Dong e8070514b1 FileSystemStore unit test: remove erased_set_get test
The "erased_set_get" test case deinits `FileSystemStore`, erases the
block device, and reinits `FileSystemStore`. This of course fails,
because `BlockDevice::erase()` removes all stored data including the
format of the `FileSystem` (middle layer), unless the particular type
of block device has a no-op erase implementation.

Note: Previously `HeapBlockDevice::erase()` was essentially a no-op
so this test case did not fail. We recently added the freeing of heap
memory and it uncovered the problem.
2021-04-14 17:16:54 +01:00
Lingkai Dong 6b5e467f96 HeapBlockDevice::erase(): free up heap memory
`HeapBlockDevice::erase()` previously performed a range and alignment
check only. This commit adds freeing of heap memory.
2021-04-14 17:00:17 +01:00
Lingkai Dong 7ef9e6175f HeapBlockDevice: allocate with std::nothrow
Mbed OS does not enable C++ exceptions, so we should call `new` with
`std::nothrow` which returns a C-style NULL pointer when allocation
fails to allow error handling.

For consistency of style within the same file, this commit also
replaces `malloc()` and `free()` to `new (std::nothrow)` and `delete`.
2021-04-14 17:00:17 +01:00
s-bruce13 cdf2d4d0a4 missing analoginapi in cmake list 2021-04-14 09:37:40 -05:00
Martin Kojtal bedd5727af
Merge pull request #14486 from jeromecoutant/PR_CLI2_BLE
CMake COMPONENT_BlueNRG_MS: fix mbed-ble
2021-04-14 16:27:25 +02:00
Anna Bridge 68eff877ca
Merge pull request #14545 from Patater/deprecate-bootloader-example
examples: Deprecate mbed-os-example-bootloader
2021-04-14 13:21:53 +01:00
Martin Kojtal 121c8286da CMake: set CMAKE_MODULE_PATH in the Mbed OS CMakelists.txt
Update CMAKE_MODULE_PATH at once place.

Note, we update also CMAKE_MODULE_PATH in app.cmake. This is temporary until we get a proper way to include
Mbed Os (removing app.cmake need to be included by an application).
2021-04-14 13:09:28 +01:00
Martin Kojtal 65e246fe4d CMake: add mbed_ prefix to our CMake files
To avoid conflicts as we expose our CMake list files via CMAKE_MODULE_PATH. Some files already include it, this
aligns the rest of files.

I leave app.cmake as it is - it's user facing and it would be breaking change. We can clean this one for the next major version.
2021-04-14 13:09:27 +01:00
Martin Kojtal b6a90c4ae1 CMake: fix for CMAKE_CURRENT_LIST_DIR in functions
CMAKE_CURRENT_LIST_DIR behaves differently in functions. We store it in the CMakeLists itself, so anyone
calling a function would get the actual list dir where the scripts are.

To illustrate: if I call a function from src/CMakelists.txt, function located in src/scripts, `CMAKE_CURRENT_LIST_DIR` in the function would point
to the src/ folder but not to src/scripts.
2021-04-14 13:09:27 +01:00
Martin Kojtal ed609f57c4 CMake app: add our cmake folder to CMAKE_MODULE_PATH
All files within tools/cmake can now include within tools/cmake. We do not expose
internal folders like core/profiles/toolchains.
They should be included via toolchain file (mbed_toolchain in our case).
2021-04-14 13:09:27 +01:00
Martin Kojtal b88d5687e2 CMake tools: use CMAKE_CURRENT_LIST_DIR instead of MBED_PATH
Excluding greentea tests, they will be fixed separately (more work needed).
2021-04-14 13:09:27 +01:00
Martin Kojtal afd938491a CMake platform: remove MBED_PATH, use standard variables
As we still use target labels, TFM is not visible to CMake. Protect include of their scripts with the same mechanism.
2021-04-14 13:09:26 +01:00
Martin Kojtal dfc4010e24 CMake targets: remove MBED_PATH, use stadard variables
- list files included via module path
- <project-name>_SOURCE_DIR for sources that are out of the current processed CMake
- CMAKE_CURRENT_LIST_DIR for listfiles
2021-04-14 13:09:26 +01:00
Robert Walton c7c2580f9e CMake: Fix mbed-802.15.4-rf driver
mbed-nanostack should depend on mbed-802.15.4-rf to avoid a linker error
with an undefined reference to `NanostackRfPhy::get_default_instance()`.
The error occurs when `device_has: 802_15_4_PHY` is defined and the
consumer depends on mbed-nanostack in their CMakeLists.txt. Previously
we linked mbed-nanostack to mbed-802.15.4-rf, so mbed-802.15.4-rf's
usage requirements weren't forwarded to consumers who depended on
mbed-nanostack.

With the previous configuration, the consumer would have to depend on
mbed-802.15.4-rf directly to avoid an issue. This seems like a layering
violation: it appears that mbed-nanostack is "the API" and
mbed-802.15.4-rf is one of several possible implementations which are
selected based on configuration macros.

This commit changes the flow of dependencies so that mbed-nanostack ends
up with the correct symbol definitions.
2021-04-14 12:30:35 +01:00
Jaeden Amero f02fbaa061 examples: Deprecate mbed-os-example-bootloader
We no longer support the mbed-os-example-bootloader example.
2021-04-14 11:57:14 +01:00
jeromecoutant 992591e774 STM32WL: standard pin names 2021-04-14 11:18:43 +02:00
jeromecoutant 65a96c57a2 STM32WB: standard pin names 2021-04-14 11:18:43 +02:00
jeromecoutant 768037c05e STM32L5: standard pin names 2021-04-14 11:18:43 +02:00
jeromecoutant 8e3c5f11d4 STM32L4: standard pin names 2021-04-14 11:18:22 +02:00
Martin Kojtal f4f8d8fd3f
Merge pull request #14543 from praveenCY/pr/fix_uart_enable
Fix Unbuffered serial enable/disable issue on Cypress kits
2021-04-14 11:09:24 +02:00
jeromecoutant a5878f45c3 STM32L1: standard pin names 2021-04-14 10:30:04 +02:00
jeromecoutant baa558685c STM32L0: standard pin names 2021-04-14 10:30:03 +02:00
jeromecoutant 68b620bdc2 STM32H7: standard pin names 2021-04-14 10:30:03 +02:00
jeromecoutant ede1741e55 STM32G4: standard pin names 2021-04-14 10:30:03 +02:00
jeromecoutant bd43397f12 STM32G0: standard pin names 2021-04-14 10:29:56 +02:00
jeromecoutant fc54542cf0 STM32F7: standard pin names 2021-04-14 10:23:29 +02:00
jeromecoutant 2323d227fe STM32F4: standard pin names 2021-04-14 10:23:29 +02:00
jeromecoutant 25e85f9fcf STM32F3: standard pin names 2021-04-14 10:23:29 +02:00
jeromecoutant 63ce075fa8 STM32F2: standard pin names 2021-04-14 10:23:29 +02:00
jeromecoutant 69a7e3eeff STM32F1: standard pin names 2021-04-14 10:23:28 +02:00
jeromecoutant d21ff75e39 STM32F0: standard pin names 2021-04-14 10:23:28 +02:00
jeromecoutant 2351460ef7 STM32: replace "ARDUINO" by "ARDUINO_UNO" 2021-04-14 10:23:28 +02:00
jeromecoutant 3a772baab2 STM32: STM32_gen_PeripheralPins.py v1.20
- standard pin compatible
2021-04-14 10:23:28 +02:00
Martin Kojtal c5f28e6037
Merge pull request #14481 from jeromecoutant/PR_LORA_ERROR
STM32WL: update "lora.max-sys-rx-error"
2021-04-14 09:54:53 +02:00
Martin Kojtal 033094f84d
Merge pull request #14467 from LDong-Arm/b1_fix
Musca targets: align and clean up configurations
2021-04-14 09:54:46 +02:00
Martin Kojtal 8b8f4e52a0
Merge pull request #14521 from AnishKumarHCL/pwm_gpiopull_fix
Updated TARGET_STM32 board  pinMap_PWM table with GPIO_NOPULL
2021-04-14 09:54:22 +02:00
reme a1055f5add README update STM32F3 to CUBE V1.11.2 2021-04-14 08:19:40 +01:00
reme 285e3e2bb7 STM32F3 update drivers version to CUBE V1.11.2 2021-04-14 08:19:39 +01:00
Chandran Praveen Babu (CYSC CSS ICW SW PSW) af44532ca4 Fix Unbuffered serial enable/disable issue on Cypress kits 2021-04-13 15:33:25 -07:00
Lingkai Dong b5893bebbb Increase baud rate of mbed-os-example-crash-reporting to 115200
At 9600 baud, a large part of the serial output of the crash reporting
example is missing on CI boards, causing the example test to fail. At
a higher serial speed (115200 baud), the entire output is intact.

This is in alignment with ARMmbed/mbed-os-example-crash-reporting#65.

Fixes #14535
2021-04-13 16:10:39 +01:00
Martin Kojtal 06a33d37f8
Merge pull request #14436 from paul-szczepanek-arm/remove-services
BLE: replace obsolete services with the new services repo
2021-04-13 16:00:58 +02:00
Martin Kojtal b1e26c6f35
Merge pull request #14435 from LDong-Arm/CRYPTOCELL310_linking
Fix missing linkage of mbed-mbedtls-cryptocell310 to mbed-mbedtls
2021-04-13 16:00:43 +02:00