-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Fix vector table relocation for NRF52 #6746
Fix vector table relocation for NRF52 #6746
Conversation
As we discussed. The MBR does not trap SoftDevice service calls if the UICR bootloader address is set hence the extra check. |
/morph build |
Build : SUCCESSBuild number : 1863 Triggering tests/morph test |
Exporter Build : SUCCESSBuild number : 1511 |
Test : SUCCESSBuild number : 1675 |
/morph build |
Build : SUCCESSBuild number : 1869 Triggering tests/morph test |
Exporter Build : SUCCESSBuild number : 1516 |
Test : FAILUREBuild number : 1680 |
We should wait for nrf52 flash fix and restart CI right away then |
The vector table relocation sequence depends on: 1. Whether the SoftDevice is present. 2. The Application is a bootloader or not. If the SoftDevice is present and the application is a bootloader the MBR must be initialized to trap SoftDevice service calls before setting the new vector table address. The SCB->VTOR must be set to point at the MBR as well. If the SoftDevice is not present the SCB->VTOR can point at the new vector table directly.
/morph build |
1 similar comment
/morph build |
Build : SUCCESSBuild number : 1877 Triggering tests/morph test |
/morph build |
Build : SUCCESSBuild number : 1879 Triggering tests/morph test |
Exporter Build : SUCCESSBuild number : 1525 |
Exporter Build : SUCCESSBuild number : 1526 |
Test : FAILUREBuild number : 1690 |
Test : FAILUREBuild number : 1691 |
/morph test |
Test : SUCCESSBuild number : 1692 |
@c1728p9 Could you please review this PR asap. Thanks |
Depends on prior NRF52 stuff, going to 5.9.0-rc1 |
Description
The vector table relocation sequence depends on:
If the SoftDevice is present and the application is a bootloader
the MBR must be initialized to trap SoftDevice service calls
before setting the new vector table address.
The SCB->VTOR must be set to point at the MBR as well.
If the SoftDevice is not present the SCB->VTOR can point at the
new vector table directly.
Pull request type