Skip to content

Conversation

vincent-d
Copy link
Member

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.

@kaspar030 kaspar030 added Platform: ARM Platform: This PR/issue effects ARM-based platforms CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Feb 22, 2017
@jnohlgard
Copy link
Member

Looks good. What boards have you tested it on?

@jnohlgard jnohlgard added this to the Release 2017.04 milestone Feb 22, 2017
@vincent-d
Copy link
Member Author

Tested with our hardware (stm32f2 based), I'll give a try with a nucleo-f401.

@vincent-d
Copy link
Member Author

Works fine on nucleo-f207 and nucleo-f401, I don't have any others cortex-m(3/4) to test

@kYc0o
Copy link
Contributor

kYc0o commented Feb 28, 2017

Tested on fox, nucleo-f334 with success.

@kYc0o
Copy link
Contributor

kYc0o commented Feb 28, 2017

@gebart the kinetis boards work with this PR?

@kYc0o
Copy link
Contributor

kYc0o commented Feb 28, 2017

@astralien3000 Can you test with the opencm board? Maybe with this PR you can avoid to specify explicitly where the VTOR is?

@kYc0o
Copy link
Contributor

kYc0o commented Feb 28, 2017

@kaspar030 does this breaks the softdevice (anyways IIRC it's already broken)? In my opinion it shouldn't...

@astralien3000
Copy link
Member

Good PR !
I tested it on opencm9-04, it worked just fine, even if I remove my hack about the VTOR register.

@jnohlgard
Copy link
Member

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.

@jnohlgard
Copy link
Member

Fix for Kinetis is at OTAkeys#5
Feel free to squash it into your other changes

@vincent-d
Copy link
Member Author

OTAkeys#5 cherry picked

@kYc0o
Copy link
Contributor

kYc0o commented Mar 15, 2017

Can you squash? I think this is ready.

@kYc0o kYc0o self-assigned this Mar 15, 2017
@kYc0o
Copy link
Contributor

kYc0o commented Mar 15, 2017

I was looking on the boards that could be affected by this PR and I only see the spark-core.
Can you remove this and this for spark-core? Then I can ACK.

Besides, the softdevice will bee indeed broken, however I couldn't find any usage of its linker script. @kaspar030 any hints?

@vincent-d vincent-d force-pushed the pr/cortexm_isr_vector branch from ae41528 to 46ad232 Compare March 17, 2017 16:33
@vincent-d
Copy link
Member Author

Squashed

@kYc0o
Copy link
Contributor

kYc0o commented Mar 17, 2017

Oops... I think we forgot opencm904 here and here. Do you mind? 😄

@vincent-d vincent-d force-pushed the pr/cortexm_isr_vector branch from 46ad232 to 27057d4 Compare March 17, 2017 17:09
@vincent-d
Copy link
Member Author

@kYc0o No problem, done!

Copy link
Contributor

@kYc0o kYc0o left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK

@kYc0o kYc0o mentioned this pull request Mar 21, 2017
@vincent-d
Copy link
Member Author

All green, go

@vincent-d vincent-d merged commit bb0c2d0 into RIOT-OS:master Mar 21, 2017
@vincent-d vincent-d deleted the pr/cortexm_isr_vector branch March 21, 2017 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants