Skip to content

IAR 8 feature branch merge #9808

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 24 commits into from
Feb 26, 2019
Merged

IAR 8 feature branch merge #9808

merged 24 commits into from
Feb 26, 2019

Conversation

deepikabhavnani
Copy link

Description

IAR 8.x feature branch merge.

@ARMmbed/mbed-os-test-team - Please switch CI on master branch to IAR 8.32 after 5.11.5 release candidate is ready.

@ARMmbed/mbed-os-maintainers - If PR #9807 is merged before starting CI for this, then it should show up here. Else can update #9807 to be against master, if this is merged.

Pull request type

[ ] Fix
[ ] Refactor
[ ] Target update
[X] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change

Reviewers

@SenRamakri

Release Notes

Updating the IAR toolchain version to IAR 8.32.

@ciarmcom ciarmcom requested review from SenRamakri and a team February 22, 2019 08:00
@ciarmcom
Copy link
Member

@deepikabhavnani, thank you for your changes.
@SenRamakri @ARMmbed/mbed-os-maintainers @ARMmbed/mbed-os-tools please review.

aqib-ublox and others added 10 commits February 22, 2019 09:25
Two new block properties available in linker configuration files:
"expanding size" and "minimum size" for IAR 8.11.2 and above

Sample:
define block HEAP with expanding size, minimum size = 16K, alignment = 8 {};

This block will expand to consume all remaining available space in
the range where it is placed. If several such blocks end up in the same
range, they will share the remaining space.
Cannot place a block with expanding size inside another block with
expanding size, inside a block with maximum size, or inside an overlay.
RAM define/section if splited, IAR exanpding size considers just one
section while heap creation which results in smaller chunk for heap.
This commit is to unify the RAM section.
Few targets have libraries compatible to IAR 7.x, which fail with
IAR 8.x, IAR support for them is removed till updated library is
added.

CI failure seen if IAR is not added as supported target, trying with
release_version as empty string

List of targets affected:

1. UBLOX_EVK_ODIN_W2
2. MTB_UBLOX_ODIN_W2
3. MBED_CONNECT_ODIN
4. MTB_MXCHIP_EMW3166
5. MTB_ADV_WISE_1530
6. MTB_USI_WM_BN_BM_22
7. REALTEK_RTL8195AM
Reference template file is used from IAR8.32 installation available at path
"Embedded Workbench 8.2\arm\config\template\ConvertToIAR\template_project.ewp"

Also added trustzone configs in iar_definitions.json
Two new block properties available in linker configuration files:
"expanding size" and "minimum size" for IAR 8.11.2 and above

Sample:
define block HEAP with expanding size, minimum size = 16K, alignment = 8 {};

This block will expand to consume all remaining available space in
the range where it is placed. If several such blocks end up in the same
range, they will share the remaining space.
Cannot place a block with expanding size inside another block with
expanding size, inside a block with maximum size, or inside an overlay.
Reverting this feature till IAR 8.x is stable and supported in Mbed OS
for few releases

1. Revert "Add Dynamic heap support to IAR"

This reverts commit 8ee29bb.

2. Revert "Splited RAM section not compatible with dynamic HEAP."

This reverts commit a645bb2.

3. Revert "Add Dynamic heap support to IAR"

This reverts commit 891e1f2.
@timurh01
Copy link
Contributor

There are still targets that are failing IAR8 nightly build and are passing on IAR7 nightly build.

  • CY8CKIT_062_4343W
  • CY8CKIT_062_BLE
  • CY8CKIT_062_WIFI_BT
  • CY8CPROTO_062_4343W
  • CYW943012P6EVB_01
  • FUTURE_SEQUANA
  • FUTURE_SEQUANA_M0
  • FUTURE_SEQUANA_PSA
  • MTB_ADV_WISE_1530
  • MTB_MXCHIP_EMW3166
  • MTB_USI_WM_BN_BM_22
  • REALTEK_RTL8195AM

@deepikabhavnani
Copy link
Author

@timurh01 - all the targets in list except sequana are expected to fail, since they have non-compatible libraries and fixes for them will come directly on master branch. I will check Sequana failures

@timurh01
Copy link
Contributor

@deepikabhavnani Have plans changed at somepoint? Because test team has been under the impression that every target should be green before merge.

@deepikabhavnani
Copy link
Author

Have plans changed at somepoint? Because test team has been under the impression that every target should be green before merge.

No, every target should be green for merging PR in master.
In case of nightly build the errors state "Target does not support IAR toolchain", i.e because nightly for feature-iar8 has explicitly targets selected and not based on what is supported.

Copy link
Contributor

@bridadan bridadan left a comment

Choose a reason for hiding this comment

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

Looks ok, besides the disabled targets (though looks like you're addressing those)

Random number generation in case of IAR 8, requires TLS support.
Thread local storage is not part of Mbed OS, test is updated to have random
numbers sparse, but in future random number creation should be moved to main
thread, or use some other logic for randomization instead of rand() call.
@0xc0170
Copy link
Contributor

0xc0170 commented Feb 25, 2019

  • CY8CKIT_062_4343W
  • CY8CKIT_062_BLE
  • CY8CKIT_062_WIFI_BT
  • CY8CPROTO_062_4343W
  • CYW943012P6EVB_01
  • FUTURE_SEQUANA
  • FUTURE_SEQUANA_M0
  • FUTURE_SEQUANA_PSA
  • MTB_ADV_WISE_1530
  • MTB_MXCHIP_EMW3166
  • MTB_USI_WM_BN_BM_22
  • REALTEK_RTL8195AM

@deepikabhavnani Where is this being tracked?

As the branch was updated and rebased, restarting CI

@mbed-ci
Copy link

mbed-ci commented Feb 25, 2019

Test run: FAILED

Summary: 1 of 8 test jobs failed
Build number : 1
Build artifacts

Failed test jobs:

  • jenkins-ci/mbed-os-ci_build-IAR

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 26, 2019

  1. Rebase on master after Enhance targets.json with components #9721 is merged to master

Can we include 9721 here? That would be the easiest approach at this moment. it was approved, already tested once. And would fix the issue with IAR8.

Deepika and others added 4 commits February 26, 2019 09:21
Adding storage components to boards
Due to targets enhancement some boards failed the general block device tests for flashiap component,
The fails were due to boards containing inconsistent sector sizes.
The tests were modified but should be improved to address the problem.
Rand() function issues were fixed.
@adbridge
Copy link
Contributor

Now aborted CI

Deepika and others added 5 commits February 26, 2019 10:26
The SPIF and QPIF components tests are fully merged into general block device tests and were deleted
This reverts commit 334b2d6.

This commit is not required any more as changes for this are already part
of master branch
Revert "Update params in calls to LDREXW/STREXW to uint32_t"
@cmonr
Copy link
Contributor

cmonr commented Feb 26, 2019

CI started

@mbed-ci
Copy link

mbed-ci commented Feb 26, 2019

Test run: SUCCESS

Summary: 12 of 12 test jobs passed
Build number : 3
Build artifacts

"post_binary_hook": {
"function": "RTL8195ACode.binary_hook",
"toolchains": ["ARM_STD", "GCC_ARM", "IAR"]
},
"release_versions": ["5"],
"release_versions": [],
Copy link
Contributor

Choose a reason for hiding this comment

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

this should still have version 5 ?

Copy link
Contributor

Choose a reason for hiding this comment

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

If it does, I think it should come in via a followup PR, considering how much this PR is blocking.

Copy link
Contributor

Choose a reason for hiding this comment

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

just final check :) LGTM

Copy link
Contributor

@0xc0170 0xc0170 left a comment

Choose a reason for hiding this comment

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

Just one line - might need an update

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 26, 2019

@SenRamakri Please review, this PR needs approvals!

@cmonr cmonr merged commit d29312e into master Feb 26, 2019
@adbridge adbridge deleted the feature-iar8 branch August 20, 2019 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.