Skip to content

Add unmanaged bootloader documentation #149

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
May 8, 2017

Conversation

theotherjimmy
Copy link
Contributor

Documentation for ARMmbed/mbed-os#4202

@theotherjimmy
Copy link
Contributor Author

@AnotherButler could you edit?
@sg- could you review?
@LiyouZhou FYI docs.

Copy link
Contributor

@AnotherButler AnotherButler left a comment

Choose a reason for hiding this comment

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

Nice work on this. I left my suggested changes. Most of them relate to passive voice.

## Creating the bootloader
## mbed OS managed bootloader

The tools of mbed OS know how to manage some bootloader projects. The tools can manage bootloader projects where the bootlodoader is placed in ROM before the application and the application starts immediately after the bootloader. If your bootloader does not meet both of these requirements, then pleas read the [unmanaged bootloader section](bootloader.md#unmanaged-bootloader). A managed bootloader project will automatically merge the bootloader image with the application image as part of the application image build process.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • In the second sentence, "is placed in ROM" is passive voice. Please clarify who or what is doing the placing.
  • Please change "pleas" to "please" in the third sentence.
  • In the last sentence, please change "will automatically merge" to "automatically merges" for consistent tense.


## Unmanaged bootloader

You want to have an unmanaged bootloader when your bootloaders requirements conflict with the requirements of the managed bootloader. You need an unmanaged bootloader when your bootloader does not come before your application in ROM or your application does not start immediately after your bootloader. Unlinke a managed bootloader, an unmananged bootloader does not automatically merge the bootloader image with the application image after building the application. We expect a user of an unmanaged bootloader build to construct there own set of scripts built atop the `mbed compile` primitive to perform bootloader and application merging.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • In first sentence, please change "bootloaders" to "bootloader's" to show possession.
  • In third sentence, please change "Unlinke" to "Unlike" to fix the typo.
  • Please change the start of the last sentence to "We expect users of unmanaged bootloader builds to construct their own sets of scripts built atop..." for agreement.


You want to have an unmanaged bootloader when your bootloaders requirements conflict with the requirements of the managed bootloader. You need an unmanaged bootloader when your bootloader does not come before your application in ROM or your application does not start immediately after your bootloader. Unlinke a managed bootloader, an unmananged bootloader does not automatically merge the bootloader image with the application image after building the application. We expect a user of an unmanaged bootloader build to construct there own set of scripts built atop the `mbed compile` primitive to perform bootloader and application merging.

An unmanaged bootloader build is a method for controlling the link location of a program within mbed OS. There are two configuration options available for changing the link location: `target.mbed_app_start` and `target.mbed_app_size`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Query: Should this appear earlier, before we first mention "unmanaged bootloaders"?

### `target.mbed_app_start`


The configuration option `target.mbed_app_start` sets the starting address of the linker script by defining the `MBED_APP_START` macro for the linker script. This configuration option may only be defined within the `target_overrides` section of an mbed application configuration and may not be defined for the meta-target `*`. When this configuration option is not defined, it defaults to the start of a target's ROM. This configuration option must be an address within ROM.
Copy link
Contributor

Choose a reason for hiding this comment

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

"may only be defined" and "may not be defined" and "is not defined" are passive voice. Please clarify who or what is doing the defining.


### `target.mbed_app_size`

The configuration option `target.mbed_app_size` defines the size of an application image in ROM by defining the `MBED_APP_SIZE` macro for the linker script. This configuration option may only be defined on a per-target basis defined within the `target_overrides` section of an mbed application configuration and may not be defined for the meta-target `*`. When this configuration option is not defined, it defaults to the remaining ROM, which is calculated by subtracting the image's offset into ROM from the total size of ROM. Together with `target.mbed_app_start`, these configuration options define a continuous region of memory that an image may use. The tools verify that this region of memory is placed within ROM, but the tools do not perform any other checks for consistency or validity.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • "may only be defined" and "may not be defined" and "is not defined" are passive voice. Please clarify who or what is doing the defining.
  • Please delete the extra space between "the" and "remaining" in the third sentence.
  • "is calculated" is passive voice. Please clarify who or what is doing the calculating.
  • "is placed within ROM" is passive voice. Please clarify who or what is doing the placing.

Delete extra space
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants