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.

[参考译文] AM4379:PRU-ICSS 中的 CRC 硬件?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1516688/am4379-crc-hardware-in-the-pru-icss

器件型号:AM4379

工具/软件:

在线搜索结果似乎表明、PRU-ICSS 支持计算某种形式的 CRC、因此无需在其中一个 PRU 内核中完成。 但是、我找不到任何说明如何使用这种假设的 CRC 硬件支持的源代码。 有人可以确认或反驳这一点吗? 如果正确、如何获取一些示例代码?

谢谢!

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

    您好 Chuan、

    PRU 子系统支持 CRC。 请参阅技术参考手册(TRM)的 PRU >"CRC16/32"小节。

    根据"PRU >"MII_RT"一节、看起来该函数旨在与 PRU 以太网固件一起使用。

    您的预期用例是什么?

    此致、

    Nick

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

    您好、Nick Saulnier、

    感谢您回复并指出搜索的有用文档。

    我看到 CRC 确实是作为 MII_RT 的一部分使用的、但第30.4.1.4节似乎描述了如何使用"指定的 CRC16/32模块"、而不是在 MII 上下文中。 它讨论了如何使用 XIN 和 XOUT 指令。  在一些示例 C 代码中是否有这样做的示例?

    该用例保护通过串行线路发送和接收的长数据流的完整性。  在软件中执行 CRC 需要相当多的存储和 CPU 周期。  如果有一些示例 C 代码、30.4.1.4中引用的"CRC16/32模块"可能用于此目的。

    谢谢!

    Chuan Lee

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

    您好、Chuan Lee、

    这条串行线路是由 PRU 内核还是 Linux 控制的?

    我想问其他团队成员、他们是否有相关的示例代码。 如果他们有示例代码、我希望它采用汇编语言、但如果需要、您仍然可以创建混合的 C 语言和汇编项目。 有关如何执行此操作的更多信息、请参阅 PRU 入门实验>实验2:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM437X/09_03_05_02/exports/docs/common/PRU-ICSS/PRU-Getting-Started-Labs.html

    我将在下周度假。 如果您没有收到我或团队的任何其他回复、请随时在6月2日或6月3日 ping 该主题。

    此致、

    Nick

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

    您好、Nick Saulnier、

    感谢您提供更多信息。

    是的、串行线路是由 PRU 内核控制的线路。  我不使用 Linux。

    是的、我确实明白、使用混合 C 和组装可能会起作用。  我认为值得检查 PRU C 编译器中是否对 TRM 中提到的 XIN/XOUT 指令有特殊支持。

    再次感谢!

    Chuan Lee