-
Notifications
You must be signed in to change notification settings - Fork 666
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
Make nrf52* based boards compatible with bootloader. #1681
Conversation
Now the script supports more flashing methods: - JLink (with tockloader) - OpenOCD (with tockloader) - pyOCD - Nordic DFU - none (will produce an IntelHex file) Also merged the contributions from: - Yihui Xiong to support the Makerdiary USB dongle board - Dennis Geurts to support Nordic DFU Doc updated accordingly. Imported 2 patches for Tock kernel: - 06-add-set_vector_table_offset.patch (upstream tock/tock#1579) - 07-nrf52-bootloader.patch (upstream tock/tock#1681)
Now the script supports more flashing methods: - JLink (with tockloader) - OpenOCD (with tockloader) - pyOCD - Nordic DFU - none (will produce an IntelHex file) Also merged the contributions from: - Yihui Xiong to support the Makerdiary USB dongle board - Dennis Geurts to support Nordic DFU Doc updated accordingly. Imported 2 patches for Tock kernel: - 06-add-set_vector_table_offset.patch (upstream tock/tock#1579) - 07-nrf52-bootloader.patch (upstream tock/tock#1681)
The bootloader doesn't do this? |
Now the script supports more flashing methods: - JLink (with tockloader) - OpenOCD (with tockloader) - pyOCD - Nordic DFU - none (will produce an IntelHex file) Also merged the contributions from: - Yihui Xiong to support the Makerdiary USB dongle board - Dennis Geurts to support Nordic DFU Doc updated accordingly. Imported 2 patches for Tock kernel: - 06-add-set_vector_table_offset.patch (upstream tock/tock#1579) - 07-nrf52-bootloader.patch (upstream tock/tock#1681)
It can't. The bootloader comes with its own interrupt vectors and jumps to the app (in our case Tock). This way, if the app is faulty, it can stay in the bootloader and you can recover your board. This means that Tock need to set the offset to be able to use its own interrupt vector. If there's no bootloader, this will be equivalent to a no-op as we're setting the vectors to 0x0 which is the value at reset. |
Well it can, since the Tock bootloader does, but I see your point. |
Co-Authored-By: Brad Campbell <bradjc5@gmail.com>
Now the script supports more flashing methods: - JLink (with tockloader) - OpenOCD (with tockloader) - pyOCD - Nordic DFU - none (will produce an IntelHex file) Also merged the contributions from: - Yihui Xiong to support the Makerdiary USB dongle board - Dennis Geurts to support Nordic DFU Doc updated accordingly. Imported 2 patches for Tock kernel: - 06-add-set_vector_table_offset.patch (upstream tock/tock#1579) - 07-nrf52-bootloader.patch (upstream tock/tock#1681)
bors r+ |
Timed out |
That's cool, bors, that's cool. |
Pull Request Overview
This pull request makes Tock OS compatible with a bootloader on all boards that are based on nrf52 chip family.
The offset is determined by the linker. This way the board layout defines the offset.
Testing Strategy
This pull request was tested by flashing OpenSK on a nRF52840DK board using JLink, flashing it on a nRF52840 USB dongle using
nordicdfu
tool as well as flashing OpenSK firmware on a nRF52840-MDK USB dongle over DFU.TODO or Help Wanted
N/A
Documentation Updated
/docs
, or no updates are required.Formatting
make formatall
.