Commit Graph

98 Commits (master)

Author SHA1 Message Date
Chun-Chieh Li fd8ac31537 M2354: Support TF-M
1.  Configure non-secure target name to NU_M2354 (targets/targets.json). No NU_M2354_NS alias
2.  Following template target, enable image signing and concatenating in post-build process
    (1) Add post-build script (tools/targets).
    (2) Enable TF-M custom build by centralize relevant stuff imported from TF-M (COMPONENT_TFM_S_FW).
3.  Add M2354Code.merge_secure into whitelist of uvision6 (tools/export/uvision/__init__.py).
4.  Add M2354 CMSIS pack database (tools/arm_pack_manager/index.json).
5.  Configure stdio baudrate to 115200 to match TF-M port (platform/mbed_lib.json).
6.  Define CMSIS_NVIC_VIRTUAL to override NVIC_SystemReset with TF-M version (cmsis_nvic_virtual.h).
7.  Override tfm_ns_interface_xxx(...) to enable NS secure call:
    (1) At pre-rtos stage
    (2) In SVC context
8. Implement secure function call with tfm_platform_ioctl(...).
9. Combine stddriver_secure.h/c and hal_secure.h/c into platform_extra_secure.h/c.
10. Fix peripheral base to non-secure (PeripheralNames.h) (TrustZone-unaware since Mbed OS 6.0).
11. Fix NU_PORT_BASE/NU_GET_GPIO_PIN_DATA/NU_SET_GPIO_PIN_DATA to non-secure (PinNamesCommon.h) (TrustZone-unaware since Mbed OS 6.0).
12. NSC convention for StdDriver sys/clk (both TF-M and Mbed must follow)
    (1) SYS_ResetModule
        Usage: Replaced with SYS_ResetModule_S on Mbed OS
        Action: Make it inaccessible from Mbed (neither source nor NSC). Provide SYS_ResetModule_S on Mbed via platform ioctl instead.
    (2) CLK_GetXxx
        Usage: Called in bpwm/i2s/qspi/sc/sdh and system_M2354 on Mbed OS
        Action: Make them inaccessible from Mbed (neither source nor NSC). Re-provide them on Mbed via platform ioctl instead.
13. Remove DISABLE/ENABLE macro definitions in BSP to avoid name conflict with other modules
14. Change to TMR4/5 from TMR2/3 for implementing us_ticker/lp_ticker because TMR2 is used for TF-M NSPE test
15. Support cmake

NOTE: Export(uvision6) doesn't support TF-M target. To enable it for partial compile on Keil, force below function to return true.
      is_target_supported(tools/export/uvision/__init__.py)
2021-05-26 09:35:02 +08:00
Marcelo Salazar ccd95f1e14 Remove nRF51 targets
The following public nRF51 targets are being removed:

- NRF51822
- NRF51_DK
- NRF51_MICROBIT
2020-05-13 10:36:50 +01:00
Marcelo Salazar 0864aa86be Remove NCS36510 target 2020-04-30 09:56:36 +01:00
MarceloSalazar f21759bc35 Remove TEENSY3_1 target 2020-04-30 09:56:35 +01:00
MarceloSalazar 5dcfe57c41 Remove LPC4088 based targets 2020-04-30 09:56:32 +01:00
Devaraj Ranganna b79b33219b psa: Remove exporters for TF-M targets
Targets that use TF-M for their PSA implementation are not compatible
with exporters at this time. Explicitly block use of exporters with TF-M
using targets, for better error messages.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-04-27 09:51:14 +01:00
Taylor Heck 300820f562 Fix syntax error in uvision export tool introduced in previous commit. 2020-04-07 09:00:09 -05:00
Taylor Heck 6d382ea969 Delete now unused MTSCode.combine_bins_mts_dot function for tools. 2020-04-07 09:00:09 -05:00
Chun-Chieh Li 0ed126ba79 M2351: Add post-binary hook into uvision whitelist
This is necessary for exporting M2351 uvision project.
2019-09-16 11:02:16 +08:00
Martin Kojtal 159ee4583a
Merge pull request #11225 from kjbracey-arm/µvision528c++14
µVision export: Handle more C++ language standards
2019-08-29 16:31:45 +02: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
Chris Snow a430b6a469 Change default optimisation level to O1 when exporting to uVision 2019-08-13 12:50:51 +01: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
Brian Daniels fb6fcc5324 Only enable uvision postbuild when in a non-zipped exported project.
Projects that are zipped are typically from the online compiler or they
are meant to be used in a separate environment. Since the postbuild
script requires the Mbed OS tools to present in the project, we will
disable the postbuild script when the project is exported to a zipped
project.
2019-04-09 14:10:38 -05:00
Brian Daniels bbef60fbf2 Correct calls to merge_region_list 2019-04-09 14:10:37 -05:00
Brian Daniels ae344342d1 Fix import of region functions 2019-04-09 14:10:37 -05:00
Brian Daniels 1319948412 Conditionally enable post build in uvision for managed bootloader 2019-04-09 14:10:36 -05:00
Brian Daniels a0cce48282 Modify uvision templates to conditionally enable post build 2019-04-09 14:08:14 -05:00
Brian Daniels d004828589 Add post build script for uvision to support managed bootloader. 2019-04-09 14:08:14 -05:00
Brian Daniels 4734cb7059 Add template for export info needed by the post build script 2019-04-09 14:08:13 -05:00
Brian Daniels 533ee1f717 Add debug and flash init scripts for uvision.
These files are used when the post build script is enabled to support
projects that are using managed bootloader mode.
2019-04-09 14:08:13 -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 12e5596627 Allow both path seperator types in flash algo names 2019-03-27 08:56:46 -05:00
Brian Daniels f56bf8f689 Fix the removal of Mbed-added core flags in uvision exporter 2019-03-23 15:39:06 -05:00
Martin Kojtal e665df9c47
Merge pull request #10045 from bridadan/uvision_exporter_fixes
Uvision exporter fixes for Python 3, CPM updates, and Windows path issues
2019-03-18 08:12:47 +01:00
Mahesh Mahadevan 83eed9eb78 LPC55S69: Add IAR and uvision exporter support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-03-14 07:19:15 -05:00
Brian Daniels 5ea3b32851 Fixing uvision exporter with CPM updates 2019-03-11 19:09:09 -05:00
Brian Daniels 1920212314 Fix include paths for uvision when exported with Python 3.
The call to encode() was causing the include paths to be placed in the
uvision product file with the prefix "b'" and the postfix "'". This
broke the parsing of this file and broke the build.
2019-03-11 19:09:07 -05:00
Martin Kojtal c37ac83e8e
Merge pull request #8757 from theotherjimmy/use-cpm
Update Cmsis-pack-manager to 0.2.3
2019-03-06 15:58:42 +01:00
Jimmy Brisson 9de37ec39c Correct uvisionn export 2019-03-04 11:24:47 -06:00
Senthil Ramakrishnan e1e4456c47 Fixes for exporters failing with wrong compiler settings 2019-03-01 13:21:33 -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 22da2be37f Update uvision exporter to capture ARMC6 as default toolchain 2019-02-28 12:00:11 -06:00
Jimmy Brisson c8f1e1f854 Escape quotes in uvision project file defines 2018-08-24 14:00:52 -05:00
Jimmy Brisson a6c85ee5f4 Add asm defines to template 2018-08-08 10:43:33 -05:00
Jimmy Brisson 0924d6618e Fix a few flag-related things 2018-08-08 09:52:49 -05:00
Jimmy Brisson 1eb47934eb Fix "pare error in Defines" uvision error 2018-08-08 09:24:50 -05:00
Jimmy Brisson c51467ee91 Flake8 of uvision exporter python code 2018-08-08 09:07:45 -05:00
Jimmy Brisson 11702d16b5 Enable uvision export for NS cores 2018-08-08 09:07:45 -05:00
Jimmy Brisson 5e9ac75c4f Remove -MMD and debug print 2018-08-08 09:07:45 -05:00
Jimmy Brisson 0a175fe0f5 Use relative path to detect config header and remove -std options 2018-08-08 09:07:45 -05:00
Jimmy Brisson bafced4099 Correct check for in-template flags
It was named and used as if it were positive logic, and written with
negative logic. This changes the name and usage to negative logic.
2018-08-08 09:07:45 -05:00
Jimmy Brisson fa1bf57a4d Enable export to uvision5 + armc6 2018-08-08 09:07:38 -05:00
Cruz Monrreal e9e1ff997d
Merge pull request #7302 from OpenNuvoton/nuvoton_m2351_v1.1
Support Nuvoton's NUMAKER_PFM_M2351 target
2018-07-18 08:49:55 -05:00
Jimmy Brisson 3b7a5bb35e Filter libraries by extension in exporters 2018-07-16 14:11:09 -05:00
Jimmy Brisson de913e1ea2 Improve resources API to include more use cases 2018-07-16 14:11:08 -05:00
Jimmy Brisson 989986288f Correct uvision exporter support check 2018-07-16 11:51:20 -05:00
Cruz Monrreal II 799cfdbbc2 Compiling Cortex-A cores in uVision is not supported.
Reference: http://www2.keil.com/mdk5/selector
2018-06-21 09:13:24 -05:00
Jimmy Brisson 0c8f66f87b Correct supported check of uvision to include uARM 2018-06-12 09:28:43 -05:00