Hi,
I have a curious problem with an MM128 not running without the debugger connected. I've seen the other posts that talk about COP etc and that is not the cause. I have found a "fix" by changing the prm file but I don't know why it works. I started with the default prm that gets created when the MM128 MCU is selected. I just changed the memory range that the CRC calc is performed over to just look at the unbanked ROM (as that is where my code resides and it means I can work with 16-bit pointers in my code that verifies the ROM CRC as part of a power-on self-test).
CHECKSUM
CHECKSUM_ENTRY
METHOD_CRC_CCITT
INIT 0x8D9D
OF READ_ONLY 0x040B2 TO 0x07FFF
OF READ_ONLY 0x0C000 TO 0x0FF9D
OF READ_ONLY 0x0FFC0 TO 0x0FFFF
INTO READ_ONLY 0xFFB8 SIZE 2
UNDEFINED 0xff
END
END
I then find that my application does not run without the debugger connected. I think the MCU keeps resetting (I put some light LED code in right after the stack pointer init) it does not get as far as that without running in the debugger.
By trial and error I found that reverting back to the default checksum prm entry (below) the application will run without the debugger.
CHECKSUM
CHECKSUM_ENTRY
METHOD_CRC_CCITT
INIT 0x8D9D
OF READ_ONLY 0x009000 TO 0x00BFFF
OF READ_ONLY 0x018000 TO 0x0180B1
OF READ_ONLY 0x040B2 TO 0x07FFF
OF READ_ONLY 0x028000 TO 0x02BFFF
OF READ_ONLY 0x0C000 TO 0x0FF73
OF READ_ONLY 0x0FF80 TO 0x0FF9F
OF READ_ONLY 0x0FFC0 TO 0x0FFFF
OF READ_ONLY 0x048000 TO 0x04BFFF
OF READ_ONLY 0x058000 TO 0x05BFFF
OF READ_ONLY 0x068000 TO 0x06BFFF
OF READ_ONLY 0x078000 TO 0x07BFFF
INTO READ_ONLY 0xFFB8 SIZE 2
UNDEFINED 0xff
END
END
I am baffled as to why this should have an effect. Does any one know why this should be so or is it more likely that there is some side-effect that is producing the symptoms?
Any ideas gratefully received, Mark