This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/PROCESSOR-SDK-AM335X:在短用户空间 SPI 传输期间暂停

Guru**** 2562120 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/613344/linux-processor-sdk-am335x-pause-during-short-user-space-spi-transfer

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我观察到一个在用户空间 SPI 传输期间发生的问题、其中传输有时在发送第一个字节后被挂起。 我尝试使用单个传输

SPI_Ioc_transfer 结构、用于处理发送和接收或两个结构、一个用于发送、另一个用于接收、结果相同。

中断不会经常发生、在持续通信期间、大约每15分钟发生一次。 该线程已在高优先级进程中使用 FIFO 策略配置为高优先级实时线程。 是否有人对导致这种停顿的原因以及如何减少这种停顿有任何见解? 这是有问题的、因为从器件的总线超时略小于暂停。 您可以在所连接的迹线中看到它的持续时间大约为400uS。  

谢谢、

Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、

    您是否使用实时 Linux? 如果不是、RT Linux 可以改善 SPI 传输行为、但在所有情况下、SPI 传输都可以由某些 Linux 内核中断中断中断中断中断、例如、当您在使用的一个内核处理器上使用用户空间过程时。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Tsvetolin:

    我使用的是 Phytec 的 Arch Linux 发行版 PD 16.2。 我假设它是内核的实时版本、因为我可以访问 FIFO 和 Round Robbin 调度策略。 在 SPI 传输期间是否有办法锁定其中的任何中断?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不熟悉 Linux 发行版、因为此论坛侧重于 TI 的 Linux 发行版、例如 Processor SDK:
    www.ti.com/.../PROCESSOR-SDK-AM335X
    但是、为了确保整个系统的稳定性、通常禁用中断不是一个好主意。
    我建议您尝试增加 SPI FIFO 缓冲器。

    BR
    Tsvetolin Shulev