Commit Graph

488 Commits (957dca2082b4657021352c940d0486778b54ab7b)

Author SHA1 Message Date
Rajkumar Kanagaraj 957dca2082 Enabling small C library option and deprecating uARM toolchain
- By default, Mbed OS build tools use standard C library for all supported toolchains.
   It is possible to use smaller C libraries by overriding the "target.default_lib" option
   with "small". This option is only currently supported for the GCC_ARM toolchain.
   This override config option is now extended in the build tool for ARM toolchain.
 - Add configuration option to specify libraries supported for each toolchain per targets.
 - Move __aeabi_assert function from rtos to retarget code so it’s available for bare metal.
 - Use 2 memory region model for ARM toolchain scatter file for the following targets:
   NUCLEO_F207ZG, STM32F411xE, STM32F429xI, NUCLEO_L073RZ, STM32F303xE
 - Add a warning message in the build tools to deprecate uARM toolchain.
 - NewLib-Nano C library is not supporting floating-point and printf with %hhd,%hhu,%hhX,%lld,%llu,%llX
   format specifier so skipping those green tea test cases.
2019-12-19 10:05:11 -08:00
Graham Hammond 9cdf5fc31d Notify on configuration exception rather than breaking build 2019-12-16 11:55:26 +00:00
Martin Kojtal d7e0012bc7 tools: regions only if bootloader is supported
We removed catching and passing, we want to know for any misconfiguration if bootloader
is supported. Regions should check if bootloader is supported. In case not, just return.
Otherwise we catch any error.

This should help us to uncover missing regions or other config error (in case bootloader
is enabled via bootloader_supported set to true).
2019-12-10 14:09:29 +00:00
Jammu Kekkonen 5ec7a0b625 Remove hiding of config errors related to RAM and ROM regions handling.
Currently any misconfiguration of, for example, bootloader feature will cause the
build system to just silently drop it and continue building which can lead to
completed builds of something the user didn't want to build in worst case and
failing builds after compilation (=wasted time) in the best.
2019-12-10 14:09:28 +00:00
Martin Kojtal 2cf56b8f6d
Merge pull request #11891 from hugueskamba/hk-enable-minimal-printf-in-tools
minimal-printf: Enable using a target configuration parameter
2019-12-04 10:14:54 +01:00
Hugues Kamba d5aef28145 minimal-printf: Enable using a target configuration parameter 2019-12-03 12:31:51 +00:00
Martin Kojtal 57f9a1eea8
Merge pull request #11921 from madchutney/tools/py3-fixes
Updates to tools for Python 3 compatibility
2019-11-27 16:29:50 +01:00
Kevin Bracey 5342f0fa00 Tools: check for GCC 9, rather than 6
Planning to update to supporting GCC 9 as found in GNU Tools for Arm
Embedded Processors 9-2019q4-major.

Newer GCC in particular supports ARMv8-M security extensions, and
link-time optimisation - two areas of interest.

Should be no code changes required, but need to change the warning in
the toolchain script.
2019-11-26 11:52:47 +02:00
Graham Hammond e723571474 Updates to `/tools` for Python 3 compatibility 2019-11-21 15:02:37 +00:00
Mark Edgeworth a8fbd59b05 IOTBTOOL-333: Fix SimpleQueue build failure on py3
Build system was using an internal feature of the Pool class that is unavailable
in a py3 system. This would cause an exception if tool execution failed.
Offending code has now been removed
2019-11-06 12:02:16 +00:00
Mark Edgeworth e7964caf93 IOTBTOOL-377: Fix scatter file include path online 2019-10-30 15:51:08 +00:00
Mark Edgeworth 6d7089eb35 Review changes 2019-09-11 12:27:46 +01:00
Mark Edgeworth 65d6015179
Update tools/toolchains/mbed_toolchain.py
Co-Authored-By: Graham Hammond <graham.hammond@arm.com>
2019-09-11 12:18:50 +01:00
Mark Edgeworth 6f37fd91a8 IOTBTOOL-349: Correct handling of spaces in project name.
This fixes an issue where a space in the name of a project would cause a link failure
2019-09-11 11:22:56 +01:00
Martin Kojtal 0e04d74c80
Merge pull request #11254 from jh228/patch-1
Update gcc.py for preprocessing in linker script
2019-09-10 19:41:09 +02:00
Lin Gao 2a78a9ba13 Refactored code to not use macro. Created config xip-enable 2019-09-03 11:54:14 -05:00
Lin Gao ea032bebc4 Add XIP capability, enable QSPI. XIP can be enable by adding macro XIP_ENABLE in mbed_app.json. It's disabled by default. 2019-09-03 11:54:11 -05:00
jh228 f3885fd89a
Update gcc.py 2019-08-19 15:09:04 +09:00
jh228 71466f8111
Update gcc.py for preprocessing in linker script
To fix https://github.com/ARMmbed/mbed-os/issues/11214, we need this update. :-)
2019-08-19 09:52:44 +09: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
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
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
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
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
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
Oren Cohen f58e600d6e Fix armclang fpu detection 2019-04-30 14:11:54 +03: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
Anna Bridge 9a581732b0
Merge pull request #10438 from OpenNuvoton/nuvoton_psa_pass_tfm-lvl_linker
PSA: Pass TFM_LVL macro to linker files
2019-04-26 13:34:35 +01:00
Kevin Bracey 744e2ccfa7 Tools: Add "Cortex-M33E" option
There was a gap in our pattern - we didn't offer M33 with DSP Extension
but no floating-point.
2019-04-23 12:04:20 +03:00
Kevin Bracey 56e2d339c8 Correct some CPU selections in tools
* For ARMC6, core types `Cortex-M4` and `Cortex-M7` did not explicitly
  add `--fpu=none`, so it defaulted to assuming FPU present. This would
  cause a compilation error if the target's cmsis.h had `__FPU_PRESENT`
  defined to 0.

* For GCC, `Cortex-M33FE` did not include `+dsp` in the architecture
  selection.

* For ARMC5 and ARMC6, `Cortex-M0+` did not pass `M0plus` to the
  non-Clang tools.
2019-04-23 12:04:20 +03:00
Brian Daniels 03f5ffd6b6 Fix for downloading the wrong binary in the online compiler 2019-04-18 16:45:39 -05:00
ccli8 717a2a2139 Pass TFM_LVL macro to linker files
With this, single linker file can support different TFM security levels.
2019-04-18 14:06:20 +08:00
Brian Daniels bbef60fbf2 Correct calls to merge_region_list 2019-04-09 14:10:37 -05:00
Brian Daniels 5b33dfd6e4 Update calls to merge_region_list 2019-04-09 14:08:13 -05:00
Brian Daniels 2a080a0840 Correct call to add_file_ref 2019-04-05 11:46:39 -05:00
Naveen Kaje f0f133f3ec tools: fix the path generated to the sct file
The sct file path generated in the online compiler
is incorrect. Fix that by changing the correct_scatter_shebang
API to accept a FileRef object instead and use the path.

This change should go with change in online compiler that removes
the override for correct_scatter_shebang.
2019-04-02 09:05:15 -05:00
Jimmy Brisson 992cb26209 Parse errors and warnings with ARMC6 2019-03-29 12:00:44 -05:00
Cruz Monrreal cfdb72b94f
Merge pull request #10182 from lrusinowicz/armc6_assembler_win7_workaround
Workaround for ARMC6 Windows 7 assembler issue
2019-03-27 00:23:05 -05:00
ccli8 da7035eb6b Fix MBED_RAM_START/MBED_RAM_SIZE symbol generation
1. Fix MBED_RAM_START/MBED_RAM_SIZE are not generated when there are
   target.mbed_ram_start/target.mbed_ram_size overrides
2. Fix MBED_RAM_START/MBED_RAM_SIZE are duplicated.
2019-03-26 09:34:59 +08:00
Brian Daniels 0f1bd76c01 Add link for ARMC5 warning 2019-03-23 18:24:59 -05:00
Brian Daniels 1c31d365c2 Add ARMC5 as an option for the -t argument 2019-03-23 18:24:58 -05:00
Brian Daniels 04e90c278c ARMC5 is supported if a target lists ARM as a supported_toolchain 2019-03-23 18:24:58 -05:00
Brian Daniels 6f5a3c3e8d Add functions to enable ARM fallback to ARMC5.
There are two new functions: get_valid_toolchain_names and
find_valid_toolchain. These functions are used to figure out if a
fallback is possible and necessary. find_valid_toolchain is expected to
be used by the front-end scripts.

get_toolchain_name was updated with some different logic and comments.
2019-03-23 18:24:58 -05:00
Martin Kojtal aca0f2f48e
Merge pull request #10114 from bridadan/armc6_mbed_ide
Allow the use of Mbed Studio's version of ARMC6
2019-03-23 16:30:01 +01:00
Leszek Rusinowicz 8d8cf1acc3 Workaround for ARMC6 Windows 7 assembler issue
On Windows 7 using --preproc option in ARMC6 assembler doesn't work
when -MD option is also specified. Compiler creates incorrect filename for
dependency file and compilation files.
To workaround this issue, this change returns to using a temporary file and
separately calling preprocessor and assembler (as in a case of ARMC5).
2019-03-21 23:04:32 +01:00