Skip to content

Instantly share code, notes, and snippets.

@lupyuen
Last active May 20, 2020 22:21
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save lupyuen/93ba71e0ae5e746e7a68e4513e0a54d8 to your computer and use it in GitHub Desktop.

What is a Bootloader?

Think of your Android phone or iPhone... Once in a while the firmware on your phone needs to be updated to support new features or to fix security vulnerabilities.

The phone downloads the new firmware over WiFi or 4G. Then it restarts to install the new firmware.

Remember that firmware is just a program... A program can't possibly overwrite itself while it's running!

We solve this problem by introducing a second program... the Bootloader. When you power on your phone, the first thing it runs is the Bootloader. When the Bootloader finds a new version of the firmware that's stored on the phone, it overwrites the old firmware with the new one. Then it starts the new firmware.

PineTime and other IoT gadgets support firmware upgrades the same way... Through the Bootloader. Although it's not done yet, PineTime's Bootloader will also be able to roll back a firmware upgrade if the firmware fails.

More details on PineTime's proposed Bootloader

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment