From 2ffb1ef5bb2b6f0356d557a7c506eeb9e7e43b29 Mon Sep 17 00:00:00 2001 From: Breeze_K <7807230+breeze_k@user.noreply.gitee.com> Date: Tue, 16 Aug 2022 11:32:01 +0000 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E3=80=91=E6=9B=B4=E6=96=B0=20=E7=BA=BF=E7=A8=8B=E9=97=B4?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=20=E6=96=87=E6=A1=A3=20=E5=B0=86=20=E4=BA=92?= =?UTF-8?q?=E6=96=A5=E9=87=8F=E5=B0=8F=E8=8A=82=20=E4=B8=AD=20=E4=B8=AD?= =?UTF-8?q?=E6=96=AD=E4=B8=8E=E7=BA=BF=E7=A8=8B=E7=9A=84=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=20=E9=87=8C=E7=9A=84=20shell=E7=BA=BF=E7=A8=8B=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20FinSH=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Breeze_K <7807230+breeze_k@user.noreply.gitee.com> --- .../rt-thread-standard/programming-manual/ipc1/ipc1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md b/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md index a761acf..8d25c66 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md @@ -549,7 +549,7 @@ the consumer exit! ![FinSH 的中断、线程间同步示意图](figures/06inter_ths_commu2.png) -信号量的值初始为 0,当 FinSH 线程试图取得信号量时,因为信号量值是 0,所以它会被挂起。当 console 设备有数据输入时,产生中断,从而进入中断服务例程。在中断服务例程中,它会读取 console 设备的数据,并把读得的数据放入 UART buffer 中进行缓冲,而后释放信号量,释放信号量的操作将唤醒 shell 线程。在中断服务例程运行完毕后,如果系统中没有比 shell 线程优先级更高的就绪线程存在时,shell 线程将持有信号量并运行,从 UART buffer 缓冲区中获取输入的数据。 +信号量的值初始为 0,当 FinSH 线程试图取得信号量时,因为信号量值是 0,所以它会被挂起。当 console 设备有数据输入时,产生中断,从而进入中断服务例程。在中断服务例程中,它会读取 console 设备的数据,并把读得的数据放入 UART buffer 中进行缓冲,而后释放信号量,释放信号量的操作将唤醒 FinSH线程。在中断服务例程运行完毕后,如果系统中没有比 FinSH线程优先级更高的就绪线程存在时,FinSH线程将持有信号量并运行,从 UART buffer 缓冲区中获取输入的数据。 > [!NOTE] > 注:中断与线程间的互斥不能采用信号量(锁)的方式,而应采用开关中断的方式。 -- Gitee