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.

[参考译文] AM6422:使用什么自旋锁? (免费提供)

Guru**** 2487425 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1421473/am6422-what-spinlock-to-use-one-that-is-free

器件型号:AM6422

工具与软件:

大家好!

在具有自旋锁的 R5F IPC 示例中、使用 id 0。

我怎么知道哪一个是免费的? 内核中的 Linux 驱动程序默认情况下尚未使用。

此致。

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

    尊敬的 Nelson:

    感谢您的提问。

    检查自旋锁是否可以自由使用。 使用 Spinlock_lock() 结构。  

    请参阅下图。

    请参阅  Spinlock_API 

    此致、

    Tushar

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

    你好、Tushar。 感谢您的答复。

    我想知道256中可用的 spinlock ID 是什么、因此 Linux 驱动程序不会使用它。 我在 DTS 中看到了这一条目,但从那里我不知道该怎么说。

    hwspinlock:spinlock@2a000000{compatible ="ti、am64-hwspinlock";reg =<0x00 0x2a000000 0x00 0x1000>;#hwlock-cells =<1>;};

    这个问题的动机是性能和稳定性(另一个进程可能会挂起、使其受阻)。

    此致。

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

    尊敬的 Nelson:

    我知道这听起来很难理解、但 Linux 会初始化所有256个 hwspinlock (如果内核 devicetre 中未禁用 hwspinlock 节点)、但不会使用其中任何一个。 Linux 内核使用软件自旋锁。

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

    纸槽:

    (CC: (+) Tushar Thakur 的个人资料- Tushar Thakur - TI E2E 支持论坛(+) Nick Saulnier 的个人资料- Nick Saulnier - TI E2E 支持论坛 )

    A53内核具有硬件自旋锁与 Linux 内核软件自旋锁这一事实应该在即将推出的 版本10 AM64x Academy 中进行区分(关于 e2e 条目( +)的另一个输入 AM6442:AM64x 版本10 Academy 能否在10月中准备就绪? -处理器论坛-处理器- TI E2E 支持论坛 )。  您不应使最终用户混淆在 Sitara 应用中使用的自旋锁。

    后来、Jim

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

    Jim、

    感谢您的反馈。

    我将把讨论如何在 MCU SDK 文档中进行处理的问题推迟到 Tushar 或 Nick。

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

    你(们)好。 因为有澄清只是为了肯定:然后我可以选择任何硬件自旋锁(0 - 255)因为 Linux 不使用它们。

    想知道 ICSSG 以太网驱动程序是否使用任何内容。 我们不打算运行其他代码、但不打算运行我们的 R5F 或 PRU 代码。

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

    尊敬的 Nelson:

    由于 Linux 不使用它、ICSSG 以太网内核驱动程序不使用 hwspinlock、但我不知道用于 ICSSG 以太网的 PRU 固件是否使用 hwspinlock、因此我会将您的查询路由到 ICSSG 以太网专家以获取评论。

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

    Jim、您好!

    我们并未在多核学院部分专门讨论自旋锁、因此我在这里仅简单提及:
    https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AfVdz15iX-WmL3U4FSsSXQ__AM64-ACADEMY__WI1KRXP__LATEST

    但是、我可以添加注意事项、软件自旋锁也存在、并且未在多核学院中记录。

    我们不记录使用了任何硬件自旋锁、但我会将线程发送给 PRU 固件团队进行确认。

    此致、

    Nick

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

    Jim、您好!

    PRU 固件和 Enet LLD (ICSSG 以太网驱动程序)不使用任何硬件自旋锁。  

    此致、
    Prajith

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

    谢谢大家! 知道这个很有用。

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

    我已经在后端的 AM64x 多核 Academy 中添加了更多有关自旋锁的信息。 根据我何时可以获得代码审查和签核、学院可能会在本周更新、也可能直到下周更新。
    https://dev.ti.com/tirex/explore/node?node=A__AfVdz15iX-WmL3U4FSsSXQ__AM64-ACADEMY__WI1KRXP__LATEST

    此致、

    Nick