tock / tock-bootloader Goto Github PK
View Code? Open in Web Editor NEWSoftware bootloader for boards running Tock.
Software bootloader for boards running Tock.
Not a great deal, but slightly annoying.
Although the bootloader can program the kernel and any application over serial, it cannot update its own code, since it is running from flash.
If the bootloader code relocates into RAM, it would be possible to arbitrarily overwrite its flash image. Thus, the bootloader could update itself.
I think the relocation step could be implemented simply by changing the linker script, so that all code sections are between _srelocate
and _erelocate
. The startup code will take care of the rest.
The only remaining item would be to add a corresponding command to tockloader.
Maybe this is a feature we don't actually want? It would allow a board to be bricked by a bad bootloader image (assuming the developer doesn't have a JLink). For a developer with only serial port access, the choice is either 1. a bad bootloader update could brick them, or 2. they are stuck with whatever version of the bootloader they started with.
Personally, I think 2. is the worse case, but maybe others feel differently. Thoughts?
I saw this project and the mcuboot[1] project came to my mind as a good reference to be used as a base or design reference.
I thought it would be great to raise it now as the project is active and this can shorten the amount of effort need to add OTA and safe upgrade support.
Is there some plan support for port risc-v ?
What is necessary to use the bootloader with the nrf52dk
USB debugger?
Typically our bootloaders require an FTDI chip to do serial over USB so that the bootloader running on the chip only requires a serial interface. Since MCUs sometimes have USB hardware, It has always seemed reasonable to omit the FTDI chip and just communicate with the USB peripheral on the MCU directly. In particular, the Arduino Nano 33 relies on having a USB bootloader on the chip itself.
Right now, the kernel location is fixed at 0x10000. Ideally, this wouldn't be fixed in case a platform wants to put its kernel at a different address.
tock-bootloader/bootloader/src/bootloader.rs
Lines 143 to 157 in 8228baf
I don't think this would be particularly hard, I just don't know how to do it.
This may need to split to nrf51 and 52 in the future, but hopefully the bootloader is minimal enough that much/most can be shared.
Probably missed when splitting into different repositories.
The instructions tell you to go to
boards/
but the only subdirectory is
boards/hail-bootloader
Does this work for imix? If hail is the only board supported then the instructions should say so explicitly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.