My multicore project on s32r294 could not suspend at the main function's entry on two Z7s.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

My multicore project on s32r294 could not suspend at the main function's entry on two Z7s.

跳至解决方案
1,258 次查看
Gordon_Yang
Contributor III

Hi,

I found that my R294 multicore project could not auto-suspend at the Z7_1 and Z7_2's main functions' first line after I load my program and run into debug mode. The debugger only auto-suspended at Z4's main entry but two Z7 not.

Gordon_Yang_1-1622624282566.png

 

Is there any method to resolve this issue?

By the way, I found the official SDK's interrupt control multicore project can auto-suspend at each core's first main entry but my project not.

Gordon_Yang_0-1622624019430.png

 

 

0 项奖励
回复
1 解答
1,233 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi Gordon,

message "Running: User Request" is displayed when a core has not been started yet. The interrupt multicore project starts Z7 cores at the end of startup files. SystemInit function is called before jumping to main and it starts the cores. When you reach the main function, cores are already running.

If this is not done in your project, you will see "Running: User Request" until you start the cores. You can take a look at the function SystemInit here:

C:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\platform\devices\S32R294\startup\system_S32R294.c

Regards,

Lukas

在原帖中查看解决方案

0 项奖励
回复
5 回复数
1,244 次查看
Gordon_Yang
Contributor III

I found a powerup procedure for S32R274 which introduces that how to start Z7 core.

Is it also compatible for R294? I think that maybe my Z7s didn't power up successfully.

https://www.nxp.com/docs/en/application-note/AN12553.pdf

0 项奖励
回复
1,234 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi Gordon,

message "Running: User Request" is displayed when a core has not been started yet. The interrupt multicore project starts Z7 cores at the end of startup files. SystemInit function is called before jumping to main and it starts the cores. When you reach the main function, cores are already running.

If this is not done in your project, you will see "Running: User Request" until you start the cores. You can take a look at the function SystemInit here:

C:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\platform\devices\S32R294\startup\system_S32R294.c

Regards,

Lukas

0 项奖励
回复
1,221 次查看
Gordon_Yang
Contributor III

@lukaszadrapa,

Thanks for your reply.

I found that my project's Z7a & Z7b have been revised the ISRAM's address.

And it leads that the system ran into the wrong default ISRAM address after Z4 started up.

After I defined the correct MACROs for "__cpu1_boot_addr__" and "__cpu2_boot_addr__", the Z7b could started up successfully and suspended at main's 1st line. But Z7a didn't.

Z7a suspended at the "_start: wrteei 0 ;# Disable interrupts" in the start-up assembly.

97599724-0cd3-4f51-8470-ba395699d866.png

Do you know why does Z7a suspend here?

0 项奖励
回复
1,199 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

because the core was obviously started, it looks like some issue in startup files. What about SRAM initialization? Are you sure it is correct?

Regards,

Lukas

0 项奖励
回复
1,195 次查看
Gordon_Yang
Contributor III

Hi Lukas,

Thanks for your reply again.

Indeed, because there is overlapped issue between my code RAMs on Z4's ISRAM and Z7a's ISRAM.

After I reconfigured the location for two ISRAMs, the Z7a could normally start up.

Regards,

Gordon.

 

0 项奖励
回复