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.

[参考译文] TMS570LS3137:执行 memcpy 时中止()

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/782248/tms570ls3137-abort-when-executing-memcpy

器件型号:TMS570LS3137

大家好、

我的客户在运行 memcpy()时遇到 Hercules 中止的问题。

异常中断时寄存器的值如下。  

我不知道原因、我需要一些建议。

此致、

Sasaki

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

    您的客户如何使用 memcpy():源地址、目标地址和数据长度? 如果将数据复制到连接到 EMIF 的外部 RAM、那么外部存储器的配置类型是:正常、器件还是严格排序? BTW、目标地址不应指向闪存。

    代码是否对闪存进行未对齐访问? 当在组边界的物理端附近进行未对齐访问时、CortexR4 CPU 有时会获得一个中止。 请参阅 SPNZ195d.pdf 中的 FMC#79和 FMC#80
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Wang-San、

    感谢您的支持。
    我向我的客户确认。

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

    您好、Wang-San、

    我与我的客户确认了。

    [引用用户="QJ Wang "]
    您的客户如何使用 memcpy():源地址、目标地址和数据长度?
    [/报价]

    源地址:0x001E0000
    目的地址:0x0801D918
    数据长度:4字节

    [引用用户="QJ Wang "]
    如果将数据复制到连接到 EMIF 的外部 RAM、那么外部存储器的配置类型是:正常、器件还是严格排序?
    BTW、目标地址不应指向闪存。
    代码是否对闪存进行未对齐访问?
    [/报价]

    memcpy()正在从内部闪存传输到内部 RAM。

    [引用用户="QJ Wang "]
    当在组边界的物理端附近进行未对齐访问时、CortexR4 CPU 有时会获得一个中止。
    请参阅 SPNZ195d.pdf 中的 FMC#79和 FMC#80
    [/报价]

    它与上述勘误表不符。

    您是否发现上述问题?

    此致、
    Sasaki

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

    从闪存到 SRAM 的 memcpy 数据没有问题。

    memcpy (void * destination_address、const void * source_address、size_t length)

    如果它们交换目的地址和源地址、并且闪存被配置为只读(MPU)、它们在将数据写入闪存时可能会被中止。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wang-San、

    感谢您的支持。

    我明白了。

    此致、

    Sasaki