Files
mini-riscv-os/05-Preemptive/os.c
2021-06-12 15:50:13 +08:00

33 lines
474 B
C

#include "os.h"
extern void trap_init(void);
void os_kernel()
{
task_os();
}
void os_start()
{
lib_puts("OS start\n");
user_init();
trap_init();
timer_init(); // start timer interrupt ...
}
int os_main(void)
{
os_start();
int current_task = 0;
while (1)
{
lib_puts("OS: Activate next task\n");
task_go(current_task);
lib_puts("OS: Back to OS\n");
current_task = (current_task + 1) % taskTop; // Round Robin Scheduling
lib_puts("\n");
}
return 0;
}