Hi Bernard,

This is a mistake many people make when they are new to embedded
development, or new to using an optomising C compiler for embedded
development.  The code snippet "int x = 1; while (x) ; " tells the compiler
to enter an infinite loop.  You've already told the compiler what value "x"
has - why should it bother re-reading it all the time?  That's what
optomisation is for - being smart and saving the processor some effort.
What you need to do is declare your variable to be "volatile" - that tells
the compiler the you really do want it to read the memory each loop.

This is all explained in the documentation for the compiler - see
http://mspgcc.sourceforge.net/doc_appendixE.html .  You really should read
through the documentation there before posting such questions, and even then
it's polite to phrase your posts in the manner of "What I am I doing wrong"
rather than "Perhaps there's a bug in the compiler" unless you are pretty
confident that this is the case.

And don't post in html - use plain text.

mvh.

David





----- Original Message -----
From: Bernard MONDAN
To: [email protected]
Sent: Thursday, December 12, 2002 3:31 PM
Subject: [Mspgcc-users] Perhaps a MSP GCC bug ??


Hi dmitry

I think I have found a problem with the compiler.

This is a shortcut to the problem :

I have an interger that is set by a function, decremented by another (under
interrupt) and tested by a third.

I have tested this code :

int    xxxx;

xxxx = 4;

while( xxxx )
    ;

the generated code is :

    xxxx = 4;
    d8fa:    2f 42                 mov    #4,    r15    ;subst r2 with
As==10
    d8fc:    a2 42 7c 02           mov    #4,    &0x027c    ;subst r2 with
As==10
    while(xxxx)
    d900:    0f 93                 cmp    #0,    r15    ;subst r3 with
As==00
    d902:    fe 23                 jnz    $-2          ;abs dst addr 0xd900
        ;

I think that at the address d902 the right code is jnz $-4 and not jnz $-2
beacause the others routines modifie the 0x027c address and not the r15
register.


Please keep me informed about that.

Thank you


Bernard MONDAN

HOMERIDER SYSTEMS

[email protected]



------------------------------------------------------- This sf.net email is
sponsored by: With Great Power, Comes Great Responsibility Learn to use your
power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/ _______________________________________________
Mspgcc-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users



Reply via email to