主题中讨论的其他器件: 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。