Compare commits
1 commit
main
...
feature/ti
| Author | SHA1 | Date | |
|---|---|---|---|
| 537dde170b |
3 changed files with 22 additions and 3 deletions
|
|
@ -6,6 +6,7 @@
|
|||
#include <kernel/plic.h>
|
||||
#include <kernel/interrupts.h>
|
||||
#include <kernel/memory.h>
|
||||
#include <kernel/timer.h>
|
||||
|
||||
void interrupt_init()
|
||||
{
|
||||
|
|
@ -115,9 +116,7 @@ void handle_interrupt(unsigned long code)
|
|||
switch (code)
|
||||
{
|
||||
case 7:
|
||||
static volatile uint64_t *mtime = (uint64_t *)CLINT_MTIME;
|
||||
static volatile uint64_t *mtimecmp = (uint64_t *)CLINT_MTIMECMP(0);
|
||||
*mtimecmp = *mtime + 100000;
|
||||
timer_handle_interrupt();
|
||||
|
||||
break;
|
||||
case 11:
|
||||
|
|
|
|||
12
src/kernel/timer.c
Normal file
12
src/kernel/timer.c
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#include <stdint.h>
|
||||
#include <kernel/interrupts.h>
|
||||
#include <kernel/plic.h>
|
||||
#include <kernel/timer.h>
|
||||
|
||||
void timer_handle_interrupt()
|
||||
{
|
||||
static volatile uint64_t *mtime = (uint64_t *)CLINT_MTIME;
|
||||
static volatile uint64_t *mtimecmp = (uint64_t *)CLINT_MTIMECMP(0);
|
||||
|
||||
*mtimecmp = *mtime + TIMER_FREQ;
|
||||
}
|
||||
8
src/kernel/timer.h
Normal file
8
src/kernel/timer.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef KTIMER_H
|
||||
#define KTIMER_H
|
||||
|
||||
#define TIMER_FREQ 100000
|
||||
|
||||
void timer_handle_interrupt();
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue