Skip to content

Apollo3: Fix run time error due to memory mapping #14277

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

Conversation

hugueskamba
Copy link
Collaborator

@hugueskamba hugueskamba commented Feb 12, 2021

Summary of changes

Fixes ##14273

The Apollo3 targets require dummy sections in stack and heap regions.
The stack dummy section does not contain any symbols. It is only used
for the linker to calculate the size of the stack sections and assign
values to stack symbols later.
The heap dummy region is used to identify the beginning of available dynamic memory.

Impact of changes

Migration actions required

Documentation


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

Reviewers


The Appollo3 targets require dummy sections in stack and heap regions.
The stack dummy section does not contain any symbols. It is only used
for the linker to calculate the size of the stack sections and assign
values to stack symbols later.
The heap dummy region is used to identify the beginning of available dynamic memory.
@ciarmcom ciarmcom added the release-type: patch Indentifies a PR as containing just a patch label Feb 12, 2021
@ciarmcom ciarmcom requested a review from a team February 12, 2021 12:30
@ciarmcom
Copy link
Member

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

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 12, 2021

@idea--list please review

@idea--list
Copy link
Contributor

@0xc0170 and @hugueskamba
Thanks for the fix and quick reply!

Compiled the official blinky and 2-3 other code with this change and code runs again on the board as expected.

Comment on lines +43 to +47
; This section does not contain any symbols. It is only used for the linker
; to calculate the size of the stack sections and assign values to stack
; symbols later
#define STACK_DUMMY_START (MBED_RAM1_START + MBED_RAM1_SIZE)
#define STACK_DUMMY_SIZE 0x8
Copy link
Contributor

@LDong-Arm LDong-Arm Feb 12, 2021

Choose a reason for hiding this comment

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

We got the info from the GCC linker script - the ranges of the stack and the heap are both shifted down by 8 bytes:

Dummy sections exist in many GCC linker scripts but most of them do not shift any bytes. I wonder if the 8 bytes are used for something in particular on this target? Thanks in advance. @ARMmbed/team-sparkfun

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 12, 2021

CI started

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 12, 2021

@idea--list this will get into the upcoming release

@mergify mergify bot added needs: CI and removed needs: review labels Feb 12, 2021
@mbed-ci
Copy link

mbed-ci commented Feb 12, 2021

Jenkins CI Test : ✔️ SUCCESS

Build Number: 1 | 🔒 Jenkins CI Job | 🌐 Logs & Artifacts

CLICK for Detailed Summary

jobs Status
jenkins-ci/mbed-os-ci_cmake-example-ARM ✔️
jenkins-ci/mbed-os-ci_cmake-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_unittests ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-ARM ✔️
jenkins-ci/mbed-os-ci_build-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_cmake-example-test ✔️
jenkins-ci/mbed-os-ci_greentea-test ✔️

@0xc0170 0xc0170 merged commit ff30718 into ARMmbed:master Feb 14, 2021
@mergify mergify bot removed the ready for merge label Feb 14, 2021
@mbedmain mbedmain added release-version: 6.8.0 Release-pending and removed release-type: patch Indentifies a PR as containing just a patch Release-pending labels Feb 16, 2021
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.

7 participants