Commit Graph

3184 Commits (ab857c4963abfdcc9c57145dd985411161f442dd)

Author SHA1 Message Date
Anna Bridge 3ede2a9a60
Merge pull request #11126 from teetak01/optimize-debug-profile
Optimize debug profile flags for size
2019-08-15 12:53:32 +01:00
Olli-Pekka Puolitaival aa1d16e871 Python3 fixes 2019-08-15 10:06:41 +03:00
Kevin Bracey c3a71eb23b µVision export: Handle more C++ language standards
µVision 5.28a now has options for gnu++14, c++14 and c++17, so we can
use them rather than falling back to c++14 or gnu++11.

This does mean that an export of current master, which uses gnu++14,
will now require version 5.28a. I have not tested what happens if
5.27 is given a project file with these new option numbers.

However, export of current master is broken for 5.27 anyway, as the
fallback to gnu++11 means it fails to compile the C++14 constructs
now in the codebase.

Fixes #11217, as long as users update µVision too.
2019-08-14 17:13:03 +03:00
Evelyne Donnaes 5eaa922ce1 Moved minimal-printf.json to a subdirectory 2019-08-13 12:59:45 +01:00
Evelyne Donnaes 7954ad3dd9 Revert commit 3010aaa253 (diff-1a477b054b847ec75ac3bf22194a3335) that modified template for partial profile 2019-08-13 12:57:55 +01:00
Chris Snow a430b6a469 Change default optimisation level to O1 when exporting to uVision 2019-08-13 12:50:51 +01:00
Martin Kojtal 4c1f178146
Merge pull request #11171 from OpenNuvoton/nuvoton_arm_pack
Add Nuvoton M261 sub-family into arm_pack_manager
2019-08-13 10:04:24 +02:00
Martin Kojtal fafd0a5480
Merge pull request #11051 from evedon/minimal-printf
Minimal printf addition
2019-08-09 09:52:36 +01:00
cyliangtw 9667c215d8 Add Nuvoton M261 sub-family 2019-08-06 20:13:37 +08:00
Evelyne Donnaes d6b197a98b Removed no-builtin-printf for uARM 2019-08-05 16:01:34 +01:00
Hugues Kamba 2a9207bbe4 Address comments on workaround for Mbed OS 2 CI build after Public (#11114)
* Modify compilation API to provide a list of paths to exclude from the build.
* `_exclude_files_from_build` becomes a static method
* Replace ternary expression with simple  `if/else` statement
* Make unit test case for dirs exclusion independent of system files
2019-08-02 12:32:40 +01:00
George Psimenos 3b23edb78c Fix CI for branch feature-public-headers (#11093)
* Fix rtos include path in NRFCordioHCIDriver
* Flatten USB driver directory structure
* Add missing include for us_ticker
* Add more missing includes for us_ticker
* Fix mbed_hal_fpga_ci_test_shield/uart test
* Fix bare-metal build
* Fix Watchdog UNITTEST
* Fix Mbed OS 2 build for Public/Internal headers relocating
2019-08-02 12:32:40 +01:00
George Psimenos df5baf6031 USB public APIs cleanup (#11034)
The contents of the usb directory were moved to appropriate locations and the usb directory removed.

* Public USB headers moved under drivers/
* Internal USB headers moved under drivers/internal/
* USB Source code moved under drivers/source/usb/
* Moved usb/device/hal/ under hal/usb/
* Moved usb/device/USBPhy/ under hal/usb/
* Merged usb/device/targets/ into targets/
* Separated public and private USB API documentation under Doxygen groups drivers-public-api and drivers-internal-api.
2019-08-02 12:23:47 +01:00
Hugues Kamba bfa1b4dd84 Drivers/Events/RTOS Public and internal APIs cleanup (#10955)
Separate drivers, events, and rtos internal APIs from public APIs.

* Move source files to source subdirs
* Move internal headers to internal subdirs
* Add Doxygen comments for documenting internal and public APIs
* Remove source code from header files in order to remove include pre-processor directives
that included header files not directly used by said header files
* Explicitly include header files instead of implicit inclusions via third-party header files.

Release Notes

This will break user code that was using an internal API as the internal header files have been moved.
This will only break if the user was including the header file using a namespace (i.e #include "foo/bar.h" instead of #include "bar.h"
2019-08-02 12:23:47 +01:00
Evelyne Donnaes 050a338771 Addressed review comments, in particular:
* Fixed wrapper functions for IAR
* Fixed and renamed profile to minimal-printf.json
* Moved minimal-printf under platform
* Removed minimal-printf/mbed_lib.json
* Modified exporter template to work with partial profile
* Prevented optimization of printf to avoid compiler function substitution
2019-08-01 12:42:24 +01:00
Evelyne Donnaes 65ab34695e Integrated minimal-printf in mbed-os 2019-08-01 12:41:59 +01:00
Teemu Takaluoma 5b8b2c95b1 Debug-profile: Use -Og level for GCC_ARM optimization
This brings massive ROM savings, and allows to use debug builds
also with larger applications (for. ex. Mesh stack).

Diff. for mbed-cloud-client-example with Wi-Sun stack.

Total Static RAM memory (data + bss): 85120(-216) bytes
Total Flash memory (text + data): 592668(-329296) bytes
2019-07-31 07:51:33 +03:00
Teemu Takaluoma f30703af16 Debug profile: Change IAR profile to use -Ol instead of -On
Total Static RAM memory (data + bss): 71179(+0) bytes
Total Flash memory (text + data): 665394(-44680) bytes
2019-07-30 09:45:07 +03:00
Teemu Takaluoma 985f981b83 Debug profile: Change ARM and uARM profile to size-optimized 2019-07-30 09:44:49 +03:00
Seppo Takalo 6dfbe54389
Merge pull request #11069 from qVlad/add-sectors-for-stm32F446ZE
add defines sectors for STM32F446ZE
2019-07-23 12:02:18 +03:00
Seppo Takalo 25198ba056
Merge pull request #11070 from kjbracey-arm/iar_exception_warning
IAR: Suppress "exceptions are disabled" warning
2019-07-23 11:42:15 +03:00
Seppo Takalo a0e88ad330
Merge pull request #11059 from desowin/dwarf
GCC ARM: Increase develop and release debug level
2019-07-22 15:31:24 +03:00
Kevin Bracey 0bb4c050b7 SingletonPtr: API extensions, make constexpr
* Adjust definition to make the default constructor `constexpr`.
  This permits use in classes that want lazy initialization and their
  own `constexpr` constructor, such as `mstd::mutex`.

* Add `get_no_init()` method to allow an explicit optimisation for
  paths that know they won be the first call (such as
  `mstd::mutex::unlock`).

* Add `destroy()` method to permit destruction of the contained object.
  (`SingletonPtr`'s destructor does not call its destructor - a cheat
  to omit destructors of static objects). Needed if using in a class
  that needs proper destruction.
2019-07-18 20:02:04 +03:00
Kevin Bracey 2078575bae IAR: Suppress "exceptions are disabled" warning
IAR compiler is outputting lots of warnings about exceptions being
disabled whenever it sees a "noexcept" keyword. We know, we know.
2019-07-18 19:59:41 +03:00
Vladislav Talanov f548388566 add defines sectors for STM32F446ZE 2019-07-18 18:07:12 +03:00
Tomasz Moń 4e992cd901 GCC ARM: Increase develop and release debug level
Do not specify the debug level for develop and release profiles. Instead
rely on the compiler to choose sensible default (-g2). Note that -g1 is
minimal debugging information and does not include structure definitions
which quite heavily reduces debugging experience.

For develop and release profiles this results in elf file containing
structure definitions. This does not impact debug profile as it already
did use -g3 which is the highest debug level.

Compatible debuggers (eg. gdb, SEGGER Ozone) can use the extra information
to provide better debugging experience. For example, when compiled .elf is
loaded in gdb, this change makes it trivial to access internal RTX data.

Without this change on develop profile:
  (gdb) print osRtxInfo.thread.run
  'osRtxInfo' has unknown type; cast it to its declared type

With this change on develop profile:
  (gdb) print osRtxInfo.thread.run
  $1 = {curr = 0x20014F04, next = 0x20014F04}
2019-07-18 12:03:13 +02:00
Kevin Bracey 6fc767dc71 Make tools cope with no-extension headers
Treat files with no extension as headers, if they are in the cxxsupport
folder.
2019-07-18 11:50:13 +03:00
Kevin Bracey e5a3f976c2 Add TOOLCHAIN_ARMC5 label
We have some files that are needed for ARMC5 only.
2019-07-18 11:50:13 +03:00
Lin Gao 387bb666f4 Added CC3220 related changes to tools 2019-07-17 14:18:19 -05:00
Volodymyr Medvid 2524a67c38 Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-11 10:19:03 +01:00
Volodymyr Medvid 140b72d3ed Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-10 10:54:14 +01: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
Arto Kinnunen 1264660314
Merge pull request #10972 from 0xc0170/test_target
add new target IM880B
2019-07-08 16:34:36 +03:00
Volodymyr Medvid 5cc66282dd PSOC6: remove PSA targets 2019-07-08 14:49:26 +03:00
Arto Kinnunen 3d65ace77a
Merge pull request #10950 from artokin/Update_freescale_K6xF_linker_files
Enable split heap in K64F/K66F devices
2019-07-08 11:46:30 +03:00
itziar c327f4f070 add new target IM880B 2019-07-05 09:19:51 +01:00
d-kato 5016796ed1 Add RZ/A1 settings to arm_package_manager 2019-07-05 15:45:27 +09:00
Martin Kojtal 2dc562f696
Merge pull request #10813 from JanneKiiskila/arm-develop-size
Make ARMC5 and IAR develop profile also size optimized
2019-07-04 15:29:33 +01:00
Kevin Bracey 5ab714e604 ARM linker: add --any_contingency option
When packing data into multiple regions using the `.ANY` directive,
the linker can accidentally overfill an area.

This doesn't normally happen because it defaults to
`--any_placement=worst_fit`, which puts data in the region with
most space.

When we prioritise regions with `.ANY1`/`.ANY2`, it may totally fill
an area, then fail to leave enough space for linker-generated veneers.
We've just seen this error with the new K64F linker map.

Adding `--any-contingency` makes it lower priority when a region is
98% full, avoiding this error.

The option should not have any effect on targets with scatter files
without prioritised `.ANY` directives.
2019-07-03 15:36:49 +03:00
Martin Kojtal 1aad06b394
Merge pull request #10829 from devran01/feature_trusted-firmware-m_e7efdc6
PSA: TFM import
2019-07-01 14:35:54 +01:00
Devaraj Ranganna 98fa63aa1a Update commit sha's
Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-06-26 17:01:07 +01:00
Alexandre Bourdiol 022abea09b Add STM32H743ZI to IAR export definition 2019-06-13 15:18:37 +02:00
Janne Kiiskila 7bfe0be43f Align also IAR - develop profile to be size optimized
IAR is also performance optimizing instead of size optimizing in
develop profile. Align also that (review feedback).
2019-06-12 13:54:34 +03:00
Janne Kiiskila 261e071013 Make ARMC5 develop profile also size optimized
Due to some historical reasons ARMC 5 compiler behaves very
differently compared to others (GCC, IAR, ARM C 6) as it optimizes
performance rather than size (like the others).

All compilers should behave the same way with the same profile,
thus ARM C 5 should also drive towards size (space).
2019-06-12 12:04:23 +03:00
Martin Kojtal 15539e0710
Merge pull request #10749 from jamesbeyond/example_test
Examples: enable more tests for examples
2019-06-09 18:18:37 +01:00
adbridge 366b18ea1f Re-enable complilation for wifi and nanostack examples 2019-06-07 10:50:24 +01:00
Devaraj Ranganna b0fe59df00 [trusted-firmware-m]: Updated to e7efdc6 2019-06-06 14:47:00 +01:00
Qinghao Shi 31fc1e56f2 Examples: enable more tests for examples 2019-06-03 18:30:42 +01:00
Kevin Bracey 18ce757c07 ARMC6: Suppress "register deprecated" warning
Lots of target code, STM in particular, uses the `register` keyword, so
it'll take a little while to clean up. In the interim, some builds are
producing a lot of warnings. Suppress the warning for now, as `register`
remains legal C++14 and C11, despite C++14 deprecating it.

C++17 removes `register`, so code will need to be cleaned before any
further C++ version update.
2019-06-03 12:19:58 +03:00
Martin Kojtal cc491812a8
Merge pull request #10427 from kjbracey-arm/new_standards
Set compilers to C++14 and C11
2019-05-28 20:34:00 +01:00
Martin Kojtal 8fc2a3c92a
Merge pull request #10675 from 0xc0170/update-mbedtls-2.18.0-rc1
Update mbedtls 2.18.0 rc1
2019-05-28 20:24:18 +01:00
Martin Kojtal eebc1b9e40 Revert "Check mbed-crypto-example with fork"
This reverts commit ff18a64e00.
Use the official repository
2019-05-27 08:02:55 +01:00
Kevin Bracey b437d700b5 ARMC6: disable "reserved user-defined literal" warning
Clang warns about reserved user-defined literals by default. This
warning is not terribly helpful; compilers aren't normally in the
habit of warning about use of reserved identifiers. It can interfere
with, for example, deliberate emulation of a future standard
language feature.

The warning was promoted to an error in an mbed client build, due to a
non-C++11 "%s"name occurring in a macro. But the macro itself was never
invoked, so the misinterpretation as C++11 caused no problems other than
this warning. Killing the warning will let that code build on ARMC6.
The code already built on GCC and IAR.

If that macro ever was used, then a separate error about operator ""
name not being defined would be generated, on all 3 toolchains.
2019-05-24 16:26:15 +03:00
Kevin Bracey 85041025cc µVision export: Add ARMC6 `-std` handling
This is limited to ARMC6 because as of µVision V5.27 you can't set C++11
for ARMC5.

Also current µVision does not support gnu++14. We should be able to get
is as `<default>`, as it is the default for ARM Compiler 6.10-6.12,
but this option does not work as documented and actually requests
gnu++89 explicitly. So gnu++14 is mapped to gnu++11.
2019-05-24 16:26:15 +03:00
Kevin Bracey 5b859c47ee Set compilers to C++14 and C11
* ARMC6 and GCC are set to C++14 and C11.
* ARMC5 is set to C++11 and C99, as it's the highest it can offer.
2019-05-24 16:26:15 +03:00
Martin Kojtal 659c099ff7
Merge pull request #10625 from jamesbeyond/example_test
TESTS: update examples.json to enable testing
2019-05-24 12:19:35 +01:00
Martin Kojtal ab82f1fca6
Merge pull request #10627 from devran01/remove_future_sequana_target
Remove targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA
2019-05-24 12:16:10 +01:00
Alexander Zilberkant 67905bddae Use build directory in postbuild
Use build directory instead of temp directory for for
intermediate files during binaries merge.
2019-05-22 17:17:27 +03:00
Michael Schwarcz 96268d91ef Updates after rebase
- postbuild: Use find_secure_image and update prebuilt binaries
- Add CMSIS driver headers
- Align with 2-region memory model
2019-05-22 17:17:23 +03:00
Michael Schwarcz 36a8514dbd Add documentation on Musca-A1 signing key 2019-05-22 17:17:22 +03:00
Michael Schwarcz ff1c769c7e Add ARM_MUSCA_A1 as a new target platform
Musca-A1 is a Cortex-M33 based target with security extension enabled.

- ARM_MUSCA_A1 is the non-secure target running mbed-os.
- ARM_MUSCA_A1_S is the secure target running TF-M.
- TF-M sources were imported and patched in previous commits.
- TF-M secure bootloader (McuBoot) for MUSCA_A1 is submitted by a pre-built binary.
- A post-build hook concatenates The secure and non-secure binaries,
  signs it and then concatenates the bootloader with the signed binary.
2019-05-22 17:17:20 +03:00
Devaraj Ranganna 29dfab93bb Replace FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA targets with
CY8CKIT_062_WIFI_BT_M0_PSA and CY8CKIT_062_WIFI_BT_PSA in config test

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-05-22 10:20:57 +01:00
Martin Kojtal 77ca32dd57
Merge pull request #10606 from jeromecoutant/PR_PSAscript
PSA release script update: add toolchain option
2019-05-21 15:06:10 +01:00
Devaraj Ranganna 7765d39283 The targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA are removed
due to partial implementation. Having FUTURE_SEQUANA_M0 and
FUTURE_SEQUANA PSA targets is misleading.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-05-21 15:00:31 +01:00
Qinghao Shi 09e21a20d2 TESTS: update examples.json to enable testing 2019-05-21 14:27:10 +01:00
Martin Kojtal 7d0cc69fb1
Merge pull request #10521 from jamesbeyond/example_test
TEST: update python script to enable examples smoke test
2019-05-21 10:07:28 +01:00
Qinghao Shi 35eeef55a1 fix a bug where base_path was wrong 2019-05-19 00:32:39 +01:00
Qinghao Shi 3bb0a8aded fix a bug when STDOUT has less than 5 lines 2019-05-18 23:57:23 +01:00
jeromecoutant 79ea26614b PSA release script update: add toolchain option 2019-05-17 16:32:49 +02:00
Anna Bridge 9fb4429379
Merge pull request #10520 from kjbracey-arm/build_tz_heuristic
Permit non-TrustZone ARMv8 build
2019-05-17 11:06:55 +01:00
Qinghao Shi 48e1a56e0e add a comment based on review 2019-05-15 23:31:58 +01:00
Martin Kojtal 998d85f80b
Merge pull request #10505 from orenc17/imporve_importer
Improve importer.py
2019-05-13 14:15:21 +01:00
Martin Kojtal 571caad59e
Merge pull request #10539 from bridadan/fix_armc6_mbed_studio
Add mbed studio flag during assembly
2019-05-13 14:08:57 +01:00
Qinghao Shi 71d7970fc5 fix issues base on the review 2019-05-10 17:48:15 +01:00
Anna Bridge 97e1c9cbaf
Merge pull request #10287 from linlingao/pr10177
Enable MTS_DRAGONFLY_F411RE to register with Pelion
2019-05-10 16:21:46 +01:00
Brian Daniels fb62ed643c Add mbed studio flag during assembly 2019-05-07 11:45:30 -05:00
Kevin Bracey 65e0887ef3 Permit non-TrustZone ARMv8 build
Change the heuristic for selection of CMSE in the tools python, so that
a non-TrustZone ARMv8 build can happen.

Ideally we would have more direct flagging in the targets, but this
refines the heuristic so the necessary behaviour can be easily
achieved.

* DOMAIN_NS=1 is based purely on the `-NS` suffix on the core name.

* Enabling CMSE in the compiler and outputting a secure import library
  is now enabled when the core doesn't have an `-NS` suffix by either
  the target label `TFM` being present or the flag `trustzone` being set.

This covers the existing ARMv8-M behaviour - TF-M builds have the TFM
label, as per its documentation; M2351 secure builds have no explicit
flagging, so we ensure that the M2351_NS target has the trustzone flag
set, and the out-of-tree secure target inherits that.
2019-05-03 13:36:38 +03:00
Lin Gao 2c22f549e9 Add option to keep post_binary_hook and make it default. It can be disabled by setting it to null 2019-05-02 11:25:20 -05:00
Qinghao Shi b2611fb801 TEST: update python script to enable example smoke test
* it will check examples.json if contains 'test', 'compare_log', 'baud_rate' keys
 * it will dump test_spec.json test in examples compiled successfully
2019-05-02 15:26:15 +01:00
Martin Kojtal 00f461eee0
Merge pull request #10447 from kfnta/alzix/byos
PSA Bring Your Own Service
2019-05-02 08:54:25 +01:00
Alexander Zilberkant cae568ca07 Add Cortex-M33E to cpu conversion table for ARMC6 2019-04-30 14:55:46 +03:00
Alexander Zilberkant 5f2991dcc7
Handle Cortex-M33E no-fpu flags
Add compilation "-mfpu=none" flag for Cortex-M33E.
2019-04-30 14:48:38 +03:00
Alexander Zilberkant fe9eac78c2 Update PSA tools Readme 2019-04-30 14:41:09 +03:00
Alexander Zilberkant 91505184d3 Integrate with mbeb-cli build system
PSA code generation will be called automatically upon mbed invocation.
The autogenerated files will be created under <mbed-os-root>/PSA_AUTOGEN directory.
2019-04-30 14:41:09 +03:00
Oren Cohen f58e600d6e Fix armclang fpu detection 2019-04-30 14:11:54 +03:00
Alexander Zilberkant 8c5ba9154d Update PSA code generator
Unify TF-M and Mbed-SPM code generators:
 - Unify SPM initialization logic:
   - All partitions are registered at once
   - Test partitions are guarded by #ifndef
   - Introduce single template list
 - Beatify template files and add "Autogen-do not modify" notice
Prepare for integration with mbed-os build system:
 - Generate all the files in a single place
Simplify tools/psa/release.py script
2019-04-30 14:10:23 +03:00
Martin Kojtal 8a92271a3b
Merge pull request #10448 from fredlee12001/master
Size should be calculate after confirm the final start address
2019-04-30 09:46:39 +01:00
Martin Kojtal a85b70e53f
Merge pull request #10477 from VeijoPesonen/config_mesh_wisun
Wi-SUN: adds greentea test config
2019-04-30 09:40:35 +01:00
Martin Kojtal 360b7bb033
Merge pull request #10443 from bridadan/fix_binary_notify
Fix for downloading the wrong binary in the online compiler
2019-04-30 09:20:12 +01:00
Martin Kojtal 47205bfd02
Merge pull request #10502 from kfnta/feature_trusted-firmware-m_f2dea5b
PSA: TFM import
2019-04-30 09:12:37 +01:00
Martin Kojtal 39699d53be
Merge pull request #10398 from bridadan/official_release_changes
Clean up ARM toolchains from get_mbed_official_release()
2019-04-29 13:39:12 +01:00
Oren Cohen d1fa7bd277 Use a directory context to simplify git commands 2019-04-29 14:13:16 +03:00
Oren Cohen be8a1e804f Use argparse.FileType to parse config file 2019-04-29 14:10:59 +03:00
Oren Cohen ca5dff69f5 Extract import logic to a separate method 2019-04-29 14:09:34 +03:00
Oren Cohen b24f42f5ba Move regex to the using function 2019-04-29 14:08:30 +03:00
Oren Cohen bd5d059b13
Set log level during argument parsing 2019-04-29 00:37:16 +03:00
Oren Cohen 6f19ba093a
Proper documentation 2019-04-29 00:11:39 +03:00
Oren Cohen 8a2426d6da
Styling and annoyances 2019-04-28 23:53:00 +03:00
Oren Cohen c0a1c45ae5
Use custom agrparse.Action to handle input parameters 2019-04-28 23:48:30 +03:00
Oren Cohen 09af58fad5
Use regex to find cherry-pick message 2019-04-28 23:44:18 +03:00