problem with debugger start address

I have Cortex-M3 and encountered problems when using scatter file: (I just want to keep space 4kb at the beginning of the code space)

LR_IROM1 0x08000000 0x01000{ ER_IROM1 0x08000000 ABSOLUTE EMPTY 0x1000 { ;0x1000 empty space }

LR_IROM2 0x08001000 0x3F000{ ER_IROM2 0x08001000 ABSOLUTE 0x3F000{ STM32F10x.o(RESET, +First) ; vector table *.o(+RO) *(InRoot$$Sections) }

RW_IRAM2 0x20000000 0x0000C000 { ; RW data *.o(+RW +ZI) }

After I compile the project and download the image into target, debugger puts its pointer at address 0x00000000 which is complete nonsence. Disassemly window looks like this:

***************************************************************************************** 151: 152: /* Get status to se if WIP (write in progress) clear */
0x00000000 5700 LDRSB r0,[r0,r4] 153: sr = Fls_RDSR();
0x00000002 2000 MOVS r0,#0x00
0x00000004 8799 STRH r1,[r3,#0x3C]
0x00000006 0800 LSRS r0,r0,#0
There should be main at address somewhere in 0x0800xxxx. The same happens when I don't use scatter file but set the R/O Base to 0x08001000 in the Linker Tab. If I put in the default value 0x08000000 everything works fine. I use ST-Link.

Does anybody have an idea what's wrong? How could I force the debugger to show propper entry point?

Thank you in advance for any hint.

More questions in this forum