mirror of
https://github.com/plctlab/riscv-operating-system-mooc.git
synced 2025-12-05 15:15:49 +00:00
46 lines
747 B
C
46 lines
747 B
C
#include "os.h"
|
|
|
|
#define DELAY 4000
|
|
|
|
#define USE_LOCK
|
|
|
|
void user_task0(void)
|
|
{
|
|
uart_puts("Task 0: Created!\n");
|
|
while (1) {
|
|
#ifdef USE_LOCK
|
|
spin_lock();
|
|
#endif
|
|
uart_puts("Task 0: Begin ... \n");
|
|
for (int i = 0; i < 5; i++) {
|
|
uart_puts("Task 0: Running... \n");
|
|
task_delay(DELAY);
|
|
}
|
|
uart_puts("Task 0: End ... \n");
|
|
#ifdef USE_LOCK
|
|
spin_unlock();
|
|
#endif
|
|
}
|
|
}
|
|
|
|
void user_task1(void)
|
|
{
|
|
uart_puts("Task 1: Created!\n");
|
|
while (1) {
|
|
uart_puts("Task 1: Begin ... \n");
|
|
for (int i = 0; i < 5; i++) {
|
|
uart_puts("Task 1: Running... \n");
|
|
task_delay(DELAY);
|
|
}
|
|
uart_puts("Task 1: End ... \n");
|
|
}
|
|
}
|
|
|
|
/* NOTICE: DON'T LOOP INFINITELY IN main() */
|
|
void os_main(void)
|
|
{
|
|
task_create(user_task0);
|
|
task_create(user_task1);
|
|
}
|
|
|