Skip to content

推荐的最小验证步骤

验证 1:单任务启动

创建一个任务,让它进入死循环并翻转 GPIO 或打印日志:

c
static yr_task_t task0;
static yr_uint8_t task0_stack[512];

static void task0_entry(void *param)
{
    (void)param;

    for(;;) {
        led_toggle();
    }
}

若该任务能成功运行,说明:

  • 首任务启动基本正确
  • 初始栈帧基本正确

验证 2:两个同优先级任务轮转

创建两个相同优先级任务,并让它们周期打印不同内容。

如果能交替输出,说明:

  • 时间片轮转工作正常
  • yr_task_switch() 基本正确

验证 3:任务延时

让任务调用:

c
yr_task_sleep_ticks(YR_MS_TO_TICKS(1000));

如果能按预期频率运行,说明:

  • tick 中断频率正确
  • yr_tick_update() 已接入
  • 定时器链表工作正常

验证 4:信号量/队列

最后再验证:

  • 信号量同步
  • 队列收发
  • ISR 到任务的唤醒路径

如果这些都正常,说明移植已基本完成。