澄清如何在此系统中使用信号量

时间:2015-07-29 21:00:14

标签: multithreading semaphore freertos

我正在使用5种不同的传感器开展项目。我有4个任务(我使用freeRTOS,而且我使用嵌入式操作系统相对较新):

  1. sensor_manager将读取传感器并将数据放入队列(这将是一个数据结构)(优先级:3)
  2. LED_manager将从队列中获取(查看)数据并打开相应的LED(优先级:2)
  3. display_manager也将从队列中查看并更新TFT显示屏(优先级:1)
  4. xively_manager也将从队列中查看并将数据上传到名为Xively的Web服务。 (优先级:0)
  5. 问题:

    1. 我希望系统按照我所描述的确切顺序工作。我遇到的问题是决定是使用二进制信号量还是计数信号量来同步这些任务;他们都必须轮流访问包含传感器数据的队列。
      1. 每项任务是否必须"采取"一开始的信号量和"回馈"任务结束时的信号量?建议非常感谢!请指导我充分解释信号量使用的任何网络资源。

1 个答案:

答案 0 :(得分:0)

1,您需要一个信号量来按顺序同步任务执行。你应该确保led,display,xively任务在一个周期内从队列中获取一个数据。

2,你有一个"生产和消费"问题。你说任务查看队列,也许这样就可以了: led,显示任务查看队列,然后从队列中取出数据。