embedded - 嵌入式系统中线程安全的单消费者、单生产者 FIFO

标签 embedded thread-safety microcontroller lock-free fifo

我有一个 TI DSP(TMS320F28235,如果有人关心的话),我需要实现一个 FIFO,用于在主循环代码和中断之间排队信息。该队列的高速执行非常关键,但正确的操作也很重要,我不确定是否可以在没有任何显式同步的情况下实现 FIFO,或者如果不能,我必须禁用中断。

我找到了this page并想知道这里是否有人可以对其适用性发表评论。

最佳答案

您找到的页面完全适合您的情况。它仅依赖于原子的字读取和写入。它很容易受到默默地重新排序加载和存储的硬件的影响。另一方面,人类已知的几乎所有其他同步算法也容易受到该特定漏洞的影响。

如果您想做一些严肃的计算机考古工作,请挖掘 CDC 6600 操作系统的循环缓冲区描述。 CDC 最初开发了用于 6600 中多个物理处理器之间通信的技术。

关于embedded - 嵌入式系统中线程安全的单消费者、单生产者 FIFO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022889/

相关文章:

c - 在嵌入式应用中为什么c最受欢迎?

java - 不变性和可重载配置

multithreading - 线程感知和线程安全有什么区别?

c++ - 为什么 iostream 在 MCU 上占用这么多闪存空间?

C启动代码只写汇编困惑

linux - 网上有哪些活跃的 Linux/嵌入式 Linux 论坛?

linux - 使用 UART 进行流量控制

driver - 为微 Controller (任何)编写设备驱动程序

linux - 嵌入式 linux 的日志记录框架?

python - 为什么 Python 的 'append' 方法 'list' 是原子的,而 i = i + 1 不是原子的?