-
Notifications
You must be signed in to change notification settings - Fork 143
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
Support vector table in RAM for most CM0(+) devices #773
Support vector table in RAM for most CM0(+) devices #773
Conversation
12cd0cd
to
abf1377
Compare
@salkinium I was able to move all platform specific things to the :platform:core module. Are you fine with it now? I'll will have to add some documentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, very good!
abf1377
to
6b97884
Compare
6b97884
to
ec0c134
Compare
I have added the missing documentation. |
ec0c134
to
d98f779
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome!
Almost all Cortex-M0+ devices support vector table relocation using SCB->VTOR. This includes all STM32 and SAM M0+ devices.
d98f779
to
fdbb45b
Compare
For executing an application from a custom bootloader the vector table has to be relocated. On all Cortex-M cores except M0 the vector table relocation register can be set to the application's vector table location. Cortex M0 cores don't have this feature.
On some Cortex-M0 devices there is a platform specific method to relocate the vector table by placing it in RAM. They allow to remap the start of ram to the address
0x0
where the vector table is located. Thus, vector table relocation is achieved on an M0 core.All M0+ devices I could find provide the
SCB->VTOR
register as an optional core feature.SCB->VTOR
on M0+ cores