Hi, I'm an mixing assembly with C code using Keil uV 4.6 When I have optimization Level 3 (-O3) turned on, the compiler skips alot of assembly function memory reads & writes. I need every line to be executed for this particular function.
__asm { MOV r1,#0x0041000 MOV r2,#0x0040000 ... }
I have tried intrinsic commands like __nop(), __force_store(), __schedule_barrier, etc, and have tried to make variables volatile. I know i must be missing something... Any suggestions
Using -O0 may work "by accident" with your current code and current compiler, but it's not guaranteed to leave inline asm alone.
There are examples of mixing C and asm in the documentation: infocenter.arm.com/.../Babjhjbd.html