实时操作系统(RTOS)的深入解析与实践应用
1. 线程基础与调试
在使用实时操作系统(RTOS)时,线程是核心概念之一。例如,有如下代码实现了一个简单的 LED 闪烁线程:
void led_Thread2 (void const *argument) {
for (;;) {
LED_On(1);
delay(500);
LED_Off(1);
delay(500);
}
}
每个线程通过调用函数来控制 LED 的开关,使用简单的延迟函数来控制开关之间的时间间隔。这里有几个重要的点:
- 延迟函数可以被每个线程安全调用,因为每个线程在自己的栈中保存局部变量,不会被其他线程破坏。
- 没有线程进入调度等待状态,每个线程会在分配的时间片内完整运行,然后才切换到下一个线程。不过这种简单线程大部分执行时间会花在延迟循环中,浪费了 CPU 周期。
- 线程之间没有同步,它们像独立的“程序”在 CPU 上运行,从 GPIO 调试窗口可以看到引脚的切换是随机的。
2. 线程管理与优先级
当创建线程时,会为其分配一个优先级,RTOS 调度器会根据线程优先级来决定哪个线程应该被调度运行。以下是 RTOS 优先级的相关信息:
| CMSIS RTOSv2 优先级级别 | 说明 |
| ---- | ---- |
| osPriorityIdle | 空闲优先级 |
| osPriorityLow | 低优先级 |
| osPr
RTOS线程与内存管理详解
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



