printf("Addr %08x\n",*((unsigned int *)164));*((unsigned int *)164) = 12;asm volatile ("dmb");printf("Addr2 %08x\n",*((unsigned int *)164));printf("Addr3 %08x\n",*((unsigned int *)164));
Addr 0008080dAddr2 0000000cAddr3 0000000c
Addr 0008080dAddr2 0000000cAddr3 0008080d
Addr 0008080d Addr2 0008080d Addr3 0008080d
You may use volatile keyword or compiler optimization level can be changed to O0