I was taught if the variable might be changed by OS,hardware, or interrupt routine asynchronous it must be declared as "volatile" !
But reviewing current code base I found no "volatile" variables for H/W but it works well...
My question is: besides using "volatile" variable is there any way to access peripheral device mapped to XDATA ?