is volatile keyword really needed when variable changed in interrupt routine
<p>I'm using nrf52 microcontroller (CORTEX 34F) processor. I have a variable check on the main loop which is modified both on the main loop and timer interrupt routine.</p>

<ol>
<li><p>main loop check if variable is true : </p>

<ul>
<li><p>execute condition code</p></li>
<li><p>set variable to false</p></li>
</ul></li>
<li>timer interrupt routine set variable to true every 10 ms</li>
</ol>

<p>without <code>volatile</code> keyword, the code seems not working, but when I set the variable to <code>volatile</code> it seems to work but I'm not convinced because :</p>

<ol>
<li>first I think cortex M4f doesn't contain data cache memory</li>
<li>second : this case is handeld by the compiler (arm keil)</li>
</ol>

<p>any answer please ;</p>

<p>if true execute body code
 2. List item</p>