mmu: almost have it working

Just have major stack issues.

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
2020-01-21 20:05:39 +08:00
parent b48271308c
commit 3c15bd68d3
10 changed files with 59 additions and 42 deletions

View File

@ -19,7 +19,7 @@ pub use irq::sys_interrupt_claim;
use core::panic::PanicInfo;
use mem::MemoryManager;
use processtable::ProcessTable;
use vexriscv::register::{mcause, mie, mstatus, vmim, vmip};
use vexriscv::register::{mcause, mepc, mie, mstatus, vmim, vmip};
use xous_kernel_riscv_rt::xous_kernel_entry;
#[panic_handler]
@ -50,11 +50,10 @@ fn xous_main() -> ! {
sys_interrupt_claim(2, debug::irq).unwrap();
println!("Creating memory manager...");
let mut mm = MemoryManager::new();
let mm = MemoryManager::new();
println!("Creating process table...");
ProcessTable::new(mm, kmain);
panic!("fell off main");
}
fn kmain(mm: MemoryManager, pt: ProcessTable) -> ! {
@ -76,6 +75,8 @@ pub fn trap_handler() {
let irqs_pending = vmip::read();
if mc.is_exception() {
println!("CPU Exception");
println!("{:?} @ PC: {:08x}", mc.cause(), mepc::read());
unsafe { vexriscv::asm::ebreak() };
loop {}
}