cancel
Showing results for 
Search instead for 
Did you mean: 

Flash(content) defect/corrupt

thomaskobler9
Associate II
Posted on February 11, 2008 at 10:05

Flash(content) defect/corrupt

1 REPLY 1
thomaskobler9
Associate II
Posted on February 11, 2008 at 10:05

Dear ST10 Users,

We've already used more than 1200 ST10F276 and now we're getting

some trouble with it: We've got (at least) three ST10F276Z5Q3

of week 49 2006 with a 'bad' flash block 5 (B0F5, 02’0000h -

02’FFFFh) and at least one with data corruption in block 7 (B0F7),

too.

All blocks must have been written correctly at first, cause the ST10

passed our own CRC32 check of the relevant flash contents. But

after some running time (with a slightly increased temperature),

the ST10 crashed, and (or because of?) the content of the mentioned

blocks are currupted: Some bytes have bits switched to *'1'*! E.g.:

007FF0: B9 C4 08 91 08 71 40 7A 3D F8 F0 48 DB 00 FF FF

020000: FE 47 77 5D FA 47 60 D5 FE 47 66 7D FF 57 DE 6F

But the data should be:

007FF0: B9 C4 08 91 08 71 40 7A 3D F8 F0 48 DB 00 FF FF

020000: D6 47 77 55 C2 47 60 55 AC 47 06 58 EF 57 C0 4A

The wrong data bytes are stable and can be read out by the

flashter tool via serial line.

These lines are just an example. Much more data is changed!

I could provide the full hex dumps if necessary.

As far as I know, is not possible to switch single bits to

'1' by any intended or unintended programming action.

To make it even more strange: when erasing (successively all)

*other* blocks, the first halve of block 5 gets erased to!

But selectively erasing block 5 still seems to work, too.

Writing (flashing) block 5 does *not* work at all any more!

Despite the ST10 Flasher Tool (2.4B) doesn't issue any error

or problem, the block keeps to be erased (according to the

'Blank Check').

Our firmware is loaded into blocks 0 - 3 and 5 - 8 and our

CAN Firmware loader resides in block 4 (B0F4), which also

failes to flash the block 5, at least.

The two blocks of bank 1 (B1F0 and B1F1) are used alternatively

as non volatile storage, but it is very unlikley, that an erase

of (one of) these blocks has happended during/before crashing.

There might have been a write, but just a few bytes/low rate.

It is not the board, cause when soldering a 'defective' ST10 to

another board, it is still not fully flashable. And soldering a

new ST10 to the board where the defective has been, makes it the

board work again.

Any suggestions? Comments?

T. Kobler / Sorin Group Deutschland GmbH