一、前言
RTX5 | 内存池03 - 共享内存用于线程之间的通讯(轮询方式)
上一个实验演示了线程B周期性轮询共享内存(内含ringbuffer算法)里是否有新的消息读取,大部分时间都是没有新消息可以读取,没有新消息时,线程B就没必要运行了。
这一次实验需要用到信号量,信号量让线程B进入阻塞态,信号量又可以让线程B有机会进入运行态。
STM32工程:
链接:https://pan.baidu.com/s/1o0xtGXLoMr_jkQieB3n-8w
提取码:wyti
二、实验目的
1、创建一个内存池,创建成功后加入ringbuffer算法。
2、创建一个信号量,大小跟内存池所存储的数据的大小一样,都是8。
2、线程B一直等待线程A释放信号量。
3、线程A每往共享内存里写入一次数据,就释放一个信号量。
三、代码
3.1、main.h
3.2、main.c