53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
# Running mynewt apps with MCUboot
|
|
|
|
Due to small differences between Mynewt's bundled bootloader and MCUboot,
|
|
when building an app that will be run with MCUboot as the bootloader and
|
|
which at the same time requires to use `newtmgr` to manage images, MCUboot
|
|
must be added as a new dependency for this app.
|
|
|
|
First you need to add the repo to your `project.yml`:
|
|
|
|
```
|
|
project.repositories:
|
|
- mcuboot
|
|
|
|
repository.mcuboot:
|
|
type: github
|
|
vers: 0-dev
|
|
user: runtimeco
|
|
repo: mcuboot
|
|
```
|
|
|
|
Then update your app's `pkg.yml` adding the extra dependency:
|
|
|
|
```
|
|
pkg.deps:
|
|
- "@mcuboot/boot/bootutil"
|
|
```
|
|
|
|
Also remove any dependency on `boot/bootutil` (mynewt's bundled bootloader)
|
|
which might exist.
|
|
|
|
To configure MCUboot check all the options available in
|
|
`boot/mynewt/mcuboot_config/syscfg.yml`.
|
|
|
|
Also, MCUboot uses a different image header struct as well as slightly
|
|
different TLV structure, so images created by `newt` have to be generated
|
|
in this new format. That is done by passing the extra parameter `-2` as in:
|
|
|
|
`newt create-image <target> <version> <pubkey> -2`
|
|
|
|
# Boot serial functionality with Mynewt
|
|
|
|
Building with `BOOT_SERIAL: 1` enables some basic management functionality
|
|
like listing images and uploading a new image to `slot0`. The serial bootloader
|
|
requires that `mtu` is set to a value that is less than or equal to `256`.
|
|
This can be done either by editing `~/.newtmgr.cp.json` and setting the `mtu`
|
|
for the connection profile, or specifying you connection string manually as in:
|
|
|
|
```
|
|
newtmgr --conntype serial --connstring "dev=/dev/ttyUSB0,mtu=256" image upload -e blinky.img
|
|
```
|
|
|
|
where `/dev/ttyUSB0` is your serial port.
|