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万D:在CPU之间共享EMIF (SDRAM)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/585436/tms320f28377d-sharing-emif-sdram-between-cpus

部件号:TMS320F2.8377万D

我的硬件使用连接到外部SDRAM的F2.8377万D。  连接和我的配置工作正常。  我可以将其设置为由CPU1或CPU2读取/写入。

我的问题是关于在两个CPU之间共享SDRAM的访问...  我了解如何使用MSEL_EMIF1寄存器来获取EMIF,以便在CPU之间进行主访问。  这一切似乎都正常。

如果我错了,请告诉我:

当CPU1想要授予CPU2的写入访问权限时,它需要将MSEL_EMIF1字段设置为0,以便CPU2可以抓取它。  它还需要为SDRAM到CPU2使用的每个引脚设置外设多工。

当CPU2要授予CPU1写入访问权限时,它需要将MSEL_EMIF1字段设置为0,以便CPU1可以抓取它。  然后,CPU1还需要为SDRAM到CPU1使用的每个引脚设置外设多工。

在CPU之间来回切换时,需要设置外设mutxing,这是否正确?

仅用于读取访问,该怎么办?  这是同一个过程吗?

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

    您好,Traver:

    [报价]在CPU之间来回切换时,需要设置外设mutxing,这是否正确? [/引述]

    否,外围互锁 仅由CPU1控制,一旦   由CPU1代码设置,仅外围设备所有权需要在CPU之间切换,互锁保持不变。

    此致,

    Vivek Singh

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

    好的,只是为了确保我理解你说的话,当用 GPIO设置PinMux功能配置EMIF引脚时,我可以像这样设置每个引脚?

    GPIO_SetupPinMux (38,GPIO _MUX_CPU1,2);//EM1A0

    那么,CPU中的任何一个都可以读取所需的内存,而无需更改任何针脚设置?

    那么,为什么F2837xD_EMIF.c文件中的以下函数甚至将CPU编号作为参数?

    void setup_emif1_pinmix_async_16位(UINT16 CPU_SEL)

     -Trevor

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

    Trevor,

    [引述]

    好的,只是为了确保我理解你说的话,当用 GPIO设置PinMux功能配置EMIF引脚时,我可以像这样设置每个引脚?

    GPIO_SetupPinMux (38,GPIO _MUX_CPU1,2);//EM1A0

    那么,CPU中的任何一个都可以读取所需的内存,而无需更改任何针脚设置? [/引述]

    这是正确的。

    为什么这样,F2837xD_EMIF.c文件中的以下函数甚至会将CPU编号作为参数?

    void setup_emif1_pinmix_async_16位(UINT16 CPU_SEL)

    此函数中使用的GPIO_SetupPinmux 具有此参数(当引脚配置为GPIO时将引脚分配给不同的CPU),因此它也保留在此参数中,但不需要。 您可以为此传递"GPIO _MUX_CPU1 "。

    此致,

    Vivek Singh