04-14-2020, 05:31 AM
Thanks for the update. Very interesting. You may be onto something with the MBR. It is definitely important to check what is happening with the interrupt vectors on the other programs.
wasp-bootloader was pretty much the first bit of PineTime software I wrote. At the time I was assuming we'd end up with a bootloader per bluetooth stack that runs on PineTime (maybe with some common library code for all bootloaders to run an update from RAM and SPI flash to make swapping stacks possible) and I hoped wasp-bootloader would be useful for any softdevice based software. The concepts might be interesting for other BLE stacks but ultimately I think softdevice consumes too much flash to be used only by a bootloader.
Note there are other possible approaches to PineTime bootloaders so we don't need a different bootloader for each BLE stack (small shim that loads BLE stack from SPI flash for example) but I haven't yet seen quite how to make that type of bootloader work alongside the MBR
Anyhow, in the coming weeks I'm planning to write a payload for wasp-bootloader that allows us to update the bootloader and softdevice over-the-air. Initially I'll run it from flash but I would like to try running it from RAM since they makes it much easier if/when the flash footprint of the softdevice changes.
wasp-bootloader was pretty much the first bit of PineTime software I wrote. At the time I was assuming we'd end up with a bootloader per bluetooth stack that runs on PineTime (maybe with some common library code for all bootloaders to run an update from RAM and SPI flash to make swapping stacks possible) and I hoped wasp-bootloader would be useful for any softdevice based software. The concepts might be interesting for other BLE stacks but ultimately I think softdevice consumes too much flash to be used only by a bootloader.
Note there are other possible approaches to PineTime bootloaders so we don't need a different bootloader for each BLE stack (small shim that loads BLE stack from SPI flash for example) but I haven't yet seen quite how to make that type of bootloader work alongside the MBR
Anyhow, in the coming weeks I'm planning to write a payload for wasp-bootloader that allows us to update the bootloader and softdevice over-the-air. Initially I'll run it from flash but I would like to try running it from RAM since they makes it much easier if/when the flash footprint of the softdevice changes.