I'm trying to put the monitor in an EPROM so I don't have to download over USB (using FX2 device). I've done everything that I think is needed, but still get monitor error 22 - no code memory at 1212h. The hex file does not contain any data at address 1212! The load completes (i.e. download hits 100%) but debugger won't start up. I do see that during the download, one time, the processor does a read from address 1212h which is probably not an instruction fetch but a read from code memory (since it reads one byte from that region and that's all, while executing up around CXXX). Has anyone successfully gotten the monitor to run on their board?
I have been working on this problem for THREE WEEKS. I really need the monitor source code so that I can trace through the code a bit, bet better listings, see why the "Connected..." message is messed up, get real M51 files so I know what areas are really used, etc. I get the "No code memory at 1212H" message repeatedly during load, but that address is only accessed ONE TIME. So the debugger continues to complain about that address, without even accessing it. If it keeps track of bad addresses internally, then it makes sense of course, but if not then I should be seeing repeated accesses to 1212H but I do not.
I really need the monitor source code... I really hate to tell you this, but everyone who has said this to me was 10x more lost with the monitor source code. At the end of the day, the monitor source code didn't help at all because the problem wasn't there. It was in configuration/setup that was assumed correct but actually wasn't. What FX2 hardware are you using? Jon
It's our own board. If I had a listing of the monitor library source then I could see what region the code is in when it reads address 1212h. There should not be any accesses to this area, and there is no data in the hex file in this region. If I could tell that the processor was trying to push something on the stack, for example, then I'd know that the stack pointer must be messed up. Perhaps you could compile the library with some higher level of debug turned on, so that the resulting map file includes lots more data about what routines are where in memory. After spending weeks on this I don't think that I'd be any worse off with the source. I've really exhausted all the usual problems. I followed everything in the app note, and the monitor is "sort of" recognized, and all the code does download - just doesn't run at the end. Does the EPROM area near address zero have to be writeable? My understanding is that all the jumps in the vector table are redirected to similar jumps (a duplicate table) at address 8000. If the code tries to change locations at that address then of course it won't work since it's not von neumann in that region.