Machine check exception when writing to internal flash

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

Machine check exception when writing to internal flash

ソリューションへジャンプ
690件の閲覧回数
andreheinemans
Contributor II

Hi,

I am encountering a machine check exception when programming the internal flash on a MPC5745R using Core0 and I don't know why this happens.

The software is located in a section between 0x00FA0000-0x00FFFFFF and it tries to install a bootheader in 0x00F9C000. Just some instructions after a write or erase in this ROM area will raise the machine check exception.
Writing to a section located in 0x01000000-0x01280000 is no problem at all.

The c55fmc driver is used from the SDK to program the internal flash.
Memory protection has been disabled so it is sure this does not trigger the exception.

A peculiar thing is this software is running successfully when running on Core1 which does not have dual lockstep support. Because the safety level of the software we have to run this on Core0 using its dual lockstep feature.

What could be the cause of this machine check exception?

See below some usefull register values and attached is a complete register dump.

mcsr    0x10000
srr0    0xfa71ae
srr1    0x9000
mcsrr0    0xfb84c0
mcsrr1    0x9000
mcar    0   

タグ(2)
1 解決策
553件の閲覧回数
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

this is caused by Read-While-Write (RWW) error, most likely.

RWW is supported only between partitions. It is not possible to access a partition while it is being programmed or erased.

This is a screenshot from Memory_Map_Tables.xls which can be found attached inside the reference manual:

pastedImage_2.png

Address 0x00F9C000 is in Partition 1 and the code is obviously running also from Partition 1.

Regards,

Lukas

元の投稿で解決策を見る

2 返答(返信)
554件の閲覧回数
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

this is caused by Read-While-Write (RWW) error, most likely.

RWW is supported only between partitions. It is not possible to access a partition while it is being programmed or erased.

This is a screenshot from Memory_Map_Tables.xls which can be found attached inside the reference manual:

pastedImage_2.png

Address 0x00F9C000 is in Partition 1 and the code is obviously running also from Partition 1.

Regards,

Lukas

553件の閲覧回数
andreheinemans
Contributor II

Hi Lukas,

Thanks for you quick reply. This seems to be problem indeed.

Moving this piece of software to another partition solves the problem.

When the software was running on Core1, the code was very different and the part that installed the bootheader was linked into partition 0. So it looks like the software worked by accident back then. :smileyhappy:

Kind regards,

Andre

0 件の賞賛