Greetings all, I'm fairly new to the Keil Toolset and had a question regarding the C51 code optimization levels. It seems that on Level 8: Reuse Common Entry Code (default), the main() entry function gets completely optimized out if the main() function grows too large. I can avoid this by either changing the optimization level, or by adding the debug flag in the Output tab. The actual assembly is correct in the .LST file, but if I check the hex file, the main() function doesn't appear at the location specified by the map file. Is this normal behaviour? Is there some setting I'm misinterpreting somewhere? TIA, JG.
Hi Jon, I just downloaded the newest tools from Keil and updated everything. Seems like the problem is gone and I get the same results as you. Thanks a lot for all your help. I just hope the problem is _really_ fixed this time. It just seems a bit scary that things were so intermittent.
I just downloaded the newest tools from Keil and updated everything. Oops. I guess we should have checked the version number from the beginning. Jon
Yes, Stefan _did_ ask which versions I was using. I looked through the update notes, but didn't find anything specifically related to this problem. Might have another surprise waiting for us in a few months :)
"I looked through the update notes, but didn't find anything specifically related to this problem." Indeed, perhaps Jon can show us where this bug is documented? Stefan