This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Mon166: Error 9

I try to debug my program using dScope.
My RAM is starting from 0x100000 address
and has size of 1MB.
I load monitor from 0x1FE000, and set
interrupt vector table from 0x100000.
After loading executable file, which
is mapped from 0x100000, I set PC = 0x100000
and run step by step pressing <F10>. After first step
the program come on next command: DISWDT.
Next step is not executed and I receive the
monitor error 9: CANNOT WRITE BREAKPOINT VECTOR

How I can debug program on boards without
RAM on 0 address?

Parents
  • How I can debug program on boards without RAM on 0 address?

    That's the point. Monitor166 uses NMI interrupt vector to interrupt program execution. This requires that the NMI vector points to the appropriate location in the Monitor166 code. It can be accomplished in two ways:
    1) If there is RAM at addresses 0..0x1FF then the monitor will write the vector on initialization.
    2) if there is programmable ROM at addresses 0..0x1FF then you can program Monitor166 code to that ROM
    3) or you can program interrupt vector redirection table (although I'm not sure if that will work with out-of-the-box Monitor166, look that up in the manuals.)

    - mike

Reply
  • How I can debug program on boards without RAM on 0 address?

    That's the point. Monitor166 uses NMI interrupt vector to interrupt program execution. This requires that the NMI vector points to the appropriate location in the Monitor166 code. It can be accomplished in two ways:
    1) If there is RAM at addresses 0..0x1FF then the monitor will write the vector on initialization.
    2) if there is programmable ROM at addresses 0..0x1FF then you can program Monitor166 code to that ROM
    3) or you can program interrupt vector redirection table (although I'm not sure if that will work with out-of-the-box Monitor166, look that up in the manuals.)

    - mike

Children
No data