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.

[参考译文] TDA2EXEVM:在 EVE 处理器上集成邮箱通信与 SYS/BIOS 配置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1021121/tda2exevm-integrating-mailbox-communication-with-sys-bios-configuration-on-eve-processors

器件型号:TDA2EXEVM
Thread 中讨论的其他器件:SYSBIOS

您好,

我正在使用 SYS/BIOS 配置建立 EVE 处理器之间的邮箱通信。 集成 startarware 下提供的邮箱示例。
尝试将消息从 EVE1发送到 EVE2,此处的问题是我们无法在 EVE2上接收到消息。

注意:我们能够在裸机应用中建立 EVE1和 EVE2之间的邮箱通信

但是、当我们尝试对 Processor Vision SDK 的 SYS/BIOS 配置执行相同的操作时、通信无法正常工作。  

供参考、我在   C 代码中添加了中断服务表、如下所示:

extern 中断 void NMI_IRQ (void);

extern 中断 void SWI_IRQ (void);
extern 中断 void INTH_IRQ4 (void);
extern 中断 void INTH_IRQ5 (void);
extern 中断 void INTH_IRQ6 (void);
extern 中断 void INTH_IRQ7 (void);
extern 中断 void INTH_IRQ8 (void);
extern 中断 void INTH_IRQ9 (void);
extern 中断 void INTH_IRQ10 (void);
extern 中断 void INTH_IRQ11 (void);
extern 中断 void INTH_IRQ12 (void);
extern 中断 void INTH_IRQ13 (void);
extern 中断 void INTH_IRQ14 (void);
extern 中断 void INTH_IRQ15 (void);

#pragma DATA_SECTION (ist_table、".intvecs");
typedef interrupt void (* inthandler)(void);


volatile inthandler ist_table[17]=

  NMI_IRQ、
  SWI_IRQ、
  INTH_IRQ4、(&I)
 INTH_IRQ5、(&I)
 INTH_IRQ6、(&I)
 INTH_IRQ7、(&I)
 INTH_IRQ8、(&I)
 INTH_IRQ9、(&I)
 INTH_IRQ10、(&I)
 INTH_IRQ11、(&I)
 INTH_IRQ12、(&I)
 INTH_IRQ13、
 INTH_IRQ14、(&I)
 INTH_IRQ15

};

如果我们缺少启用 SYS/BIOS 邮箱的任何配置、请告知我们。

此致、
马纳维

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

    您好!

    您可以参阅 IPC lite、它也是在带有 Vision SDK 的 SYSBIOS 中使用的裸机 IPC。

    ~/pdk_xx_xx/packages/ti/drv/ipc_lit/src/ipclib_interrupt.c

    此致、
    斯坦利

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

    您好、Stanley、

    感谢您的回答。
    正如您所建议的、我尝试将 IPC lite 与 SYS/BIOS 一起使用、以便在 EVE1到 EVE2处理器之间进行通信。
    在将 EVE1上的消息发送到 EVE2时、我面临二进制崩溃问题。  


    注意: 我观察到的一种行为是  ,如果我禁用  EVE 处理器配置文件中的 eveMMUConfig()函数,我就能够在 EVE1到 EVE2之间建立通信。 我使用0x40081000U 作为 EVE1和 EVE2的基址来配置 MMU。 每个 EVE 处理器上的此基地址是否应该不同?



    下面是我在发送器和接收器侧执行的步骤。
    接收器的序列
    IPCLib_interruptSetDefaultInitPrm()
    2.根据需要更改参数
    3.IPCLib_interruptInit()-具有有效参数
    4. IPCLib_interruptRegisterEvent()-具有有效的回调函数

    发件人的序列
    IPCLib_interruptSetDefaultInitPrm()
    2.根据需要更改参数
    3.IPCLib_interruptInit()-具有有效参数
    4. IPCLib_interruptRegisterEvent()-具有有效的回调函数
    5. IPCLib_interruptSendEvent()-具有有效负载和事件 ID


    发送器序列执行会在执行时崩溃  

     IPCLib_interrtSendEvent() STEP(第五步)中的 HW_RD_REG32 (baseAddr+mailbox_message (QueueID))函数。

    我已附加 EVE1和 EVE2源文件。

    请告诉我 eveMmuConfig()函数对通信有何影响,如果 我没有通过 SYS/BIOS 配置启用 IPC_LIB 的任何步骤,也请告诉我。

    e2e.ti.com/.../main_5F00_EVE1.txte2e.ti.com/.../main_5F00_EVE2.txt

    此致、
    马纳维

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

    您好、Stanley、

    在 MMU 配置函数的 TTB 缓冲区条目表中添加0x42000000地址后、EVE1和 EVE2与 IPC lite 之间的上述通信将得到解决。

    现在问题是、
    如果我使用 EVE1和 EVE2之间的"SR1_FRAME_Buffer_MEM"共享区域,则无法在 EVE1与 EVE2之间建立通信。  


    注:   如果我禁用共享区域"SR1_FRAME_Buffer_MEM:org = 0x8a783000,len = 0x1537d000"的使用,则可以在 EVE1与 EVE2之间建立通信。



    下面是我在发送器和接收器侧执行的步骤。
    接收器的序列
    IPCLib_interruptSetDefaultInitPrm()
    2.根据需要更改参数
    3.IPCLib_interruptInit()-具有有效参数
    4. IPCLib_interruptRegisterEvent()-具有有效的回调函数

    发件人的序列
    IPCLib_interruptSetDefaultInitPrm()
    2.根据需要更改参数
    3.IPCLib_interruptInit()-具有有效参数
    4. IPCLib_interruptRegisterEvent()-具有有效的回调函数
    5. IPCLib_interruptSendEvent()-具有有效负载和事件 ID


    在这里、发送器端和接收器端的所有序列都成功执行。 EVE1正在向 EVE2发送消息、但在 EVE2侧中断回调函数未被调用。



    我已附加 EVE1和 EVE2源文件。

    请告诉我共享区域"SR1_FRAME_Buffer_MEM"的使用如何影响通信、如果 我在 SYS/BIOS 配置中缺少启用 IPC_LIB 共享区域的任何步骤、也请告诉我。

    e2e.ti.com/.../main_5F00_EVE1.txte2e.ti.com/.../main_5F00_EVE2.txt

    此致、
    马纳维

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

    您好、Manavi、

    我认为在 SR1_FRAME_Buffer_MEM 区域中启用了高速缓存。

    您需要执行高速缓存 维护例程以保持 EVE1和 EVE2之间的高速缓存一致性。

    此致、
    斯坦利