Commit Graph

502 Commits (69a2803319998cf637f1b4c4f8d53de4c3645f99)

Author SHA1 Message Date
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
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 dabad7a074 Deduplicate RAM defines to linker command line 2019-03-19 13:38:45 -05:00
Jimmy Brisson 0bb3031ef2 Deduplicate MBED_ROM_xxxx defines on IAR linker command line 2019-03-19 09:17:52 -05:00
Jimmy Brisson 7380451f6e Correct post-build filtering options 2019-03-12 11:30:12 -05:00
Oleg Kapshii aedec74b9a Added support for PSA target to WIFI_BT board
Added WiFi_Bt CM4 PSA target in mbedos json
Added SPE-NSPE mailbox initialization for CM4 SystemInit
Made similar to FUTURE_SEQUANA configurations
Copied FUTURE_SEQUANA CM0 SPM part for WiFi_Bt smoke test
Added CY8CKIT_062_WIFI_BT_M0 and CY8CKIT_062_WIFI_BT_M0_PSA targets
Sorted files for new CY8CKIT_062_WIFI_BT_M0 and CY8CKIT_062_WIFI_BT_M0_PSA targets
Copied files for CY8CKIT_062_WIFI_BT_M0_PSA from FUTURE_SEQUANA
Copied and updated cm0p start files
Corrected according to FUTURE_SEQUANA
Changes to M0 startup files to have SPM started
Fixed implicit declaration warning
Commented interrupts enabling according to FUTURE_SEQUANA flow
Updated prebuild spm_smore CM0 hex for CM4 target
Turned on greentea environment
Used special memory region for common CM0/CM4 data
Updated prebuild CM0 SPM hex
Placed shared memory region for flash operations into SPM shared memory region
Updated cyprotection code and configuration
Start address of protected regions is set by a defined number from target.json
Added masters pcMask configuration
Added support for PSA target to WIFI_BT board
Enabled resources protection for SPM
Aligned RAM usage according to Cypress FlashBoot and CyBootloader
alligned protection config
Added CYW943012P6EVB_01_M0 target
Enlarged heap size, remobed nv_seed
Added heap reservation in linker script from mbed-os
Removed heap size definition
turned on nv_seed config
Removed nv_seed macros
Enabled protection for PSoC6 CM0
Added PSoC6 CM0 PSA readme
Enabled mbed_hal-spm test
Enabled nv_seed and removed unneeded ipc config define
Added SPDX string to feature_ble cypress target files
Removed unneeded supported_toolchains lines for Cypress targets
Disabled protection settings
Corrected flash initialization for PSoC6 CM0 PSA
Changed PSoC6 IPC6 protection for flash
Enabled special flash initialization and enabled protection settings
Updated and added new prebuild PSoC6 CM0 PSA hex files
Disabled HW TRNG and CRC for PSoC6 CM4 PSA target
Added missing const to allow types to match
Updated PSoC6 WIFI_BT_PSA prebuilt directory
Moved PSoC6 shared section usage area definition to begin of ld
Added initial ARM_STD linker and startup files for PSoC6 CM0
Added initial IAR linker and startup files for PSoC6 CM0
Added defines to disable some SPM protection settings for PSoC64
Moved Flash function variables into separate memory region
Added defines for new Public area definition
Updated PSoC6 CM0_PSA hex-files
2019-03-07 08:40:20 -08:00
Jimmy Brisson 1f4c2710b1 Add SPDX identifier to liscense in "new" file 2019-03-04 11:36:36 -06:00
Jimmy Brisson c9674dc7f8 Fix pylint in iar.py except for the long regex 2019-03-04 11:36:36 -06:00
Jimmy Brisson 1712506de2 Fix pylint warnings in gcc.py except for the long regex 2019-03-04 11:36:36 -06: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 b0b43c27bf Correct all pylint warnings and errors except 4
The 4 remaining are related to the fact that __init__.py defines a base class.
They'll be removed next commit
2019-03-04 11:32:16 -06:00
Jimmy Brisson 7a55bc7b0c Prevent "Image: None" in log 2019-03-04 11:32:16 -06:00
Jimmy Brisson 98a7bfcdcc Define filename when OUTPUT_EXT is elf 2019-03-04 11:32:16 -06:00
Jimmy Brisson cd20c37cdc Drop unused variable from link_program 2019-03-04 11:32:15 -06:00
Jimmy Brisson 3353722d36 Correct use before definition bug in ARM 2019-03-04 11:32:15 -06:00
Jimmy Brisson a007212602 Remove use of hooks from IAR
Aparantely I missed this previously
2019-03-04 11:32:15 -06:00
Jimmy Brisson 4cac89c22b Reorder post-build and managed bootloader mode merging
Priously, post-bulid was run before the merge from managed bootloader mode.
This renders many post-build scripts less than useful, as most of them
compute a digest of the ROM image generated in a build.

This reorders the post-build scripts to come after the managed bootloader
mode so that post-build script digests are useful again.
2019-03-04 11:30:49 -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
Cruz Monrreal e77f03cfbc
Merge pull request #9317 from naveenkaje/tools_bootloader_script
tools: support cases where bootloader is in chunks
2019-02-26 22:49:42 -06:00
deepikabhavnani f33fc3ae7b Set IAR version as 8.32 in tools 2019-02-26 12:53:30 +00:00
Naveen Kaje 4cc21820bb tools: support cases where bootloader is in chunks
Support the requirement where bootloader can be in chunks and enable
placing the application at a particular offset specified by config.
With FEATURE_BOOTLOADER support, the bootloader can be placed at a
high address. Add support to the tools so that application can be
placed in the available space before the beginning of the bootloader.
2019-02-21 15:11:44 -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
Cruz Monrreal II b59bb465ba Removed decode since deeper tools always return strings 2019-02-12 12:05:28 -06:00
Nir Sonnenschein 5ef9499296
Merge pull request #9619 from deepikabhavnani/typo_correct
Correct the dsp flag from no_dsp to nodsp
2019-02-07 18:13:24 +02:00
Martin Kojtal 09db995c73
Merge pull request #9625 from kfnta/tools_arm_fix
Fix cortex-m33 armlink error
2019-02-07 09:24:42 +01:00
Martin Kojtal 9bda4494ca
Merge pull request #9614 from kfnta/tools_gcc_fix
Fix cortex-m33-S gcc compilation error
2019-02-07 09:24:00 +01: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
deepikabhavnani 07ccd82719 Correct the dsp flag from no_dsp to nodsp 2019-02-05 09:35:46 -06:00
Michael Schwarcz 0e7d172d0f
Fix cortex-m33-S compile error
Compilation error was due to due to bug in gcc.py
2019-02-05 14:48:29 +02: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
Brian Daniels 811152da65
Add missing space - coding style nit
Co-Authored-By: deepikabhavnani <deepika.bhavnani@arm.com>
2019-02-01 10:38:37 -06:00
deepikabhavnani 6097095de4 Set the DSP option as `E` for Cortex-M33 2019-01-31 16:19:24 -06:00
deepikabhavnani fdbcae3830 Correct the floating+dsp options for Cortex-M processors
As per the IAR Development guide, below options for CPU are valid

1. Cortex-M33
2. Cortex-M33.no_dsp (core without integer DSP extension)
3. Cortex-M33.fp (floating-point unit with support for single precision)
4. Cortex-M33.no_se (core without support for TrustZone)
5. Cortex-M4
6. Cortex-M4F
7. Cortex-M7
8. Cortex-M7.fp.dp (floating-point unit with support for double precision)
9. Cortex-M7.fp.sp (floating-point unit with support for single precision)
2019-01-31 16:19:24 -06:00
deepikabhavnani 0082474ef2 Update `cmse` flag based on core_arch instead of different cores 2019-01-31 16:19:24 -06:00
deepikabhavnani f760f72757 Update IAR flags for Armv8M devices.
Cortex-M23 / Cortex-M33 CPU settings for baseline and mainline
profile (with optional floating and dsp options) updated.
2019-01-31 16:19:24 -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 febbeffff6 Change if statements to lookup tables 2019-01-25 09:43:03 -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 c472005cfa GCC_ARM: Strip the -NS from core option before setting floating point options 2019-01-25 09:28:36 -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 129889bf52
Merge pull request #9404 from deepikabhavnani/dsp_flag
DSP_PRESENT flag is needed for Armv8m devices having DSP enabled
2019-01-23 14:21:23 +01: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
Deepika ed8b53877c DSP_PRESENT flag is needed for Armv8m devices having DSP enabled 2019-01-18 13:34:15 -06:00
Kevin Bracey d17d43bdfa Revert "Warn with ARMC6 and not v8m"
This reverts commit 3f684113b0.
2019-01-17 10:59:27 -06:00
Senthil Ramakrishnan 3e6dafa71a Removed extra space 2019-01-04 09:33:33 -06:00
Senthil Ramakrishnan f10ed4b286 Add more information to error url to enhance error analytics 2019-01-04 09:24:31 -06:00
Cruz Monrreal 57c2079605
Merge pull request #9154 from kjbracey-arm/armc6_hardfp
ARMC6: Use float-abi=hard
2019-01-03 10:34:23 -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
Mahesh Mahadevan 4649a6ee5f Update to add support for Cortex-M33FD
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-12-13 14:11:49 -06:00
Anna Bridge a91dccd901
Merge pull request #9072 from theotherjimmy/toggle-memory-defines
Enable stats reporting with a flag in targets.json
2018-12-13 15:10:46 +00:00
Jimmy Brisson 9dbdbe8e85 Enable stats reporting with a flag in targets.json
### Description

PR #8607 will cause problems for the NRF52832 and the NRF52840
in the online compiler starting with 5.10.2. This PR prevents this problem
by using a toggle in `targets.json` to enable these new defines for every
target except for the NRF52832 and NRF52840.

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Docs update
    [ ] Test update
    [ ] Breaking change
2018-12-11 15:58:37 -06: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
Cruz Monrreal 2b46b1d64d
Merge pull request #8779 from theotherjimmy/memap-better-old
Migrate old memap file handling into toolchains
2018-11-30 17:51:08 -06:00
Martin Kojtal e69aa15aea
Merge pull request #8744 from kfnta/psa_spm_base
PSA Secure partition manager and services
2018-11-27 15:26:38 +01:00
Oren Cohen dd73fa689c PSA SPM
* Intorduce PSA-SPM to mbed-os
* Add SPM tests (for PSA targets)
* Add PSA PRoT internal storage Secure implementation
* Integrate SPM into the boot proccess
* PSA manifest data generator
* Introduce PSA targets skeleton to mbed-os
* Add artifact delivery to the tools
2018-11-27 09:16:35 +02:00
Jimmy Brisson 38d8bb64fa Migrate old memap file handling into toolchains
### Description

This PR moves the old memap file handling required for differential
memap from within memap to the toolchain object. This has the
advantage that we can do the `mv <app>.map <app>.map.old` the moment
before it is overwritten by the linker. This should allow multiple
reruns of memap without modifying your build directory.

### Pull request type

    [ ] Fix
    [x] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Docs update
    [ ] Test update
    [ ] Breaking change
2018-11-26 08:47:40 -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
Martin Kojtal 5b42e2886f
Merge pull request #8607 from aashishc1988/ram_rom_fetch
Fetch ram/rom start/size
2018-11-22 10:49:50 +01:00
Aashish chaddha 0c594a42dc The check for managed bootloader support should be in regions and we need a try/catch when we call it.
Moved "bootloader_not_supported" check to where it was and handle that exception at only one place.

Removed ram/rom size info for realtek from targets.json. THe info we have is not correct.

was Not handling config exceptions from regions and ram_regions property

adding rom-ram info for REALTEK_RTL8195AM
2018-11-15 15:28:14 -06:00
Deepika a6ed5fcbd0 Adding arch option instead MCPU for no dsp and no fpu support
No FPU option is valid, but supported only for 8.x releases, with 7.x release
+nofp gives build errors.
2018-11-13 08:21:31 -06:00
Aashish chaddha 3956451c07 Fixing some corner cases
1. Adding SRAM in available ram
2. If the target doesn't exist in cmsis but targets.json, handle accordingly and raise apt exceptions where needed.
3. If no sram is provided, raise exception
2018-11-12 13:28:01 -06:00
Cruz Monrreal II 6ab56d978e Merge branch 'quote-includes-2' of ssh://github.com/moonchen/mbed-os into rollup 2018-11-09 11:40:32 -06: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
Aashish chaddha 27f20c7478 Fetch RAM/ROM information from CMSIS pack and add as defines
RAM/ROM memory data of target is required for statistics and linker
files, goal here is to fetch maximum 4 RAM/ROM regions from CMSIS pack
and make them available for C/C++/Linker flags as defines
2018-11-07 10:20:28 -06:00
Deepika Bhavnani ba86a53871 Update tools/toolchains/gcc.py 2018-11-05 17:44:18 +01:00
jeromecoutant 1ea28973b2 TOOLS : Add missing M33 and M33F in python scripts 2018-11-05 17:44:15 +01:00
Leszek Rusinowicz 9b1db83eaa Added required changes outside of TARGET_Cypress tree:
1. In drivers/Timer.cpp make sure that hardware timer is initialized outside of critical section.
   This is because on PSoC 6 hardware resources are shared between both cores
   and we have to make sure that the other core is not already using a particular resource.
   This mechanism is based on interprocessor communication taht cannot be handled iside of
   critical section.
2. Added support for post-binary hook function for PSoC 6 targets, so the hex image for M0+ CPU core
   can be merged with M4 core image for the final image.
3. Added possibility to use hook function from exportes, so the M0+ hex image could be included
   in the generated project.
4. Included hex images in the build dependency list, so the update of image is catched by the
   build process.
2018-11-01 20:19:21 +01:00
Mo Chen 2c77c1edd6 Put quotes around include path options
This fixes a compile error when the path has space characters.
2018-10-30 17:15:54 -05:00
Cruz Monrreal 46d717cf18
Merge pull request #8250 from theotherjimmy/fix-7723
Tools: Don't traceback on missing linker script
2018-10-22 11:30:50 -05:00
Cruz Monrreal II b957f602b8 Corrected OFFICILLY_SUPPORTED typo 2018-10-18 11:13:17 -05:00
Jimmy Brisson ec72ce7787 Track supported information within toolchain clasess 2018-10-18 11:10:16 -05:00
Cruz Monrreal a5855e4da5
Merge pull request #8359 from kaidokert/master
Allow overriding build timestamp from env
2018-10-17 08:57:37 -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