/branches/arm/kernel/arch/arm32/include/mm/page.h |
---|
276,8 → 276,8 |
extern void page_arch_init(void); |
extern void prefetch_abourt(int n, istate_t *istate); |
extern void data_abourt(int n, istate_t *istate); |
extern void prefetch_abort(int n, istate_t *istate); |
extern void data_abort(int n, istate_t *istate); |
#endif /* __ASM__ */ |
/branches/arm/kernel/arch/arm32/src/exception.c |
---|
39,6 → 39,7 |
#include <arch/regutils.h> |
#include <interrupt.h> |
#include <arch/drivers/gxemul.h> |
#include <arch/mm/page.h> |
#define PREFETCH_OFFSET 0x8 |
#define BRANCH_OPCODE 0xea000000 |
137,12 → 138,7 |
PROCESS_EXCEPTION(EXC_IRQ); |
} |
static void prefetch_abort_exception(int exc_no, istate_t* istate) |
{ |
//aux_puts("(PREFETCH|DATA) ABORT exception caught, not processed.\n"); |
} |
/** Interrupt Exception handler. |
* Determines the sources of interrupt, and calls their handlers. |
*/ |
245,8 → 241,8 |
install_exception_handlers(); |
exc_register(EXC_IRQ, "interrupt", (iroutine) irq_exception); |
exc_register(EXC_PREFETCH_ABORT, "prefetch abort", (iroutine) prefetch_abort_exception); |
exc_register(EXC_DATA_ABORT, "data abort", (iroutine) prefetch_abort_exception); |
exc_register(EXC_PREFETCH_ABORT, "prefetch abort", (iroutine) prefetch_abort); |
exc_register(EXC_DATA_ABORT, "data abort", (iroutine) data_abort); |
/* TODO add next */ |
} |
/branches/arm/kernel/arch/arm32/src/mm/page.c |
---|
275,7 → 275,7 |
* \param n number of exception |
*/ |
//TODO: remove debug prints in final tested version |
void data_abourt(int n, istate_t *istate) { |
void data_abort(int n, istate_t *istate) { |
fault_status_t fsr = read_fault_status_register(); |
uintptr_t page = read_fault_address_register(); |
306,7 → 306,7 |
* \param istate State of CPU when prefetch abourt occured |
* \param n number of exception |
*/ |
void prefetch_abourt(int n, istate_t *istate) { |
void prefetch_abort(int n, istate_t *istate) { |
// Prefetch can be made be bkpt instruction |
print_istate(istate); |
dprintf(" prefetch_abourt ... instruction on adress:%x can't be fetched\n", istate->lr); |