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.

[参考译文] MSPM0G3507:使用 CRC 计算:不同的实例

Guru**** 2625265 points

Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1353263/mspm0g3507-using-crc-calculation-different-instances

器件型号:MSPM0G3507

尊敬的:

我想创建新例程、能够处理用于计算 CRC 的不同实例。

我的问题是:我可以:

1.

UINT A = CRC->CRCOUT;

2.

执行第二次 CRC 计算、然后继续第一次计算

3.

CRC->CRCSEED = A;

并继续进行第一个计算,

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

    您好、John:  

    我并不完全清楚你在这里的目标是什么或打算采取什么行为。 您能否提供更多信息来描述您的预期用例以及要用于实现该用例的步骤?

    同时、浏览[SDK 安装路径]\mspm0_sdk_2_00_00_03\examples\nortos\lp_MSPM0G3507\driverlib 中的一些 CRC 示例可能会有所帮助。 这些应该有助于 显示我们现有 CRC 库的基本功能。 您还可以在[SDK 安装路径]\mspm0_sdk_2_00_00_03\source\ti\driverlib 下查看 CRC 源代码、以进一步了解我们提供的功能。 最后、请尝试查看 器件 TRM 的第22节 、该节详细介绍了 CRC 模块的功能。

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

    尊敬的迪伦:

    实际上、问题是我是否可以暂停字符串"S"上的 CRC 计算 c1、以便一开始再进行第二次 CRC 计算 c2。

    然后恢复第一次计算 C1。

    在暂停字符串"S"的 CRC 计算 C1时、我 会将 CRCOUT 存储到变量'A 中

    然后进行另一个第二次 CRC 计算 C2。  

    在第二次计算 C2后、我将使 CRCSEED 等于第一次计算 C1的"A"= CRCOUT。

     

    在 TRD 中、我找不到任何与此冲突的内容...

    希望这一点更清楚。

    谢谢、此致、

    约翰

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

    您好、John:

    感谢您澄清此处的行为。

    这取决于暂停 CRC 计算的含义。 当然、在某些情况下、可以暂停函数内部的计算、  

    DL_CRC_calculateBlock32 ()函数或其他 DL_CRC_calculateBlock 函数。 您可以通过实现一些方法来暂停它、并为 CRC 引擎提供另一个不同的值。 不过、如果您打算在由 CRC 加速器硬件计算 CRC 时停止 CRC 的计算、则无法实现。 我们不会为此外设提供暂停或暂停机制。 不过、观察 TRM、 似乎 CRC 是使用加速器进行的单周期计算、因此我不明白您为什么不能忽略计算值、输入新输入、读取、然后再次输入旧值。 这比我目前能想到的任何软件切换机制都要快。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、我将尝试一下。