cancel
Showing results for 
Search instead for 
Did you mean: 

stuck to Write memory error at address 0x5c00200...

markmcwired9
Associate II
Posted on January 06, 2007 at 23:02

stuck to Write memory error at address 0x5c00200...

4 REPLIES 4
amira1
Associate II
Posted on May 17, 2011 at 09:35

Hi mcwired,

could you please tell me what's the version of the chip you are working with.Is it rev B?

Best regards

mirou

markmcwired9
Associate II
Posted on May 17, 2011 at 09:35

Hi.

I'm stuck with this error message ''Write memory error @ address 0x5C002000..''

I have a STR912-SK from IAR. While programming using the jlink I got to this no-way-out state. I read some post in this forum recomending to place jumpers on P6.6 and P6.7... but nothing. I also tried to use CAPS, but when I choose RLink as my hardware selection I get this... ''Rlink connect test failed'' message.

Is there any back door to clear the flash at once or any other trick to solve this nasty bugs..??? or aren't this bugs..???

Thank you,

Mark.

markmcwired9
Associate II
Posted on May 17, 2011 at 09:35

Hi mirou,

the chip on the dev. kit has this mark on top of it:

STR912FW44X6 HPAEN VP KOR HP 619

the STR912-SK from IAR is Rev. A

Do you have an idea to make it back to life ?

Thank you,

Mark

markmcwired9
Associate II
Posted on May 17, 2011 at 09:35

I found a solution !!! I'm posting it, in case someone else falls into this frustrating situation:

1) I built a partial FlashLINK JTAG programming cable for STR9 using a protoboard, according to UM0244.pdf I used 74244 instead of 74240 and 7404 instead of 5405. The only lines that i used were TCK,TMS, TDI, TDO, TRSTN and RSTN attached to RESET# line in the STR912-SK

2) Downloaded the JTAG Programming Software v1.1 from ST

3) After creating a project, I clicked the Programmer tab, selected Assert Reset, selected ''Erase'' as operation and then Execute (I read this in another post).

4) Happiness came after that 🙂

I think the problem that caused this is due an error in this file: 91x_gpio.c If you check lines 109 to 116 you'll find this:

if(GPIOx == GPIO7)

{

SCU_APBPeriphReset(__GPIO7,ENABLE);

SCU_APBPeriphReset(__GPIO7,DISABLE);

SCU->GPIOOUT[0x07] = 0xAAAA;

SCU->GPIOOUT[0x07] = 0x0000;

SCU->GPIOIN[0x07] = 0x0000;

}

while the rest of the other if...then conditionals use this

if(GPIOx == GPIO6)

{

SCU_APBPeriphReset(__GPIO6,ENABLE);

SCU_APBPeriphReset(__GPIO6,DISABLE);

SCU->GPIOTYPE[0x06] = 0x0000 ;

SCU->GPIOOUT[0x06] = 0x0000;

SCU->GPIOIN[0x06] = 0x0000;

}

the SCU->GIOTYPE[0x07] line is missing and SCU->GPIOOUT[0x07] is declared twice. I don't know if that by itself caused my problem, but the truth is that when I tried to use PORT7 it crashed.

Hope this is usefull.

Mark.