Dear All, I have tried to run Dhry.uv2 in \keil\c51\example\dhry and it works. However, I tried to sdd some empty line between statements in every module such as Dhry.c or time.c ,I found when I type "step into" key , the cursor didn't match with new module ,it match with the posititon in old module.I found it seem to be due to DMO file Because after build only .DMO keep old time. other is update to new time. It is my big trouble ,because I couldn't study next when this bottleneck is still existed . BR.
Nobody seems to know what the .dmo file is for. It's not a file type that you normally have to deal with with uVision, and there don't seem to be any such in my actual project directories. (Just from the name, and the fact that it shows up in the examples directory, I'd guess it has something to do with "demos".) What happens if you delete the .dmo file altogether? Also, try turning off optimization as much as possible. The optimizer in Keil C is ferocious, and on high optimize-for-space levels, it will even start merging parts of individual C statements when it can save a few bytes by doing so. This can make it very hard to follow in a source-level debugger when you step through individual instructions, as even a simple block of instructions may not all come from the same "source" line, as least as far as the debug symbol information is concerned.
Dears Sir, When I delete DMO file , Program can't be executed ,because every machine code is "0"it means NOP . After I change the optimize setting ,the result is same. If I didn't delete DMO file ,I only modify source ,and open disassembly window ,I found source level is the final version I change before ,but machine keep the old version .this means OBJ is not finish ? but the time of .OBJ file is updated to new time. This is the reason why Source level didn't match with cursor when in debug mode. I really didn't know why the OBJ code is unchanged after I build and try several times ? but source level is new .
Ahhhhh. I just remembered. The .DMO file is a pre-built and linked program file for those examples that are larger than 4K. I seem to recall that there is a debugger script that loads the DMO file instead of the linker output (which isn't created anyway since the file would be larger than 2K). I guess the answer is that this example is too large to build using the FREE evaluation tools. Jon