Skip to main content
Pedram
Associate III
September 8, 2017
Solved

STM32 HAL IAR Remaining in while(x);

  • September 8, 2017
  • 2 replies
  • 635 views
Posted on September 08, 2017 at 17:03

Hello friends

i set x=0; in timer Interruption x=0; per 1ms

in my program i using this Code

x=1;

while(x);

in debug i see x is 0 but CPU Remaining in while(x)

but if my while have any command work right and exit from while!!

x=1;

while(x); not exit if x == 0

x=1;

while(x) {for example LCD_Clear();} // exit from this while if x == 0

Is this a law in IAR or this is bug ?

    This topic has been closed for replies.
    Best answer by Pedram
    Posted on September 08, 2017 at 17:29

    Thank you very much

    The problem was solved

    2 replies

    Alan Chambers
    Associate III
    September 8, 2017
    Posted on September 08, 2017 at 17:09

    Possibly due to the compiler optimising the code. Is x declared volatile? It should be. If not, the compiler is free to assume that the value never changes, and will read it only once. Step through the assembler and see whether the variable is actually read on every iteration.

    Pedram
    PedramAuthorBest answer
    Associate III
    September 8, 2017
    Posted on September 08, 2017 at 17:29

    Thank you very much

    The problem was solved