This commit is contained in:
2021-02-01 23:28:24 +01:00
parent 9986d95dbb
commit 4673a23db7
11 changed files with 140 additions and 42 deletions

View File

@@ -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]);

View File

@@ -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);

View File

@@ -8,5 +8,6 @@
#include <types.h>
int init_timer(u32 freq);
void print_current_tick();
#endif //MY_KERNEL_TIMER_H