Skip to content

Create a basic exception-handler #20

@zachary-cauchi

Description

@zachary-cauchi

With #19 merged in, we now have access to the CoP0 exception-related registers, meaning we can create basic exception-handling.

Exception types:

  • Reset / NMI
    • Reset
    • NMI
  • TLB Refill
    • Instruction fetch / load
    • Store
  • Performance Counter
  • Debug
  • Interrupt
  • Others
    • TLB Modified
    • TLB Invalid (Instruction fetch / load)
    • TLB Invalid (Store)
    • Address Error (Instruction fetch / load)
    • Address Error (Store)
    • Bus Error (Instruction fetch / load)
    • Bus error (Store)
    • System Call
    • Break
    • Reserved Instruction
    • Coprocessor Unusable
    • Overflow
    • Trap

Definition of Done:

  • Create a basic panic handler, if possible using Rust's panic_handler function.
  • Dump the values of the exception registers (such as CoP0.Cause) to EEOut.
  • Create basic exception handlers which cover all the above listed exception types.

Metadata

Metadata

Labels

prussia_rtAffects the prussia_rt crate

Projects

Status

In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions