forked from M-Labs/zynq-rs
libsupport_zynq: improve PrefetchAbort exception message
This commit is contained in:
@@ -107,9 +107,15 @@ register_bit!(mpidr,
|
||||
pub struct DFAR;
|
||||
def_reg_r!(DFAR, u32, "mrc p15, 0, {}, c6, c0, 0");
|
||||
|
||||
pub struct IFAR;
|
||||
def_reg_r!(IFAR, u32, "mrc p15, 0, {}, c6, c0, 2");
|
||||
|
||||
pub struct DFSR;
|
||||
def_reg_r!(DFSR, u32, "mrc p15, 0, {}, c5, c0, 0");
|
||||
|
||||
pub struct IFSR;
|
||||
def_reg_r!(IFSR, u32, "mrc p15, 0, {}, c5, c0, 1");
|
||||
|
||||
pub struct SCTLR;
|
||||
wrap_reg!(sctlr);
|
||||
def_reg_r!(SCTLR, sctlr::Read, "mrc p15, 0, {}, c1, c0, 0");
|
||||
|
||||
@@ -2,7 +2,7 @@ use core::arch::naked_asm;
|
||||
|
||||
use libboard_zynq::{println, stdio};
|
||||
use libcortex_a9::{interrupt_handler,
|
||||
regs::{DFSR, MPIDR, VBAR}};
|
||||
regs::{DFAR, DFSR, IFAR, IFSR, MPIDR, VBAR}};
|
||||
use libregister::{RegisterR, RegisterW};
|
||||
|
||||
pub fn set_vector_table(base_addr: u32) {
|
||||
@@ -35,7 +35,9 @@ interrupt_handler!(
|
||||
|
||||
interrupt_handler!(PrefetchAbort, prefetch_abort, __irq_stack0_start, __irq_stack1_start, {
|
||||
stdio::drop_uart();
|
||||
println!("PrefetchAbort");
|
||||
println!("PrefetchAbort on core {}", MPIDR.read().cpu_id());
|
||||
println!("IFSR: {:03X}", IFSR.read());
|
||||
println!("IFAR: {:08X}", IFAR.read());
|
||||
loop {}
|
||||
});
|
||||
|
||||
@@ -44,6 +46,7 @@ interrupt_handler!(DataAbort, data_abort, __irq_stack0_start, __irq_stack1_start
|
||||
|
||||
println!("DataAbort on core {}", MPIDR.read().cpu_id());
|
||||
println!("DFSR: {:03X}", DFSR.read());
|
||||
println!("DFAR: {:08X}", DFAR.read());
|
||||
|
||||
loop {}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user