Commit Graph

151 Commits (cbf9f0650b650e232cf336af8e733d9f2203ab60)

Author SHA1 Message Date
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
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
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
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 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
Brian Daniels 0f1bd76c01 Add link for ARMC5 warning 2019-03-23 18:24:59 -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
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
Brian Daniels e382b5034a Add comments about the proper use of specific ARMC6 arguments 2019-03-21 16:24:44 -05:00
Brian Daniels bc06c535d0 Conditionally enable --ide=mbed from ARMC6 based on compiler version.
If the Mbed Studio build of ARMC6 is found, add the --ide=mbed to all
necessary executables.
2019-03-19 17:33:40 -05:00
Brian Daniels 9ac08e6313 Whitespace clean up 2019-03-19 17:33:09 -05:00
Jimmy Brisson 5dd149cb13 Fix formatting erros in arm.py
except for the extremely long regex
2019-03-04 11:36:36 -06:00
Jimmy Brisson a2fcdba040 Move toolchain base class into another file 2019-03-04 11:32:16 -06:00
Jimmy Brisson 3353722d36 Correct use before definition bug in ARM 2019-03-04 11:32:15 -06:00
Jimmy Brisson aeeb43fb3c Simplify hook tool implementation
The "hook tools" were capable of hooking into many commands run by the build system.
To my knowlage, the only hook is the "post-build-hook". The post build hook could be
easier to reason about if the implementation is specialized for just post-build
hooking.

This commit make it much easier to point out where post build hooks are called by
making the call explicit.
2019-03-04 11:30:49 -06:00
Senthil Ramakrishnan 96c74d4dce Changes to use response files(pass includes in a file) 2019-02-28 12:03:14 -06:00
Senthil Ramakrishnan 654f4d93a4 Modify ARM_STD,ARM_MICRO,ARMC6 constructors to be compatible with older versions of build tools 2019-02-28 12:00:11 -06:00
Senthil Ramakrishnan 4e7d34bbb6 Review fixes for uvision exporter,build_api and arm.py 2019-02-28 12:00:11 -06:00
Senthil Ramakrishnan e2646407de Adding ARMC6 label for ARMC6 toolchain class 2019-02-28 12:00:11 -06:00
Senthil Ramakrishnan 7490b1c87f Api tests modification and uLib related fixes 2019-02-28 11:55:21 -06:00
Senthil Ramakrishnan 50eb4f9da8 Build tools changes to support AC6 and AC5 2019-02-28 11:55:21 -06:00
Oren Cohen 156bdc4b95
Add config header to assembly compilation
ARMC6 was not including mbed_config.h when compiling assembly files
2019-02-20 01:15:23 +02:00
Michael Schwarcz 965410bef0
Fix cortex-m33-S armlink error
Add "-mfpu=none" compilation flag
2019-02-06 10:28:28 +02:00
Martin Kojtal 4ce6ed0f47
Merge pull request #9606 from deepikabhavnani/core_arch_v8m
Correct typo no_dsp - nodsp
2019-02-05 16:59:13 +01:00
Deepika b49a6b2ad8 Correct typo no_dsp - nodsp
armclang - nodsp
armlink - no_dsp

diff --git a/tools/t
2019-02-04 15:40:53 -06:00
Cruz Monrreal c9e00cf781
Merge pull request #9480 from deepikabhavnani/core_arch_v8m
Refactor core optional parameters (FPU + DSP + Security extensions)
2019-01-31 10:22:09 -06:00
Cruz Monrreal II 149d280e7a Added encoding to version check for Py3 compat 2019-01-28 12:59:43 -06:00
deepikabhavnani f7d49fdc82 Change DSP variant symbol to `E` from `D`(d-double floating point) 2019-01-25 09:31:44 -06:00
deepikabhavnani c0750de318 Armc6 - Set floating point and CPU options for all core variants explicitly
Below are the options read from the toolchains/arm
armclang --target=arm-arm-none-eabi -mcpu=list
The following arguments to option 'mcpu' can be selected:
  -mcpu=cortex-m0
  -mcpu=cortex-m0plus
  -mcpu=cortex-m1
  -mcpu=cortex-m3
  -mcpu=cortex-m4
  -mcpu=cortex-m7
  -mcpu=cortex-m23
  -mcpu=cortex-m33
  ...

armlink --cpu=list
The following arguments to option 'cpu' can be selected:
 --cpu=Cortex-M0
 --cpu=Cortex-M0plus
 --cpu=Cortex-M1
 --cpu=Cortex-M1.os_extension
 --cpu=Cortex-M1.no_os_extension
 --cpu=Cortex-M4
 --cpu=Cortex-M4.no_fp
 --cpu=Cortex-M7
 --cpu=Cortex-M7.fp.sp
 --cpu=Cortex-M7.no_fp
 --cpu=Cortex-M23
 --cpu=Cortex-M33
 --cpu=Cortex-M33.no_fp
 --cpu=Cortex-M33.no_dsp
 --cpu=Cortex-M33.no_dsp.no_fp
...

armclang --target=arm-arm-none-eabi -mfpu=list
The following arguments to option 'mfpu' can be selected:
  -mfpu=fpv4-sp-d16
  -mfpu=fpv5-sp-d16
  -mfpu=fpv5-d16
...
2019-01-25 09:28:36 -06:00
deepikabhavnani 907c517473 Use core arch for setting secure/non-secure flags 2019-01-25 09:28:36 -06:00
Martin Kojtal af52c30234
Merge pull request #9433 from deepikabhavnani/asm_v8m_flags
Set DSP and floating point flags for ASM files
2019-01-23 09:18:18 +01:00
Deepika ddc762776f Set DSP and floating point flags for ASM files 2019-01-18 14:13:31 -06:00
Kevin Bracey d17d43bdfa Revert "Warn with ARMC6 and not v8m"
This reverts commit 3f684113b0.
2019-01-17 10:59:27 -06:00
Kevin Bracey dddeab7414 ARMC6: Use float-abi=hard
For binary compatibility with ARMC5, use the hard ABI variant whenever
we have FP hardware - this is ARMC5's default behaviour, which we do not
override.

Cortex-M4F was already using hard; this brings M7F and M33F into line.
2018-12-19 14:28:35 +02:00
deepikabhavnani f05e7b77d0 Add core option for Cortex-M33 with DSP enabled
Signed-off-by: Deepika Bhavnani <Deepika.Bhavnani@arm.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-12-07 12:20:01 -06:00
Mikhail Maltsev d16388354a Fix build of library archive with Arm Compiler 6
The 'archive' method of the toolchain class 'ARM' expects that self.ar
is a string, but the constructor of the class 'ARMC6' initializes it
with a list. This patch fixes the issue.
2018-11-22 13:32:20 +00:00
Cruz Monrreal II 14a9824511 Merge branch 'root-include-path' of ssh://github.com/theotherjimmy/mbed into rollup 2018-11-08 13:24:12 -06:00
Jimmy Brisson 95e2b07ad8 Resources: Compute parents using only header names
### Description

The prior fix made the assumption that you wanted to compute all of the
parents for a give header file going all the way up the path. This is
not true: you probably want to stop when the project stops. We already
keep track of a virtual name within the project, so instead, we compute
parents of the name, and generate the actual location of these files in
your FS as the path. This makes the solution robust offline and online
(I tested it with my local copy of os.mbed.com)

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Docs update
    [ ] Test update
    [ ] Breaking change
2018-11-08 09:23:49 -06:00
jeromecoutant 1ea28973b2 TOOLS : Add missing M33 and M33F in python scripts 2018-11-05 17:44:15 +01:00
Jimmy Brisson ec72ce7787 Track supported information within toolchain clasess 2018-10-18 11:10:16 -05:00
Cruz Monrreal 43ffe3e985
Merge pull request #8305 from theotherjimmy/fix-microbit-release
Tools: Fix Microbit releases
2018-10-10 08:44:58 -05:00