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.

[参考译文] PROCESSOR-SDK-AM62X:有关 AM62x SK EVM LP 板上以太网 IPv6 和 IPv4 帧与 Eth Rx 缓冲区寄存器和中断寄存器上的优化问题的接收问题

Guru**** 2434410 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1539270/processor-sdk-am62x-regarding-reception-issue-on-am62x-sk-evm-lp-board-for-ethernet-ipv6-and-ipv4-frames-with-respect-to-optimization-issue-on-eth-rx-buffers-registers-and-interrupt-registers

器件型号:PROCESSOR-SDK-AM62X


工具/软件:

您好团队:

MCAL 软件包:  MCAL _SitaraMPU_10.01.00.03

SDK 软件包:  MCU_PLUS_SDK_am62x_10_01_00_33

当我们将 Eth 驱动程序作为 Autosar 堆栈的一部分进行以太网通信时、我们 在 AM62x_SK_LP EVM 板上遇到接收问题。

案例 1:优化问题

当以太网堆栈在电路板上运行时、我们能够看到 EVB 和测试仪适配器 ARP 帧在 Wireshark 工具上进行通信、但 AM62x 电路板无法从测试仪适配器接收任何 ARP 帧

在这种情况下、不设置 DMA 状态寄存器、不触发 Rx 中断

但是、当我们删除优化选项“-OS"时“时、就会接收到帧、我们可以在 Wireshark 上看到 UDP 和 TCP 帧的 Tx 和 Rx 通信

 案例 2:IPv6 通信

对于 IPv6 通信、 无论是否进行优化、IPv6 帧接收都无法成功

您能否确认此行为

这是我们遇到的阻塞问题、请点击此处提供支持

此致、

Pradeep R

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

    您好 Pradeep、

    请查看下面的寄存器列表:

    DMA Rx part
    Ring
    0x485E7640
    0x485E7648
    
    Rx Channel:
    0x484C1300
    0x484C1368
    
    Flow
    0x484304C0
    
    VINTR
    0x4803F000
    0x4803F008
    
    GloEvent
    0x48101468
    
    Cpsw
    stats - only get after run test
    0x0803A034 - port 0 tx
    0x0803A200 - port 1 rx
    
    Ale:
    0x0803E100
    
    Rgmii setting
    0x000104044
    0x000104048
    
    PinMux
    0x000F4134 - 0x000F418C (mem range)

    此致、

    Nihar Potturu。

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

    您好、Nihar、

    寄存器值为 e2e.ti.com/.../Register_5F00_Values_5F00_Without_5F00_Os.txte2e.ti.com/.../Register_5F00_Values_5F00_With_5F00_Os.txt

    我们看到的唯一区别是 Cpsw 的变化

    Cpsw
    统计数据 — 仅在跑步测试后获取
    0x0803A034 — 端口 0 TX  
    0x0803A200 — 端口 1 接收  

    Cpsw 寄存器的值不断变化

    此致、

    Pradeep R

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

    您好 Pradeep、

    共享寄存器转储看起来不错。 在这两种情况下、您是否还可以在测试运行时、在 DMA 初始化后共享以下寄存器值。

    VINT
    0x48101460
    0x48101468
    
    RingEvent
    0x48189098
    0x4818B098
    
    IRQ
    0x2FFF0448 

    此致、

    Nihar Potturu。  

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

    您好、Nihar、

    请查找所请求的 registerse2e.ti.com/.../With_5F00_Os.txte2e.ti.com/.../With_5F00_O0.txt 的值

    此致、

    Pradeep R

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

    您好、Nihar、

    将 mpu_init 纳入 TI 库后、现在以太网通信将使用-os 优化编译器选项。

    但有一个问题、我们无法在 SVC 模式(监控模式)下包含 TI 的 MPU_init。 我们的 Autosar OS 以 SVC 模式运行

    但是、当我们检查 SDK 时、内核使用  ARMV7R_SYSTEM_MODE、而不是 SVC 模式

    uint32_t HWI_SECTION HwiP_inISR (void)

    uint32_t mode =(HwiP_getCPSR ()& 0x1FU);
    uint32_t 结果为 0;
    if (mode != ARMV7R_SYSTEM_MODE)

    结果= 1;
    }
    返回结果;
    }

    我们尝试  在 OS 更改为 SVC 模式之前调用 MPU_init、然后它会正常工作

    因此、您能告诉我们 MPU_init 是否 仅在 ARMV7R_SYSTEM_MODE 中有效 、而且由于我们 稍后将 HwiP_inISR 用作服务器客户端的一部分、我们再次将上述代码更改为 SVC 模式和已归一  化库、因为这不会影响操作系统的初始化和启动序列

    uint32_t HWI_SECTION HwiP_inISR (void)

    uint32_t mode =(HwiP_getCPSR ()& 0x13U);
    uint32_t 结果为 0;
    if (mode != ARMV7R_SVC_mode)

    结果= 1;
    }
    返回结果;
    }

    是否可以使用此项、请确认

    谢谢你

    此致、

    Pradeep R

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

    您好 Pradeep、

    如星期五中所述、您可以继续进行这些更改。

    此致、

    Nihar Potturu。  

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

    您好、Nihar、

    感谢您的确认

    此致、

    Pradeep R