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.

[参考译文] TMS570LS0914:它支持64位指针地址

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/823694/tms570ls0914-is-it-support-64-bit-pointer-address

器件型号:TMS570LS0914

你(们)好

运行(*(volatile uint64 *)(0X08002432))=(__LW_AT__uint64)0x12345678;它将转至 dabort、

运行(*(volatile UINT32 *)(0X08002432))=(__LW_AT__uint64)0x12345678;运行良好。

它支持64位吗? 如何解决?  我的客户在他们的代码中使用了许多64位指针。谢谢。

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

    Daniel:

    570LS09架构不支持64位。

    此致、

    周德伟

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

    Daniel:

    支持64位数据写入、但要写入的地址必须与64位边界对齐。

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

    很抱歉我感到困惑。 哪一个答案是正确的?

    请提供一个64位运算示例吗?

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

    Daniel:

    您当然可以执行64位数据读取/写入操作。 使用 Cortex R4/5处理器上的 LDRD 和 STMD (加载/存储双精度型)汇编指令支持这些指令。

    对所有存储器访问的一个重要要求是访问的地址与访问的大小对齐。 未对齐的访问会导致"对齐故障"、CPU 的响应是数据中止(用于数据提取)。 因此、仅允许对与64位边界对齐的地址进行64位访问。 在您的示例中,允许对地址0x08002430、0x08002438、...进行64位写操作。