stuff
This commit is contained in:
@@ -121,7 +121,7 @@ char *exception_messages[] = {
|
||||
void isr_handler(registers_t r) {
|
||||
kprint("received interrupt: ");
|
||||
char s[3];
|
||||
itoa(r.int_no, s);
|
||||
itoa(r.int_no, s, 10);
|
||||
kprint(s);
|
||||
kprint("\n");
|
||||
kprint(exception_messages[r.int_no]);
|
||||
|
||||
@@ -6,16 +6,18 @@
|
||||
|
||||
#include <drivers/ports.h>
|
||||
#include <cpu/isr.h>
|
||||
#include <libc/libc.h>
|
||||
#include <kprint.h>
|
||||
|
||||
// https://wiki.osdev.org/PIT
|
||||
#define PIT_MODE_BIN_BCD (1 << 0)
|
||||
#define PIT_MODE_BIN (0 << 0)
|
||||
#define PIT_MODE_BCD (1 << 0)
|
||||
#define PIT_GENERATOR_MODE (0b111 << 1)
|
||||
#define PIT_MODE_INTERRUPT_ON_TERMINAL_COUNT (0b000 < 1)
|
||||
#define PIT_MODE_HARDWARE_RETRIGGERABLE_ONE_SHOT (0b001 < 1)
|
||||
#define PIT_MODE_HARDWARE_RATE_GENERATOR (0b010 < 1)
|
||||
#define PIT_MODE_HARDWARE_SQUARE_WAVE_GENERATOR (0b011 < 1)
|
||||
#define PIT_MODE_INTERRUPT_ON_TERMINAL_COUNT (0b000 << 1)
|
||||
#define PIT_MODE_HARDWARE_RETRIGGERABLE_ONE_SHOT (0b001 << 1)
|
||||
#define PIT_MODE_HARDWARE_RATE_GENERATOR (0b010 << 1)
|
||||
#define PIT_MODE_HARDWARE_SQUARE_WAVE_GENERATOR (0b011 << 1)
|
||||
#define PIT_MODE_SOFTWARE_TRIGGERED_STROBE (0b100 << 1)
|
||||
#define PIT_MODE_HARDWARE_TRIGGERED_STROBE (0b101 << 1)
|
||||
#define PIT_ACCESS_MODE (0b11 << 4)
|
||||
@@ -35,6 +37,14 @@ static void timer_callback(registers_t regs) {
|
||||
tick++;
|
||||
}
|
||||
|
||||
void print_current_tick() {
|
||||
char msg[32];
|
||||
memset(msg, 0, 32);
|
||||
itoa(tick, msg, 10);
|
||||
kprint(msg);
|
||||
kprint("\n");
|
||||
}
|
||||
|
||||
int init_timer(u32 freq) {
|
||||
register_interrupt_handler(IRQ0, timer_callback);
|
||||
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
#include <types.h>
|
||||
|
||||
int init_timer(u32 freq);
|
||||
void print_current_tick();
|
||||
|
||||
#endif //MY_KERNEL_TIMER_H
|
||||
|
||||
Reference in New Issue
Block a user