Skip to content
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

IAR 8 feature branch merge #9808

Merged
merged 24 commits into from Feb 26, 2019

Conversation

@deepikabhavnani
Copy link
Contributor

commented Feb 22, 2019

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 ARMmbed/mbed-os-maintainers Feb 22, 2019

@ciarmcom

This comment has been minimized.

Copy link
Member

commented Feb 22, 2019

aqib-ublox and others added some commits Jan 31, 2019

Add Dynamic heap support to IAR
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.
Splited RAM section not compatible with dynamic HEAP.
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.
Add Dynamic heap support to IAR
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.
Update IAR project template as per IAR 8.32
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
Remove IAR supported from targets failing IAR 8.32 build
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
Dynamic heap support will be breaking change for all targets in IAR 7.x
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

This comment has been minimized.

Copy link
Contributor

commented Feb 22, 2019

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

This comment has been minimized.

Copy link
Contributor Author

commented Feb 22, 2019

@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

This comment has been minimized.

Copy link
Contributor

commented Feb 22, 2019

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

@deepikabhavnani

This comment has been minimized.

Copy link
Contributor Author

commented Feb 22, 2019

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.

@bridadan
Copy link
Contributor

left a comment

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

Show resolved Hide resolved tools/export/iar/ewp.tmpl
rand() by default does increment of 1, randomizing more
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.

@NirSonnenschein NirSonnenschein force-pushed the feature-iar8 branch from 66e93fd to f7a6d25 Feb 24, 2019

@0xc0170 0xc0170 requested a review from bulislaw Feb 25, 2019

@0xc0170

This comment has been minimized.

Copy link
Member

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Member

commented Feb 26, 2019

  1. Rebase on master after #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.

deepikabhavnani and others added some commits Feb 26, 2019

Enhance targets.json with components
Adding storage components to boards
Modifing general block device tests doe to targets enhancement
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

This comment has been minimized.

Copy link
Contributor

commented Feb 26, 2019

Now aborted CI

deepikabhavnani and others added some commits Feb 26, 2019

Merge SPIF & QSPIF components test to general block device tests
The SPIF and QPIF components tests are fully merged into general block device tests and were deleted
Revert "Update params in calls to LDREXW/STREXW to uint32_t"
This reverts commit 334b2d6.

This commit is not required any more as changes for this are already part
of master branch
Merge pull request #9863 from deepikabhavnani/old_commit_revert
Revert "Update params in calls to LDREXW/STREXW to uint32_t"
@cmonr

This comment has been minimized.

Copy link
Contributor

commented Feb 26, 2019

CI started

@mbed-ci

This comment has been minimized.

Copy link

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": [],

This comment has been minimized.

Copy link
@0xc0170

0xc0170 Feb 26, 2019

Member

this should still have version 5 ?

This comment has been minimized.

Copy link
@cmonr

cmonr Feb 26, 2019

Contributor

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

This comment has been minimized.

Copy link
@0xc0170

0xc0170 Feb 26, 2019

Member

just final check :) LGTM

@0xc0170
Copy link
Member

left a comment

Just one line - might need an update

@cmonr cmonr added needs: CI and removed needs: preceding PR labels Feb 26, 2019

@0xc0170

This comment has been minimized.

Copy link
Member

commented Feb 26, 2019

@SenRamakri Please review, this PR needs approvals!

@cmonr cmonr removed the needs: review label Feb 26, 2019

@cmonr

cmonr approved these changes Feb 26, 2019

@0xc0170 0xc0170 added ready for merge and removed needs: CI labels Feb 26, 2019

@cmonr cmonr merged commit d29312e into master Feb 26, 2019

28 checks passed

continuous-integration/jenkins/pr-head This commit looks good
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details
jenkins-ci/build-ARM Success
Details
jenkins-ci/build-ARMC6 Success
Details
jenkins-ci/build-GCC_ARM Success
Details
jenkins-ci/build-IAR8 Success
Details
jenkins-ci/cloud-client-test Success
Details
jenkins-ci/dynamic-memory-usage RTOS ROM(+0 bytes) RAM(+0 bytes)
Details
jenkins-ci/exporter Success
Details
jenkins-ci/greentea-test Success
Details
jenkins-ci/mbed2-build-ARM Success
Details
jenkins-ci/mbed2-build-GCC_ARM Success
Details
jenkins-ci/mbed2-build-IAR8 Success
Details
jenkins-ci/unittests Success
Details
travis-ci/astyle Local astyle testing has passed
Details
travis-ci/docs Local docs testing has passed
Details
travis-ci/doxy-spellcheck Local doxy-spellcheck testing has passed
Details
travis-ci/events Passed, runtime is 9145 cycles (-797 cycles)
Details
travis-ci/gitattributestest Local gitattributestest testing has passed
Details
travis-ci/include_check Local include_check testing has passed
Details
travis-ci/licence_check Local licence_check testing has passed
Details
travis-ci/littlefs Passed, code size is 8408B (+0.00%)
Details
travis-ci/psa-autogen Local psa-autogen testing has passed
Details
travis-ci/tools-py2.7 Local tools-py2.7 testing has passed
Details
travis-ci/tools-py3.5 Local tools-py3.5 testing has passed
Details
travis-ci/tools-py3.6 Local tools-py3.6 testing has passed
Details
travis-ci/tools-py3.7 Local tools-py3.7 testing has passed
Details

@cmonr cmonr removed the ready for merge label Feb 26, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.