【发布时间】:2014-01-10 23:57:17
【问题描述】:
我有以下 C 问题:
我有一个控制 SPI 总线(作为主机)的硬件模块,我们称之为 SPI_control,它具有私有(static)读写和“公共”Init() 和 WriteRead()功能(对于那些不知道的人,SPI 是全双工的,即写入总是读取总线上的数据)。现在我需要让包含某些协议的更高级别的模块可以访问它。让我们调用上面的模块 TDM 和 AC。它们在两个单独的线程中运行,一个可能不会被另一个中断(当它处于事务的中间时,它首先需要完成)。
所以我想到的一种可能性是在模块和 SPI_control 之间合并一个 SPI_ENG,它控制数据流并知道什么可以中断,什么不能中断- 然后它将相应的数据转发到 spi_control。但是独立任务 AC & **TDM 可以与 spi_control 对话吗,我可以让它们写入和读取某种好的信号量队列吗?这个应该怎么做?
【问题讨论】:
标签: c multiprocessing message-queue semaphore vxworks