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.

[参考译文] TMS320F2.8377万S:为什么F2837x EMIF1 "读取"在一次"writ"?之前执行

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/572160/tms320f28377s-why-f2837x-emif1-read-execute-before-once-write

部件号:TMS320F2.8377万S

您好,

 使用EMIF1 CS3 16位ASRAM,

执行write-write-read-write,但实际结果是write-read-write-write。

      *(UINT16 *) 0x30万=0x0005;0005;
      *(UINT16 *) 0x30.0001万=0x0006;0006;
      *(UINT16 *) 0x30.0002万=0x0007;0007;
      用于(j=0;j<10;j++);
      *(UINT16 *) 0x30.0007万=0x0005;0005;
      *(UINT16 *) 0x30.0008万=0x0006;0006;
      TestDat =*(UINT16 *) 0x30.0006万;
      *(UINT16 *) 0x30.0009万=0x0007;0007;

黄色:EM1CS3,蓝色:EM1WE

执行write-write-nop读写,实际结果将正确。

      *(UINT16 *) 0x30万=0x0005;0005;
      *(UINT16 *) 0x30.0001万=0x0006;0006;
      *(UINT16 *) 0x30.0002万=0x0007;0007;
      用于(j=0;j<10;j++);
      *(UINT16 *) 0x30.0007万=0x0005;0005;
      *(UINT16 *) 0x30.0008万=0x0006;0006;
      ASM ("   NOP");
      TestDat =*(UINT16 *) 0x30.0006万;
      *(UINT16 *) 0x30.0009万=0x0007;0007;

为什么EMIF1“读取”在“写入”一次之前执行?

谢谢!

此致,

西门

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

    您好,Siden:

    C28x CPU管道允许这种情况。 请参阅 CPU用户指南的第4章(管道)

    您是否因此而遇到任何问题?

    此致,

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    希望用户指南能说明。 如果您对此有任何疑问,请告知我们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Vivek,

    感谢您的回答。
    到目前为止,还没有发现其他问题。

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

    感谢您的回答。
    到目前为止,还没有发现其他问题。

    此致,
    西门