set exception vector table addr to 0x100000 and add FIQ dummy handler #288
No reviewers
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#288
Loading…
Reference in New Issue
No description provided.
Delete Branch "morgan/artiq-zynq:vector_fix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Prerequisite
Summary
set_vector_table
to configure the base address of the vector table to0x100000
(the start of SDRAM)Testing
Why can't it use the default handler in zynq-rs like it does for others?
eee45ff828
to9763a30ed2
@ -77,6 +77,7 @@ static mut LOG_BUFFER: [u8; 1 << 17] = [0; 1 << 17];
#[no_mangle]
pub fn main_core0() {
exception_vectors::set_vector_table(0x100000);
Where is this number coming from?
Maybe obtain from linker?
From the link.x, I also checked it with .elf dump
So use __text_start then?
Force push to use the
dummy_fiq_handler
feature from zynq-rs9763a30ed2
to4455f740d2
Force push to use linker symbol.
__exception_start
is added and used instead of__text_start
. As it's pointing at the start of .text (0x0)Hmm, the __text_start symbol looks wrong then. It should not be 0. Maybe it's not used anywhere and could simply be removed?
__text_start
is used in the core1.rs file. Removing it or making it point to the right address may cause some unknown side effectIf code works correctly with incorrect values, then the code is buggy and should be fixed.