cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 HAL IAR Remaining in while(x);

Pedram
Associate III
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 ?

1 ACCEPTED SOLUTION

Accepted Solutions
Posted on September 08, 2017 at 17:29

Thank you very much

The problem was solved

View solution in original post

2 REPLIES 2
Alan Chambers
Associate II
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.

Posted on September 08, 2017 at 17:29

Thank you very much

The problem was solved