Using ENET Cache RT110-EVK

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Using ENET Cache RT110-EVK

ソリューションへジャンプ
3,818件の閲覧回数
D_TTSA
Contributor V

Good day

I would like to enable the cache for the ENET driver for the 100Mb/s Ethernet port (PHY = KSZ8081) on the M4 of the RT1170-EVK, with the aim of increasing its speed of communication.

I found the following defines in MIMXRT1176_cm4.h:

D_Tram23_0-1624351305818.png

Could someone please explain to me how I can use the above defines to enable the ENET driver's cache on the M4? Or is there another way to do this?

The ENET SDK example does not use the cache.

Kind regards

0 件の賞賛
返信
1 解決策
3,734件の閲覧回数
D_TTSA
Contributor V

Hi @kerryzhou 

Thank you for your responses.

I realised that the problem was application-specific, and I managed to solve it.

Kind regards

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
3,809件の閲覧回数
kerryzhou
NXP TechSupport
NXP TechSupport

hI D_Tram23,

  Do you use the SDK for the RT1170? Please tell me which detail SDK version you are using now?

  From your picture, you can control the IOMUX_GPR_GPR28 register to enable it, bit 7.

kerryzhou_0-1624442463500.png

You also can check the fsl_enet.c driver, check the related cache code.

Wish it helps you!

Best Regards,

kerry

 

 

0 件の賞賛
返信
3,807件の閲覧回数
D_TTSA
Contributor V

Hi @kerryzhou 

Thank you for your response.

I am using the latest SDK version:

D_Tram23_0-1624443217739.png

From the screenshot you sent, I realised that I don't want to use the cache (I cannot combine ENET transactions before sending them as the project's ENET transmission requirements are real-time).

The reason I was asking about the speed of ENET is because I currently cannot transmit and receive immediately after each other in my project. If I include an SDK delay of 40us between the transmit and receive, then it works.

I tried checking the enet_data_error_stats_t struct, but it seems that the values aren't set properly in ENET_GetRxErrBeforeReadFrame() of fsl_enet.c. When this function is called (when the receive fails), then none of the following if statements test true:

 D_Tram23_1-1624447730629.png

Just below these if statements is a 'break' statement that exits the do-while loop. The function exits after hitting this break.

Note: I am using the M4 to do Ethernet communication. This is a multi-core project, with the M7 as the master and the M4 as the slave.

0 件の賞賛
返信
3,801件の閲覧回数
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @D_TTSA 

  Thanks for your updated information.

   So, you can reproduce the issues on the SDK M4 project directly, right? Which detail project you are testing now in the SDK, I mean, if you don't include an SDK delay of 40us between the transmit and receive in the SDK detail project, then can meet the issues, just let me reproduce the issues at first, then I can check with our internal SDK team.

   Please give me the SDK project path to produce the issues, and the detail modification points to reproduce the issues, thanks.

 

Best Regards,

kerry

0 件の賞賛
返信
3,735件の閲覧回数
D_TTSA
Contributor V

Hi @kerryzhou 

Thank you for your responses.

I realised that the problem was application-specific, and I managed to solve it.

Kind regards

0 件の賞賛
返信