Compatibility between multi-core and lwIP on RT1170

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

Compatibility between multi-core and lwIP on RT1170

ソリューションへジャンプ
1,526件の閲覧回数
LoicBe
Contributor II

Hi,

I'm getting started with the i.MX RT1170 chip, using EVK, and I would simply like to use multi-core message buffers with FreeRTOS along with TCP communication, using lwIP.

So far, both features are working well on the same code... when the other is commented.  As soon as the secondary core (CM4) is started using MCMGR_StartCore, the TCP communication stops.

Is there any known incompatibility between those features? If you have anything that worth exploring, I would be grateful.

Thank you,

Loïc.

0 件の賞賛
1 解決策
1,452件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi @LoicBe ,

Yes, in BOARD_BootClockRUN it call CLOCK_SetPllBypass(kCLOCK_PllSys1, true) and CLOCK_DeinitSysPll1(). But PLL1 is enet clock source. In your application, you should disable these two call.

 

Regards,

Jing

元の投稿で解決策を見る

0 件の賞賛
5 返答(返信)
1,498件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi @LoicBe ,

In RT1170 freertos_message_buffer example, xMessageBufferSend() call sbSEND_COMPLETED() to send message. This macro is redefined to vGenerateSecondaryToPrimaryInterrupt(). That means xMessageBufferSend() can't be used both on sending message between tasks and between cores.

 

Regards,

Jing

0 件の賞賛
1,486件の閲覧回数
LoicBe
Contributor II

Hi @jingpan,

Thank you for your answer!

I understand your explanation but I'm not sure it really fits the situation as I can run without any problem a TCP echo example with sbSEND_COMPLETED() redefined to vGenerateSecondaryToPrimaryInterrupt().  It just stops working when MCMGR_StartCore() is called.

Does it make sense with what you explained?

Thank you!

Loïc.

0 件の賞賛
1,483件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi,

Can you give an example project?

 

Regards,

Jing

0 件の賞賛
1,473件の閲覧回数
LoicBe
Contributor II

Hi,

Sure, here is an example of a simple mix between "multicore message buffer" and "TCP echo" sample codes.  I commented the multicore part from the app_task from the MCMGR_StartCore just so the TCP echo is working.  If you uncomment MCMGR_StartCore this is not working anymore.

After some deeper investigation it looks like this is the BOARD_BootClockRUN of the CM4 core that prevents the communication from working on the CM7 core.

Thank you for your help.

Loïc.

0 件の賞賛
1,453件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi @LoicBe ,

Yes, in BOARD_BootClockRUN it call CLOCK_SetPllBypass(kCLOCK_PllSys1, true) and CLOCK_DeinitSysPll1(). But PLL1 is enet clock source. In your application, you should disable these two call.

 

Regards,

Jing

0 件の賞賛