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.

[参考译文] TMS320F28384D:CM 内核 FPU 支持与放大器;总线/存储器故障问题。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1250698/tms320f28384d-cm-core-fpu-support-bus-mem-fault-issues

器件型号:TMS320F28384D
主题中讨论的其他器件: C2000WARE

尊敬的专家:

我们正在为 ARM Cortex M4 (CM)内核开发一些新的代码元素、并尝试在内核上执行浮点运算。 在启用浮点支持(FPv4SPD16)的情况下构建 CM 内核工程时、内核会正确执行、直到命中浮点指令(例如 VLDR S0、[R2、#4])、此时会发生硬故障并调用默认的故障 ISR。 通过调查该问题、在 CFSR 寄存器中设置了无协处理器使用标志[NOCP]、该标志似乎升级为强制硬故障(在硬故障状态寄存器(HFSR)中设置了强制位)。

尝试通过文档验证 CM 内核实现是否有 FPU 块、并未给出明确的指示、但是鉴于任何文档中都没有提到该单元、这强烈建议没有实现。 此外、当尝试写入 Cortex M4用户手册7-2下列出的协处理器访问控制寄存器[CPACR]的位置(位于0xE000ED88)时、未保留该值、这也可能表明确实未实现。

目标方部分(TMS320F28384D)中的 Cortex M4执行是否实现了浮点单元? 如果可以、是否有任何示例可用于配置该单元、因此我们可以支持 CM 内核上的 FP 操作。

此外、在检查错误时、MMFAR 和 BFAR 寄存器在这两个寄存器中均具有0xE000EDF8地址、而不管上述配置如何、该配置与缺失 CPACR 寄存器处于同一区域。 我还在 CM 内核 IPC 通信的 C2000ware 演示(ipc_ex1_basic_cm)中的示例固件上对此进行了验证。 这是否与我在 FPU 上看到的问题有关? 这是否正常?

感谢您能够提供的任何帮助。

此致、

Scott。

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

    Scott、您好、
    这是 Cortex M4、而不是 M4F。 这些处理器中的 CM 没有硬件 FPU。 据我所知,- float_support 唯一可行的选项是"无"。 因此、浮点运算将在软件中模拟。

    此致、
    安迪

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

    Scott、

      CM 上无 FPU 支持。

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

    Andy、您好!

    感谢您的回复-这证实了我的怀疑、FPU 的支持没有提供、这就是我们所做的。

    谢谢、

    Scott。

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

    您好、Hareesh。

    感谢确认。

    此致、Scott。

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

    感谢您发送编修。

    第二个问题是、在该器件的启动过程中、让 MMFAR 和 BFAR 寄存器记录内核上的故障是否正常?

    此致、

    Scott。

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

    我不知道是否正常、但我已在器件上进行了检查(正在运行某些程序)、MMFAR 和 BFAR 寄存器的值都相同=  0xE000EDC8、与您的情况完全相同。

    此致、
    安迪

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

    ARMRegisteredCortexRegistered-M4处理器技术参考手册的第52页说明如下:

    "..BFAR 和 MMFAR 是同一物理寄存器。 因此、BFARVALID 和 MMFARVALID 位互斥..."

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

    Andy、您好!

    感谢您确认这是其他系统上的可重复行为...将表明这是正常行为。

    此致、

    Scott。

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

    您好、Hareesh。

    感谢提供链路、我们不知道它们是同一个物理寄存器、这有助于更深入地解释我们先前观察到的问题。

    此致、

    Scott。