RTOS 中信号量、互斥锁及数据交换机制详解
1. 信号量信号传递实验
在这个实验中,我们将研究信号量的配置,并利用它在两个线程之间进行信号传递。
- 操作步骤 :
1. 在 Pack 安装器中选择 “Ex 10.11 Interrupt Signals” 并复制到你的教程目录。
2. 代码创建一个名为 sem1 的信号量,初始化为零个令牌,最大计数为五个令牌。示例代码如下:
osSemaphoreId_t sem1;
static const osSemaphoreAttr_t semAttr_SEM1 = {
.name = "SEM1",
};
void app_main (void *argument) {
sem1 = osSemaphoreNew(5, 0, &semAttr_SEM1 );
}
3. 第一个任务 `led_Thread1` 等待信号量的令牌:
__NO_RETURN void led_Thread1 (void *argument) {
for (;;) {
osSemaphoreAcquire(sem1, osWaitForever);
LED_On(1);
osSemaphoreAcquire(sem1, osWaitForever);
LED_Off(1);
}
}
超级会员免费看
订阅专栏 解锁全文
28

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



