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

C167-CR-LM Saving a program and executing it in RAM

Dear!
I save a small program in ram memory in address 0x80000.
After saving the program I want to jump to the program saved in ram memory.
Beforer the end of the h86 file there is twolines like this:
:020000020000FC
:04000000FA080200F8

This means that there must be 0xFA080200 saved in address 0x0000, but in this address there is another program saved.
How can I get it?
Thanks!!

  • Beforer the end of the h86 file there is twolines like this:
    :020000020000FC
    :04000000FA080200F8


    That is the interrupt vector table consisting of only one entry: jump to program start address. If you don't want interrupt vector table in your program, just add NOVECTAB to Options for Target - L166 Misc - Misc Controls.

    - mike

  • Dear!!

    If I write NOVECTAB the program doen't work and I can't put the interrupt vector in the start address because it's size is 4 bytes and in the h86 file there is a line like this:
    :10000200A55AA5A50A863F001A8602D21A8900FBC4
    it means that the second byte of the interrupt vector overlaps the data in address 0x0002
    What can I do?

    Thanks!!

  • I can't see what the problem is.

    What can I do?

    I suppose you can read the manuals: microcontroller manual, compiler manual, linker manual. It's all there.

    - mike

  • If I jump interrupt vector table to program start address, this vector overlaps some data. And the option VECTAB does not work. This is the problem.

  • If I jump interrupt vector table to program start address, this vector overlaps some data. And the option VECTAB does not work. This is the problem. In the manuals I can not read anything about this problems
    Thanks!!

  • If I jump interrupt vector table to program start address, this vector overlaps some data.

    Where did that overlapping data/code come from? Is it part of your program? If it is, you have control of it and you can move it out of VECTAB's way. Normally it wouldn't be there because the linker takes care of everything and makes sure nothing overlaps. Look into linker map file (*.M66) for details about memory mapping.

    And the option VECTAB does not work.

    ???
    What version of C166 toolset are you using? Again, all linker options are in the manual and AFAIK they work.

    - mike