<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Decompressor overwrites my variables...</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/38367/decompressor-overwrites-my-variables</link><description> 
cpu: at91sam7x256 

 
I have in my project some global objects, they are by default
placed at address 0x200000. My program seems to work properly but
occasionally beginning of RAM is filled with zeros by Keil library
function at label: __decompress1</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/148381?ContentTypeID=1</link><pubDate>Thu, 14 May 2009 01:07:25 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:952e9493-d089-459d-901f-6d141860568b</guid><dc:creator>Marcus Harnisch</dc:creator><description>&lt;p&gt;&lt;p&gt;
Because r12 is a scratch register that may be modified by the
callee. The caller is responsible for saving it. The SVC (formerly
known as SWI) is a synchronous call (unlike an IRQ for instance),
i.e. the compiler has to apply the same rules as for a normal
function call.&lt;/p&gt;

&lt;p&gt;
Regards&lt;br /&gt;
Marcus&lt;br /&gt;
&lt;a href="http://www.doulos.com/arm/"&gt;http://www.doulos.com/arm/&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/148088?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 22:41:34 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f16984e4-ecbf-4c9b-a41f-0289f0c9ad77</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
Why don&amp;#39;t you &amp;#39;push&amp;#39; and &amp;#39;pop&amp;#39; R12 ?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/147512?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 22:15:27 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:de377427-a1fc-479b-a86b-6f555aba5763</guid><dc:creator>Franc  Urbanc</dc:creator><description>&lt;p&gt;&lt;p&gt;
Here is updated SWI handler. This one does not allow nested
interrupts, but solves your interrupt disable problem.&lt;/p&gt;

&lt;pre&gt;
SWI_Handler

                STMFD   SP!, {R8, LR}          ; Store R8, LR
                MRS     R12, SPSR              ; Get SPSR
                TST     R12, #T_Bit            ; Check Thumb Bit
                LDRNEH  R12, [LR,#-2]          ; Thumb: Load Halfword
                BICNE   R12, R12, #0xFF00      ;        Extract SWI Number
                LDREQ   R12, [LR,#-4]          ; ARM:   Load Word
                BICEQ   R12, R12, #0xFF000000  ;        Extract SWI Number

                LDR     R8, SWI_Count
                CMP     R12, R8
                BHS     SWI_Dead               ; Overflow
                ADR     R8, SWI_Table
                LDR     R12, [R8,R12,LSL #2]   ; Load SWI Function Address
                MOV     LR, PC                 ; Return Address
                BX      R12                    ; Call SWI Function

                LDMFD   SP!, {R8, PC}^         ; Restore R8 and Return

SWI_Dead        B       SWI_Dead               ; None Existing SWI
&lt;/pre&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/135770?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 10:21:27 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c4243b23-7f03-46dc-9d1b-52ba28731bc2</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
If you get the same problem with or without DMA, then maybe you
should point out that the function was just an example, and you got
the same problem in other functions and with or without DMA
transfers.&lt;/p&gt;

&lt;p&gt;
The goal is to try to find the smallest possible program that has
the problem, just so that you can eliminate as much code as
possible.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/146362?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 09:48:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4b12b370-b4af-4217-9e55-d38b0cf69875</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thank you very much :)&lt;br /&gt;
I changed in code CPSR to SPSR and removed line with MSR SPSR_cxsf,
R12. And now everything works :)&lt;br /&gt;
The most crazy is that my project has worked OK for 2 months with no
real critical section.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/146365?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 05:18:27 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a098bb64-bdb7-4a96-9a27-50eec2b89284</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;pre&gt;
T_Bit              EQU     0x20

                PRESERVE8                       ; 8-Byte aligned Stack
                AREA    SWI_Area, CODE, READONLY
                ARM

                EXPORT  SWI_Handler
SWI_Handler

                STMFD   SP!, {R12, LR}          ; Store R12, LR
                MRS     R12, SPSR               ; Get SPSR
                STMFD   SP!, {R8, R12}          ; Store R8, SPSR
                TST     R12, #T_Bit             ; Check Thumb Bit
                LDRNEH  R12, [LR,#-2]           ; Thumb:Load Halfword
                BICNE   R12, R12, #0xFF00       ;       Extract SWI Number
                LDREQ   R12, [LR,#-4]           ; ARM:  Load Word
                BICEQ   R12, R12, #0xFF000000   ;       Extract SWI Number

                LDR     R8, SWI_Count
                CMP     R12, R8
                BHS     SWI_Dead                ; Overflow
                ADR     R8, SWI_Table
                LDR     R12, [R8,R12,LSL #2]    ; Load SWI Function Address
                MOV     LR, PC                  ; Return Address
                BX      R12                     ; Call SWI Function

                LDMFD   SP!, {R8, R12}          ; Load R8, SPSR
                MSR     SPSR_cxsf, R12          ; Set SPSR
                LDMFD   SP!, {R12, PC}^         ; Restore R12 and Return

SWI_Dead        B               SWI_Dead        ; None Existing SWI

SWI_Cnt         EQU    (SWI_End-SWI_Table)/4
SWI_Count       DCD     SWI_Cnt

                IMPORT  __SWI_0
                IMPORT  __SWI_1
SWI_Table
                DCD     __SWI_0                 ; SWI 0 Function Entry
                DCD     __SWI_1                 ; SWI 1 Function Entry
SWI_End

                END
&lt;/pre&gt;

&lt;p&gt;
Do you think I should change something?&lt;br /&gt;
This code touches SPSR to switch beetwen ARM and Thumb... Maybe I
missed it touches int falgs...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/144618?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 04:55:52 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f9f272cb-7b32-4e44-9fed-a7fe9747075e</guid><dc:creator>Franc  Urbanc</dc:creator><description>&lt;p&gt;&lt;p&gt;
What SWI handler are you using. The one from MDK startup folder
overwrites the CPSR on exit. This is because it allows nested
interrupts and nested SWI function calls.&lt;/p&gt;

&lt;p&gt;
Can you post your SWI handler here?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/142308?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 01:51:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:09f44ee9-6bd0-4105-8f52-2a9339b454fb</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
Maybe I found source of problem...&lt;/p&gt;

&lt;pre&gt;
volatile unsigned int uiCriticalNesting = 0;
extern &amp;quot;C&amp;quot; void __SWI_0 ( void );
extern &amp;quot;C&amp;quot; void __SWI_1 ( void );

void __swi(0) vEnterCritical( void );
void __SWI_0 ( void )
{
        int R0;
        __asm{ MRS      R0, CPSR        };
        __asm{ ORR      R0, R0, #0xC0   };
        __asm{ MSR      CPSR_CXSF, R0   };

        ++uiCriticalNesting;
}

void __swi(1) vExitCritical( void );
void __SWI_1 ( void )
{
        if( uiCriticalNesting )
        {
                --uiCriticalNesting;

                if( uiCriticalNesting == 0 )
                {
                        int R0;
                        __asm{ MRS      R0, CPSR        };
                        __asm{ BIC      R0, R0, #0xC0   };
                        __asm{ MSR      CPSR_CXSF, R0   };
                }
        }
}
&lt;/pre&gt;

&lt;p&gt;
It seems to be OK, but before bad jump to __main: program is
inside interrupt function and uiCriticalNesting is != 0. It should
never happen, so what&amp;#39;s wrong with my critical sections?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/139163?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 00:54:42 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c2f88b24-2a07-4168-a370-582bdcb43ce5</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
With a stack overwrite, you may see a lot of funny addresses
all-over. I you jump the processor into the middle of perfectly
working code, it doesn&amp;#39;t matter that the code is working.&lt;/p&gt;

&lt;p&gt;
After all, it&amp;#39;s contracts programming. The supplier of a function
guarantees that the function will do the intended task, as long as
you guarantee that you will supply the function with the expected
runtime environment and the correct input parameters.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/125444?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 00:45:39 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b3d82237-c1e1-442e-a067-f8b2ae014f26</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I haven&amp;#39;t checked the datasheet for your processor - have you
verified if it is safe/allowed to use the same address for SPI
receive and SPI transmit?&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I dont remember but when I use SPI without DMA it changes nothing
;)&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/135788?ContentTypeID=1</link><pubDate>Wed, 13 May 2009 00:40:54 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f4078538-2d27-4fb7-87b0-8cc4ac2e6ce3</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
OMG :(&lt;br /&gt;
The same thing sometimes happens inside assembly code of printf...
(if value in LR is correct).&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/101826?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 13:02:10 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c8fda5b5-e7f8-4986-8893-0c675dd0d6e1</guid><dc:creator>Gp F</dc:creator><description>&lt;p&gt;&lt;p&gt;
Did you check the Stack **AND** Heap size values in your startup
file ? This behaviour is likely to happen when you are running out of
heap space...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/125442?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 05:16:30 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:08e2a6ff-b82e-40dd-91f0-efc3ce809e64</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
OK.&lt;br /&gt;
I changed some things in my code and now in also jumps to __main: but
in LR is always 0xfffe0000 (AT91C_BASE_SPI0).&lt;/p&gt;

&lt;p&gt;
Is there any way to set breakpoint when LR is written with
0xfffe0000?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/114912?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:48:52 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b6f8fd37-166b-4239-a7f3-268f9cd54842</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
The reinterpret_cast is basically the same as a traditional C
cast, but with the difference that it can&amp;#39;t remove const or
volatile.&lt;/p&gt;

&lt;p&gt;
But the important thing here is that it will silently cast NULL
pointers - that function should contain some code to validate your
pointers before you start the DMA transfer. Not only should you check
that you have non-NULL pointers, you should also try to verify that
the pointers are to reasonable memory areas.&lt;/p&gt;

&lt;p&gt;
It may be even better to have a special function that does not
take several pointers as parameters, but have hard-coded statically
allocated buffers.&lt;/p&gt;

&lt;p&gt;
I haven&amp;#39;t checked the datasheet for your processor - have you
verified if it is safe/allowed to use the same address for SPI
receive and SPI transmit?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/103094?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:40:14 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ff95b649-b03a-4433-b089-97c090ea63af</guid><dc:creator>Tamir Michael</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;b&gt;reinterpret_cast&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;
this is a very unsafe cast, if my memory does not betray me.
surely you can get rid of it.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/114918?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:39:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c2c2b18e-b548-4624-8bde-b6c856edd851</guid><dc:creator>Mike Kleshov</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;It happens even if I disable decompressor....&lt;br /&gt;
How to disable mem init?&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I don&amp;#39;t think you should disable memory initialization. You should
find out why your program re-runs memory initialization after
startup. It could be caused by software bugs as well as hardware
faults.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/114924?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:33:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b686793a-513e-40f8-8ddd-9c2634825910</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
It always jumps there. It happens occasionally and there is a few
calls of that function and error happens in all of them.&lt;/p&gt;

&lt;p&gt;
Sorry for my lang mistakes ;)&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/101828?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:26:19 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7340f8d4-c626-4870-baac-67cc5d5b1657</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
It happens even if I disable decompressor....&lt;br /&gt;
How to disable mem init?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/103091?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:26:09 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:5203fbb2-0052-400c-ad8c-4b8fac0adfa3</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
It jumps to main()? It doesn&amp;#39;t jump to an even earlier position -
somewhere in the startup file?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/77436?ContentTypeID=1</link><pubDate>Tue, 12 May 2009 04:22:57 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:65e8bfd4-0216-4712-8316-1689219be889</guid><dc:creator>sad man</dc:creator><description>&lt;p&gt;&lt;p&gt;
It happens even if I disable decompressor.&lt;/p&gt;

&lt;p&gt;
I noticed, sometimes when should be called function
spi.DMA_Transfer( buff, size ); program jumps to code at label
__main:&lt;/p&gt;

&lt;p&gt;
Function works OK but it sometomes happens error in function
call...&lt;/p&gt;

&lt;p&gt;
Any idea... ?&lt;/p&gt;

&lt;pre&gt;
void AT91SPI::DMA_Transfer( void * buff, unsigned int size )
{
        pPDC-&amp;gt;SPI_RPR = reinterpret_cast&amp;lt;unsigned int&amp;gt;(buff);
        pPDC-&amp;gt;SPI_TPR = reinterpret_cast&amp;lt;unsigned int&amp;gt;(buff);
        pPDC-&amp;gt;SPI_RCR = num;
        pPDC-&amp;gt;SPI_TCR = num;
        while( !( pPDC-&amp;gt;SPI_SR &amp;amp; AT91C_SPI_ENDRX ) );
}
&lt;/pre&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/89735?ContentTypeID=1</link><pubDate>Mon, 11 May 2009 22:48:24 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:029f6940-345e-474c-82d6-2512bf7dab78</guid><dc:creator>Mike Kleshov</dc:creator><description>&lt;p&gt;&lt;p&gt;
Here is the relevant linker command line option:&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.keil.com/support/man/docs/armlinkref/armlinkref_chdchgae.htm"&gt;
&lt;a href="http://www.keil.com/support/man/docs/armlinkref/armlinkref_chdchgae.htm"&gt;www.keil.com/.../armlinkref_chdchgae.htm&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/56045?ContentTypeID=1</link><pubDate>Mon, 11 May 2009 22:44:46 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9d02ef8e-92b7-4c3b-88ee-d8baa0c1ba8c</guid><dc:creator>Mike Kleshov</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;My program seems to work properly but occasionally beginning of
RAM is filled with zeros by Keil library function at label:
__decompress1 in deassembly window.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I do remember having my variables overwritten be the decompression
code. After some investigation, I came to the conclusion that it was
a bug in the compression/decompression feature. To work around it, I
switched the feature off.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Decompressor overwrites my variables...</title><link>https://community.arm.com/thread/56047?ContentTypeID=1</link><pubDate>Mon, 11 May 2009 18:11:29 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ebc4d0da-ee62-4d49-9765-ebb27fbfc01d</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
This sounds like a problem in your part of the code. Look for
watchdog resets, stack overflow, pointer corruptions or use of
uninitialized pointers/array indices in your code.&lt;/p&gt;

&lt;p&gt;
The zero-init and decopress of const variables should only happen
during program startup, so you either gets restarts when not planned,
or your code somehow manages to jump into code functions you don&amp;#39;t
intended to call.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>