rt/examples/cycle/yield.c

34 lines
633 B
C

#include <rt/cycle.h>
#include <rt/log.h>
#include <rt/task.h>
#include <rt/trap.h>
#define N 100
static volatile uint32_t start_cycle = 0;
static volatile uint32_t cycles[N];
static void task0(void)
{
for (int i = 0; i < N; ++i)
{
start_cycle = rt_cycle();
rt_task_yield();
}
}
static void task1(void)
{
for (int i = 0; i < N; ++i)
{
cycles[i] = rt_cycle() - start_cycle;
rt_task_yield();
}
rt_trap();
}
/* NOTE: Tasks of equal priority will initially be executed in the order they
* are created. */
RT_TASK(task0, RT_STACK_MIN, 0);
RT_TASK(task1, RT_STACK_MIN, 0);