cpu/cortexm_common: use linker variable to initialize SCB->VTOR#6638
cpu/cortexm_common: use linker variable to initialize SCB->VTOR#6638vincent-d merged 3 commits intoRIOT-OS:masterfrom
Conversation
|
Looks good. What boards have you tested it on? |
|
Tested with our hardware (stm32f2 based), I'll give a try with a nucleo-f401. |
|
Works fine on nucleo-f207 and nucleo-f401, I don't have any others cortex-m(3/4) to test |
|
Tested on fox, nucleo-f334 with success. |
|
@gebart the kinetis boards work with this PR? |
|
@astralien3000 Can you test with the opencm board? Maybe with this PR you can avoid to specify explicitly where the VTOR is? |
|
@kaspar030 does this breaks the softdevice (anyways IIRC it's already broken)? In my opinion it shouldn't... |
|
Good PR ! |
|
This does not work on Kinetis. The program crashes on first ISR call after the SCB->VTOR assignment. Looking at the map file I can see that the _isr_vectors variable is not placed at 0x00000000 as it should. Might have something to do with the special ldscript for Kinetis. |
|
Fix for Kinetis is at OTAkeys#5 |
|
OTAkeys#5 cherry picked |
|
Can you squash? I think this is ready. |
|
I was looking on the boards that could be affected by this PR and I only see the spark-core. Besides, the softdevice will bee indeed broken, however I couldn't find any usage of its linker script. @kaspar030 any hints? |
ae41528 to
46ad232
Compare
|
Squashed |
46ad232 to
27057d4
Compare
|
@kYc0o No problem, done! |
|
All green, go |
Use the actual vector base address from the linker to initialize the vector base address register.
It's easier to overwrite from an application with a custom linker file.