Skip to content

FUTURE_SEQUANA: Add suport for ARMC6 #10346

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 3 commits into from
Apr 9, 2019

Conversation

lrusinowicz
Copy link
Contributor

Description

This PR adds necessary set of changes to support ARMC6 compiler for FUTURE_SEQUANA family of targets. I've run default set of mbed tests on it and tests generally pass, except for a few failures related to device_key and flash API. I strongly suspect these are unrelated and would rather fix them separately.

Intended to fix #9578.

Pull request type

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

Reviewers

Release Notes

This change moves all PDL drivers into common source and include
directories to alleviate issue with Windows version of GNU Make 4.x
maximum command line length limit.
Also enabled ARMC6 compiler for FUTURE_SEQUANA family of targets.
Copy link
Contributor

@orenc17 orenc17 left a comment

Choose a reason for hiding this comment

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

Please add volatile for the unused variables

@@ -615,11 +615,13 @@ __STATIC_INLINE void Cy_IPC_Drv_SetInterrupt(IPC_INTR_STRUCT_Type* base, uint32
*******************************************************************************/
__STATIC_INLINE void Cy_IPC_Drv_ClearInterrupt(IPC_INTR_STRUCT_Type* base, uint32_t ipcReleaseMask, uint32_t ipcNotifyMask)
{
uint32_t unused;
Copy link
Contributor

Choose a reason for hiding this comment

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

i think you should add volatile so the compiler wont optimize that out

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was thinking about it, but the ARM clang reference manual states (section 7.12 Qualifiers):

Value computation of an lvalue expression with a volatile qualified type constitutes an access to the corresponding object, even when the value is discarded.

So I think it's ok, as it's hw register (data field), that is declared volatile. Variable unused could be skipped.
Same holds true for GCC.

@ciarmcom ciarmcom requested a review from a team April 8, 2019 17:00
@ciarmcom
Copy link
Member

ciarmcom commented Apr 8, 2019

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

@0xc0170
Copy link
Contributor

0xc0170 commented Apr 9, 2019

CI started

@mbed-ci
Copy link

mbed-ci commented Apr 9, 2019

Test run: SUCCESS

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

@cmonr cmonr merged commit 67de89d into ARMmbed:master Apr 9, 2019
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.

Mbed-OS build fails for FUTURE_SEQUANA/family of targets with ARM Compiler 6.11
6 participants