shared-memory code of multcores only works in debug mode

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

shared-memory code of multcores only works in debug mode

ソリューションへジャンプ
1,849件の閲覧回数
bwp530
Contributor IV

MPC5777M S32DS-2017R1

I have a shared-memory code of multcores, but it only works in debug mode. When power on again, I cann't work. 

I transplant code from Example S32R274 multi-core shared memory - S32DS Power v1.2 

1.png

2.png

3.png

タグ(2)
0 件の賞賛
返信
1 解決策
1,686件の閲覧回数
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

as I can see in your linker file and in startup code, you don't initialize shared SRAM. This is mandatory because the SRAM is in random state after power-on which leads to double bit ECC errors. If you then access such SRAM, machine check exception is triggered.

This is from startup.s:

pastedImage_1.png

You need to run this code also for shared memory.

Regards,

Lukas

元の投稿で解決策を見る

0 件の賞賛
返信
3 返答(返信)
1,687件の閲覧回数
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

as I can see in your linker file and in startup code, you don't initialize shared SRAM. This is mandatory because the SRAM is in random state after power-on which leads to double bit ECC errors. If you then access such SRAM, machine check exception is triggered.

This is from startup.s:

pastedImage_1.png

You need to run this code also for shared memory.

Regards,

Lukas

0 件の賞賛
返信
1,686件の閲覧回数
bwp530
Contributor IV

Hi lukas:

thank you very much. It really help me.

0 件の賞賛
返信
1,686件の閲覧回数
bwp530
Contributor IV

4.png

int main(void)
{
int counter = 0;
SysClk_Init();
LINFlexD_1_Init();
TransmitCharacter(0x61);

Z4_busy_flag = 1;

xcptn_xmpl (); /* Configure and Enable Interrupts */

/* Loop forever */
for(;;) {
TransmitCharacter(0x61);
counter++;
}
}

when I removed "Z4_busy_flag = 1;", the code works fine in both mode. It seems like that the program can't access the Z4_busy_flag, when power on again.

davidtosenovjanMartin KovarPetr StancikStanislav Sliva

0 件の賞賛
返信