Hi all, I am using the microvision 2 and the controller is c8051f12x. I faced a strange problem with keil. Have a look at the following sample code.
void main() { f1(); f2(); f3(); } void f1() { // some code } void f2() { // some code } void f3() { // some code }
"I'll test it with lower optimisation levels." If it works on lower optimisations, you have one of two problems: (1). Your code relies upon something that it shouldn't, but that happens not to matter at low optimisation (ie, your code works by luck); (2). You have found a situation that confuses the optimiser. If you suspect (2), you should start by examining the compiler's generated assembler and the disassembly generated by the Linker in its .COD file.