From 49fc3b6df25bea2aaccbe2b26735204e3ee4b809 Mon Sep 17 00:00:00 2001 From: Tianhao Wang Date: Tue, 11 Jun 2024 15:06:33 +0200 Subject: dev: add x86 PIT (programmable interrupt timer) Signed-off-by: Tianhao Wang --- src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index b4b6d66..932e9f8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -55,13 +55,16 @@ pub extern "C" fn _entry() -> ! { bss_start(), bss_end() ); + let interval = interrupt::pit::PIT::set_interval(500000); + println!("[init] timer interrupt set to {} ns", interval); // busy loop query keyboard interrupt::interrupt_enable(); pic_8259::allow(PicDeviceInt::KEYBOARD); let mut test_vec = Vec::<&str>::new(); + _test_proc_switch_to(); + // default test, should not reach test_vec.push("hello "); test_vec.push("world"); - _test_proc_switch_to(); for s in test_vec.iter() { println!("{s}"); } @@ -89,5 +92,6 @@ pub fn _test_proc_switch_to() { SCHEDULER.lock().insert_task(Task::create_dummy(3)); SCHEDULER.lock().insert_task(Task::create_dummy(4)); SCHEDULER.lock().insert_task(Task::create_dummy(5)); + pic_8259::allow(PicDeviceInt::TIMER); Scheduler::kickoff(); } -- cgit v1.2.3-70-g09d2