Skip to content

M2351: Support IAR #12353

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 3, 2020
Merged

M2351: Support IAR #12353

merged 2 commits into from
Feb 3, 2020

Conversation

ccli8
Copy link
Contributor

@ccli8 ccli8 commented Feb 3, 2020

Summary of changes

This PR adds support for IAR toolchain on M2351 targets:

  1. Enable IAR on non-secure targets
  2. Disable IAR on secure targets because:
    1. IAR toolchain bug: As of IAR 8.32, cmse_nonsecure_caller() is not always inlined.
    2. TFM hasn't supported IAR yet.

Pull request type

[x] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[] Feature update (New feature / Functionality change / New API)
[] Major update (Breaking change E.g. Return code change / API behaviour change)

Test results

[] No Tests required for this change (E.g docs only update)
[x] Covered by existing mbed-os tests (Greentea or Unittest)
[] Tests / results supplied as part of this PR

ccli8 added 2 commits January 30, 2020 13:12
1.  On M2351, SYS/CLK registers are hard-wired to secure. Define MBED_TZ_DEFAULT_ACCESS to 1 so that all non-secure user threads have access to call secure functions to control these registers.
2.  MBED_TZ_DEFAULT_ACCESS is only meaningful for non-secure target. Define it only for non-secure target in targets.json.
3.  On TFM target, MBED_TZ_DEFAULT_ACCESS has defined in mbed_lib.json. Avoid duplicate definition which IAR assembler doesn't allow.
1.  Enable IAR on non-secure targets
2.  Disable IAR on secure targets because:
    (1) IAR toolchain bug: As of IAR 8.32, cmse_nonsecure_caller() is not always inlined.
    (2) TFM hasn't supported IAR yet.
@ciarmcom
Copy link
Member

ciarmcom commented Feb 3, 2020

@ccli8, thank you for your changes.
@Ronny-Liu @ARMmbed/mbed-os-maintainers please review.

@ciarmcom ciarmcom requested review from Ronny-Liu and a team February 3, 2020 02:00
Copy link
Member

@bulislaw bulislaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mergify mergify bot added needs: CI and removed needs: review labels Feb 3, 2020
@0xc0170
Copy link
Contributor

0xc0170 commented Feb 3, 2020

CI started

@mbed-ci
Copy link

mbed-ci commented Feb 3, 2020

Test run: SUCCESS

Summary: 11 of 11 test jobs passed
Build number : 1
Build artifacts

@0xc0170 0xc0170 added the release-version: 6.0.0-alpha-2 Second pre-release version of 6.0.0 label Feb 3, 2020
@0xc0170 0xc0170 merged commit 443802a into ARMmbed:master Feb 3, 2020
@mergify mergify bot removed the ready for merge label Feb 3, 2020
@ccli8 ccli8 deleted the nuvoton_m2351_iar branch February 4, 2020 01:18
@0xc0170
Copy link
Contributor

0xc0170 commented Feb 4, 2020

Not related to this PR, I am looking for an offender.

Build failed, but not visible in the PR itself. There are errors:

Error: L6218E: Undefined symbol Image$$ARM_LIB_HEAP$$ZI$$Base (referred from BUILD/LPC1768/ARM-DEVELOP/mbed-os/platform/source/mbed_sdk_boot.o).
Error: L6218E: Undefined symbol Image$$ARM_LIB_HEAP$$ZI$$Length (referred from BUILD/LPC1768/ARM-DEVELOP/mbed-os/platform/source/mbed_sdk_boot.o).

I saw this in another PR today, I am now looking at offender. Looks like CI failed to report correct status and master might have an issue.

cc @ARMmbed/mbed-os-test

@ccli8 ccli8 restored the nuvoton_m2351_iar branch September 17, 2020 05:34
@ccli8 ccli8 deleted the nuvoton_m2351_iar branch March 16, 2021 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-version: 6.0.0-alpha-2 Second pre-release version of 6.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants