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.

[参考译文] TMS570LC4357:TMS570LC43x CRC PSA 签名寄存器–需要确切的软件实现来重现硬件签名

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657202/tms570lc4357-tms570lc43x-crc-psa-signature-register-need-exact-software-implementation-to-reproduce-hardware-signature

器件型号: TMS570LC4357

我在 FULL_CPU 模式下使用 CRC 模块、并尝试在软件中重现 PSA 签名寄存器算法。

来自 TRM:

多项式:
x^64 + x^4 + x^3 + x + 1

首先移动数据的 MSB。

我通过将单个 64 位值写入 PSA 签名寄存器并读回 PSA_SIGREGL1 和 PSA_SIGREGH1 来执行以下硬件测试。

观察到的签名:

输入= 0x0000000000000000
输出= 0x0000000000000000

输入= 0xFFFFFFFFFFFFFFFF
输出= 0x000000CA00000000

输入= 0x0102030405060708
输出= 0x1B362D6C775A41D8

输入= 0x80000000000000
输出= 0x800000000000AF

我使用以下公式实现了 TRM 中所述的 LFSR:

  • 多项式 x^64 + x^4 + x^3 + x + 1

  • MSB 优先移位

  • 64 位种子= 0

软件会重现一些结果、但并不完全匹配所有硬件签名。

TI 能否阐明:

  1. PSA 签名寄存器是否使用 TRM 第 18.2.3 节中显示的确切多项式?

  2. 在压缩之前、是否在内部应用了任何字节交换或字交换?

  3. 将 64 位值写入 PSA 签名寄存器时、向 LFSR 显示的确切位顺序是多少?

  4. PSA_SIGREGL1 和 PSA_SIGREGH1 的返回顺序是否与内部 64 位签名相同?

我的目标是在 PC 应用上生成确切的 PSA 签名、以实现与 TMS570LC43x 目标的互操作性。