Conversation
mattnite
approved these changes
Jan 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@Copper280z noticed that none of the examples worked when build in ReleaseSafe.
I took a look and noticed that the vector table started at 8 instead of 4:
vs.
Looks like it was because
_reset_vectorwas a function, the release mode was putting padding around it.I am not sure if there's a nicer way to avoid this, but I worked around it by emitting the assembly directly.
Strangely, I now get a error
I have no idea how this ever emitted a working binary at all.
That said, I came up with a different approach, where instead of trying to get the vector table to start at 4, I just adjust mtvec.base to configure the interrupts to start wherever that table lands.